Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: CL | DM;

Вниз

ClienDataSet в InterBase   Найти похожие ветки 

 
ruslan_as ©   (2002-04-02 18:08) [0]

Есть ClienDataSet и таблица InterBase. Нужно перегнать записи из
ClienDataSet в InterBase. Ести я делаю следующим кодом получается долго. Подскажите как быстрее.

while not DM.clTovar.Eof do
begin
DM.IBTTovar.Append;
DM.IBTTovar.FieldByName("KOD").Value:=DM.clTovar.FieldByName("KOD").AsString;
DM.IBTTovar.FieldByName("N_TOV").Value:=DM.clTovar.FieldByName("N_TOV").AsString;
DM.IBTTovar.Post;
DM.clTovar.Next;
end;


 
alexandervasjuk ©   (2002-04-02 19:47) [1]

Есть один способ. Это будет очень быстро. Но вряд ли ты захочешь возиться.
1) Сохраняем CDS как XML.
2) Пишем XSL трансформацию, чтоб на входе был наш XML, на выходе - данные с фиксированной длинной поля без всяких разделителей и возвратоы каретки
3) В базе создаем внешнюю таблицу на получившийся файл данных со строковыми полями соответствующей ширины
4) Запросом вставляем из нее данные в конечную таблицу


 
Deniz ©   (2002-04-03 08:03) [2]


TmpIBQuery.SQL.CLear;
TmpIBQuery.SQL.Add("insert into TableName(KOD, N_TOV)");
TmpIBQuery.SQL.Add("values(:vKod, :vN_Tov)");
TmpIBQuery.Prepare;
while not DM.clTovar.Eof do begin
TmpIBQuery.ParamByName("vKod").AsString:=DM.clTovar.FieldByName("KOD").AsString;
TmpIBQuery.ParamByName("vKod").AsString:=DM.clTovar.FieldByName("N_TOV").AsString;
TmpIBQuery.ExecSQL;
end;

Должно быть быстрее.


 
Deniz ©   (2002-04-03 08:17) [3]

Опечатка вышла:
...
TmpIBQuery.ParamByName( "vN_TOV").AsString:=DM.clTovar.FieldByName("N_TOV").AsString;
...


 
ruslan_as ©   (2002-04-03 12:20) [4]

Спасибо ребята! Работает.
>alexandervasjuk © Способ любопытный, потом разберусь...
>Deniz Действительно быстрее!



Страницы: 1 вся ветка

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
14-69995
lipskiy
2002-03-11 00:59
2002.04.22
Какая трубка лучше?


1-69905
inko
2002-04-09 15:43
2002.04.22
Сообщения.


3-69719
Nickolaus
2002-03-29 22:41
2002.04.22
Как


7-70046
Dimich
2002-01-25 11:41
2002.04.22
Индикатор текушего шрифта


1-69802
kserg@ukr.net
2002-04-10 14:42
2002.04.22
Как