Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-69790
Lame1
2002-04-10 12:24
2002.04.22
Чтение записей из файла


3-69662
Zombie
2002-04-03 07:11
2002.04.22
Как избавиться от временных файлов Query???


6-69961
DimaIv
2002-02-04 21:56
2002.04.22
Возможна ли докачка в FastNet и как её сделать?


3-69746
vasilly
2002-04-01 08:43
2002.04.22
Нельзя сохранить из дельф больше чем 256 символов в MS SQL!!!


3-69733
ruslan_as
2002-04-01 11:28
2002.04.22
InterBase (Lookup)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский