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

Вниз

Наполнение таблицы из текстового файла.   Найти похожие ветки 

 
Genry   (2002-01-22 12:19) [0]

Здравствуйте господа. Возникла следующая проблема - необходимо из текстового файла слить данные в таблицу (допустим MySQL). Всего получается порядка 300 тыс. записей. Конструкция типа:

qrMyQuery: TZMySQLQuery;

s := Format("insert into mytbl(myField1, myField2) values (mySomeValue1, mySomeValue2);
qrMyQuery.SQL.Clear;
qrMyQuery.SQL.Add(s);
qrMyQuery.ExecSQL;

работает очень медленно.
Вопрос: можно-ли оптимизировать эту процедуру по скорости. Желательно работать именно с компонентом TQuery и SQL-запросами.
Заранее спасибо.


 
Фэ ©   (2002-01-22 13:45) [1]

Попробуй через параметры
ParamByName("NAME").AsString := ednName.Text;


 
Romul ©   (2002-01-22 13:54) [2]

А попробуй команду BULK INSERT (MSSQL2000). Она как раз для вставки из текстовых файлов в таблицу (массивного копирования). Правда сам я ей не пользовался, так что конкретнее не могу сказать.


 
Genry   (2002-01-22 13:59) [3]

To ФЭ -> Разница конечно есть, поскольку, в данном слечае, не будет каждый раз производиться проверка запроса, но в моем случае это не подходит (или я не знаю как это использовать). Дело в том, что после разбора очередной строки из файла мне надо делать либо INSERT либо UPDATE. Иными словами:

if flgSomeFlag1 then
s := Format("insert into mytbl(myField1, myField2) values (mySomeValue1, mySomeValue2);
if flgSomeFlag2 then
s := Format("update mytbl set SomeField1="%s", SomeField2="%s", where SomeField3=%d;", [strSomeValue1, strSomeValue2, dSomeValue3]);
qrMyQuery.SQL.Clear;
qrMyQuery.SQL.Add(s);
qrMyQuery.ExecSQL;




 
Фэ ©   (2002-01-23 01:29) [4]

Ну и заведи два TQuery: на Update и на Insert и попробуй их с параметрами


 
amamed_3071   (2002-01-23 10:12) [5]

qrMyQuery.SQL.Clear;
WHILE NOT EOF(TEXTFILE) DO
bEGIN

...READ FROM FILE AND SET VULUES

if flgSomeFlag1 then
s := Format("insert into mytbl(myField1, myField2) values (mySomeValue1, mySomeValue2);
if flgSomeFlag2 then
s := Format("update mytbl set SomeField1="%s", SomeField2="%s", where SomeField3=%d;", [strSomeValue1, strSomeValue2, dSomeValue3]);
qrMyQuery.SQL.Add(s);
END

qrMyQuery.ExecSQL;



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
1-57055
Dim
2002-02-04 13:21
2002.02.18
Что такое TAddTeeFunction ?


3-57033
Dosimbek
2002-01-12 10:19
2002.02.18
Дельфи и Word!!


1-57115
Basaev
2002-02-03 03:51
2002.02.18
Как закрыт другую програму из своей


1-57088
Serg001
2002-02-02 08:18
2002.02.18
У меня такой вопросик: как узнать дескриптор dll-ки из которой я загружаю функцию


14-57210
Knight
2001-12-29 11:15
2002.02.18
Люди, никто не в курсе, чё с Майл.ру?