Главная страница
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
4-57246
YUS
2001-12-12 20:43
2002.02.18
Нужна помощь


14-57201
vlad17
2001-12-20 17:17
2002.02.18
https


4-57269
Dimaond Cat
2001-12-18 01:25
2002.02.18
Закрасить кнопку, (также вопрос к Ю.ЗОТОВУ)


6-57162
Диман
2001-11-28 12:14
2002.02.18
методы Socket и Connect (и т.п.) в модуле WinSock - как вызывать?


1-57141
MystiX
2002-02-03 20:26
2002.02.18
Заголовок окна