Главная страница
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.02 c
1-69859
MCFire
2002-04-08 17:20
2002.04.22
Как закинуть меню в панель инструментов


3-69712
Timka
2002-03-26 18:54
2002.04.22
Помогите серенькому!!!


1-69806
MystiX
2002-04-09 18:32
2002.04.22
Help with mouse


1-69780
Бульбаш
2002-04-10 10:17
2002.04.22
Не пойму куда делись компонеты. Поставил вчера шестерку,


1-69829
VJar
2002-04-08 21:20
2002.04.22
Проблема с TNMSMTP