Форум: "Базы";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];
ВнизНаполнение таблицы из текстового файла. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c