|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.07.2009, 20:52 | #1 |
Регистрация: 07.12.2006
Сообщений: 9
|
Вставка данных в Excel через ADO
Здравствуйте!
У меня возникла проблема Есть процедура которая (в цикле) вставляет,обновляет данные примерно такая: ... begin for i:=1 to n do Begin SQLStr:='insert into DataTable(...) values (...)' DefDBStr := ExtractFilePath(ParamStr(0)) + sDataPath; ADOConnection1.Close; ADOConnection1.DefaultDatabase := DefDBStr; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(SQLStr); for i := 0 to ADOConnection1.DataSetCount - 1 do ADOConnection1.DataSets[i].Close; for i:= 0 to ParamCount-1 do begin ADOQuery.Parameters[i].Value := Param[i]; end; ADOQuery.ExecSQL; End; end; ... Проблема в том что при выполнении запросов объем используемой памяти увеличивается - память не освобождается и при выполнени большого количества запросов система выдает ошибку: [Microsoft] [Driver ODBC DBASE] Недостаточно системных ресурсов. Подскажите пожалуйста что я не так делаю --- Последний раз редактировалось Slava; 15.07.2009 в 21:28. |
15.07.2009, 21:37 | #2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
у тебя 3 цикла и в них используется один и тот же идентификатор
а должны быть разные |
15.07.2009, 21:56 | #3 |
Регистрация: 07.12.2006
Сообщений: 9
|
извините ошибся
procedure TBASEFORM.ADOConnParam(ADOQuery : TADOQuery; Param: array of Variant; ParamCount: Integer); var i,j,k: Integer; begin for i:=1 to n do Begin SQLStr:='insert into DataTable(...) values (...)' DefDBStr := ExtractFilePath(ParamStr(0)) + sDataPath; ADOConnection1.Close; ADOConnection1.DefaultDatabase := DefDBStr; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(SQLStr); for k := 0 to adoConnAPK.DataSetCount - 1 do ADOConnAPK.DataSets[k].Open; for j:= 0 to ParamCount-1 do begin ADOQuery.Parameters[j].Value := Param[j]; end; ADOQuery.ExecSQL; End; end; ... --- Проблема та же. Последний раз редактировалось Slava; 15.07.2009 в 22:01. |
15.07.2009, 22:33 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
еще желательно чтобы вы сами смогли словами описать что же вы пытаетесь сделать
по ходу дела вы заполняете DataTable данными, но неясно зачем это делается N-раз? и еще неясно зачем делается вот это: Код:
|
19.07.2009, 22:22 | #5 |
Регистрация: 07.12.2006
Сообщений: 9
|
Решение в общем нашел
причина оказалась в драйвере Microsoft Access dBASE Driver. После обновления "MICROSOFT OFFICE ACCESS 2007 DATA CONNECTIVITY COMPONENTS" все заработало. --- Тему можно считать закрытой. Спасибо всем. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как можно соединица со своей базой данных в интернете через ADO? | dj kisel' | БД в Delphi | 0 | 26.05.2008 23:11 |
Открытие(подключение) уже существующей базы данных MS Access через ADO | Moel | БД в Delphi | 7 | 24.10.2007 16:57 |
Вставка данных(Excel) из clipboard в DBGrid | mahsus | Общие вопросы Delphi | 1 | 07.10.2007 02:02 |