Форум: "Начинающим";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Внизrecord s...подкиньте умную мысль... Найти похожие ветки
← →
Shade (2007-11-06 15:06) [0]Доброго времени суток!
Для начала объясню вкратце что вообще пытаюсь сделать:
Есть несоколько программ которые работает с БД своей структуры (в простом случае - обычный типизированый файл). Необходимо выгрузить данные из этой программы в "текстовый" формат(текст,csv...неважно).
Все просто все понятно: открыли файл, прочитали запись - сформировали текстовую строку - записали в файл.
Вопрос собственно в чем: помогите найти красивое решение! =(
Таблиц много->структур много->каждую структуру надо переделать в строку:
rec = record
r1:array[0..2] of char;
r2:array[0..10] of char;
...
end;
str:=rec.r1+" "+rec.r2+...
с классами можно с помощью rtti пройтись по всем published свойствам экземпляра и получить названия и значения свойств...
как чтото аналогичное можно сделать с рекордами? а то получается немерянное количество кола для "превращения" стурктуры в строку...
Надеюсь более-менее понятно написал..
← →
Сергей М. © (2007-11-06 15:10) [1]
> Необходимо выгрузить данные из этой программы в "текстовый"
> формат
Нафига именно в текстовый ? Поясни ..
← →
Ega23 © (2007-11-06 15:13) [2]
> с классами можно с помощью rtti пройтись по всем published
> свойствам экземпляра и получить названия и значения свойств.
В классе можно написать метод формирования строки на основании своей информации
type
TCustomDBRecord = class
public
constructor Create (...)
procedure Init(....)
function MakeDataString : string; virtual;
end;
TFirstTableClass = class(TCustomDBRecord)
public
Field1 : Integer;
Field2 : string;
function MakeDataString : string; override;
end;
Ход мыли ясен?
P.S. Я бы всё-таки не изобретал велосипед, а TClientDataSet использовал бы.
← →
Правильный_Вася (2007-11-06 15:14) [3]ClientDataSet
← →
Shade (2007-11-06 15:18) [4]это в принципе неважно...."в текстовый, в csv, загрузить в бд oracle..."...вопрос не в этом...
нужно разобрать структуру бд (документации нет, структура бд не описана) и выгрузить данные в нормалный читаемый вид...
← →
Ega23 © (2007-11-06 15:20) [5]
> нужно разобрать структуру бд (документации нет, структура
> бд не описана) и выгрузить данные в нормалный читаемый вид.
> ..
>
Select * from ...
← →
Shade (2007-11-06 15:20) [6]ммм... а как мне поможет ClientDataSet? чего то я туплю...
← →
Сергей М. © (2007-11-06 15:21) [7]
> нужно разобрать структуру бд (документации нет, структура
> бд не описана)
Вот этим для начала и займись.
← →
Shade (2007-11-06 15:23) [8]
> Select * from ...
блин...какой селект? из чего? таблица - "обычный файл of MyRecord" - кто мне к нему sql запрос будет обрабатывать?
← →
Shade (2007-11-06 15:24) [9]
> Сергей М. © (06.11.07 15:21) [7]
> > нужно разобрать структуру бд (документации нет, структура
> > бд не описана)Вот этим для начала и займись.
занялся, разобрался... как к этому прикрутить ClientDataSet ?
← →
Сергей М. © (2007-11-06 15:26) [10]
> как к этому прикрутить ClientDataSet ?
>
Зачем ?
Зачем тебе "читаемый вид" ? Кем или чем читаемый ?
← →
Джо © (2007-11-06 15:28) [11]> rec = record
> r1:array[0..2] of char;
> r2:array[0..10] of char;
> ...
> end;
Так почему тогда не:
rec = record
e: array [0..23] of Char;
end;
?
Или это просто для примера?
← →
Shade (2007-11-06 15:32) [12]да йопт...=)
кем? пользователем, переводчиком с японского, web-программером который эти данные будет прикручивать на сайт...ну нужно в конце концов просто переветсти данные из закрытого формата в обычные таблицы реляционной БД....
← →
Сергей М. © (2007-11-06 15:37) [13]
> нужно в конце концов просто переветсти данные из закрытого
> формата в обычные таблицы реляционной БД
Ну и переводи)
Что этому мешает ?
Исходный формат ты уже знаешь, значит можешь сформировать метаданные соответствующей таблицы в целевой БД.
А перенос данных в сформированную таблицу - дело плевое)
← →
Shade (2007-11-06 15:39) [14]
> Джо © (06.11.07 15:28) [11]
> > rec = record> r1:array[0..2] of char;> r2:array[0..10]
> of char;> ...> end;Так почему тогда не:rec = record e:
> array [0..23] of Char;end;?Или это просто для примера?
это именно пример разобранной структуры которая хранится в файле...нужно эту структуру выгрузить в виде нормальной таблицы (в примере - с двумя полями r1 и r2)
вопрос именно как сделать "чтото универсальное " на вход которой подается любая определенная структура - на выходе получаем например обычную текстовую строку которая включает в себя все поля из этой структуры разделенный запятой...
← →
Ega23 © (2007-11-06 15:47) [15]
> вопрос именно как сделать "чтото универсальное " на вход
> которой подается любая определенная структура - на выходе
> получаем например обычную текстовую строку которая включает
> в себя все поля из этой структуры разделенный запятой...
>
Никак.
← →
Shade (2007-11-06 15:49) [16]
> Сергей М. © (06.11.07 15:37) [13]
> > нужно в конце концов просто переветсти данные из закрытого
> > формата в обычные таблицы реляционной БДНу и переводи)
> Что этому мешает ?Исходный формат ты уже знаешь, значит
> можешь сформировать метаданные соответствующей таблицы в
> целевой БД.А перенос данных в сформированную таблицу - дело
> плевое)
ехх...всеравно не так поняли...
дело плевое - но очень муторное...
Таблица1.Field1:=Структура1.Field1
...
Таблица1.Field123:=Структура1.Field123
...
...
Таблица55.Field1:=Структура55.Field1
...
Таблица55.FieldN:=Структура55.FieldN
я почему и привел пример с классом - можно написать функцию которая примет любой класс и переберет все его свойства и значения свойств и запишет это все в тот же текстовый или xml файл....
вопрос был как сделать подобное с рекордом...
← →
Сергей М. © (2007-11-06 15:50) [17]
> как сделать подобное с рекордом
Никак.
← →
Shade (2007-11-06 15:53) [18]
> Ega23 © (06.11.07 15:47) [15]
> > вопрос именно как сделать "чтото универсальное " на вход
> > которой подается любая определенная структура - на выходе
> > получаем например обычную текстовую строку которая включает
> > в себя все поля из этой структуры разделенный запятой.
> ..> Никак.
Вот и я ничего не придумал...но посчитал что окончательно отупел и растелял все логическое мышление =)
← →
Shade (2007-11-06 16:11) [19]ыыы! Люди! спасибо за помощь! стоило только мысли оформить в тексте и появилась идея(насколько умная пока еще не понял) как это реализовать..! пойду обмозговывать...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.038 c