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

Вниз

Экспорт данных из базы Interbase в скрипт средствами Delphi   Найти похожие ветки 

 
mvs ©   (2006-03-06 17:43) [0]

Добрый день
Хочу написать небольшую функцию экспорта данных из базы Interbase в скрипт. Пошел вначале самым простым путем
1. Получаю все таблицы
2. Экспортирую данные из очередной таблицы TableName
Сначала
ibq.sql.text := select * from tablename
Потом
ff := false;
Fieldsstr := "";
while not ibq.Eof do begin
ValuesStr := "";
for i := 0 to ibq.FieldCount - 1 do begin
if ibq.Fields[i].FieldKind <> fkData then continue;
// Простейшая функция получения значания поля, а если это блоб, то игнорировать
if not GetFieldValue(ibq.Fields[i],0,ValStr) then continue;
if not ff then begin
if Fieldsstr = "" then Fieldsstr := ibq.Fields[i].FieldName
else Fieldsstr := Fieldsstr + "," + ibq.Fields[i].FieldName;
end;
if Valuesstr = "" then Valuesstr := ValStr
else Valuesstr := Valuesstr + "," + ValStr;
end;
// конец for i
if not ff then begin
Fieldsstr := "insert into " + tablename + " (" + Fieldsstr + ")";
ff := true;
end;
Valuesstr := " values (" + Valuesstr + ")";
OutStr := OutStr + Fieldsstr + Valuesstr + ";" + CRLF;
ibq.Next;
end;
Возвращаю OutStr типа string

ПРОБЛЕМА в том, что на больших таблицах эта функция очень долгая. Наверняка есть возможность все УСКОРИТЬ. Например, в IBExpert"е экспорт идет гораздо быстрее. Очень хочется посмотреть его алгоритм или нечто подобное.


 
Fay ©   (2006-03-06 18:30) [1]

юзай TStringList



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

Форум: "Базы";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
15-1144665977
syte_ser78
2006-04-10 14:46
2006.04.30
delfolders.exe


15-1144740684
Der Nechk@ssoff
2006-04-11 11:31
2006.04.30
Собсна-вирусы


2-1144933698
Сергей И
2006-04-13 17:08
2006.04.30
События формы


2-1145012564
JB
2006-04-14 15:02
2006.04.30
Принтег не печатает


2-1145000927
elfebet
2006-04-14 11:48
2006.04.30
Как в ярлык запихнуть иконку?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский