Главная страница
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.023 c
3-57027
Axex12
2002-01-25 04:36
2002.02.18
Как вывести результат суммы по столбцу?


3-56993
AnIg
2002-01-23 15:04
2002.02.18
Мягкое удаление записей таблиц DBASE


1-57138
KvORubin
2002-02-03 18:39
2002.02.18
Файл.ТХТ Помогите ПОЖАЛУЙСТО !!!


3-56972
EternalWonderer
2002-01-10 15:25
2002.02.18
работа с компонентами DOA


1-57151
olookin
2002-02-04 10:12
2002.02.18
Эмуляция нажатия клавиши