-
Здравствуйте! Есть БД Access к которой при загрузке программы я совершаю обращение. Одно через ADOConnection, а другое из грида (TMS) – там есть процедура «msflListOfOrders.LoadFromMDBSQL(имя файа,запрос);». Эти две команды стоят в процедуре вызова последовательно, т.е. примерно так:
[code] Procedure LoadOrdersFromFile; Var FileName:String;
Begin FileName:='G:\2\Table.mdb'; Frm1.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+FileName+';Persist Security Info=False'; Frm2.msflListOfOrders.LoadFromMDBSQL(FileName,'Select * from Orders'); End; [/code]
Проблема заключается в том, что при выполнении второй строчки возникает ошибка «Операция е допускается если объект открыт» - как я понимаю – ADOConnection не успевает выполниться, а идет новый запрос. Как можно приостановить (желательно без таймера выполнение последующих строк)?
-
> как я понимаю – неверно, проблема в другом. прочитай ошибку БУКВАЛЬНО.
-
Не понимаю о чем Вы.....Просто если эти две строки разнести по разным процедурам (не выполняются совместно) то все становится нормально!
-
> то все становится нормально! вполне допускаю... что проблема именно здесь. с понятием трассировка знаком? пробуй... поставь sleep(10000); между командами если не веришь.
-
99% ошибка в теле LoadFromMDBSQL, где судя по параметру FileName используется прямой коннекшстринг, а не через TADOConnection
-
Кроме того, у него явно бардак событийный - т.е. запиханы "базовые" обработчики в OnCreate разных форм (за это вообще надо пальцы оптиливать пилкой для ногтей) ;)
-
Пардон, [4] неверно - прошу не обращать внимания. [5] остается в силе
|