Форум: "Базы";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
ВнизTADOQuery и вставка Найти похожие ветки
← →
Palladin (2003-02-26 10:37) [0]вот столкнулся с такой проблемой
ADOQIns.SQL.Text:="insert into table1 select blabla from blabla"
ADOQIns.ExecSQL;
после сразу идет следующее
ADOQSel.SQL.Text:="select * from table";
ADOQSel.Open;
Recordset пустой...
бегу в сам Access в таблица не пустая...
я так понял, что видимо данные посылаются в отдельном потоке и на
момент ADOQSel.Open транзакция еще не завершилась, потому что сделал задержку и Recordset заполнился...
что делать?
как дождатся завершения транзакции ADOQIns.ExecSQL?
← →
stone (2003-02-26 10:43) [1]
> ADOQIns.SQL.Text:="insert into table1 select blabla from
> blabla"
> ADOQIns.ExecSQL;
>
> после сразу идет следующее
>
> ADOQSel.SQL.Text:="select * from table";
> ADOQSel.Open;
← →
Palladin (2003-02-26 10:48) [2]писал здесь и поэтому недописал "1"
ADOQSel.SQL.Text:="select * from table1";
← →
sniknik (2003-02-26 11:06) [3]Она завершается по ходу, если только не стоит в опциях асинхронное выполнение. Проверь.
И еще если здесь писал а в проге может SQL.Add используеш то тоже к этому приведет.
← →
Palladin (2003-02-26 11:09) [4]И вообще :)
Все имена в приведенном выше коде вымышленные...
проблема в том что не могу оперативно в одном TADOQuery провести insert запрос и сразу же после ExecSQL выбрать в другом TADOQuery...
← →
Palladin (2003-02-26 11:13) [5]
> sniknik © (26.02.03 11:06)
нет не SQL.Add, sql.text...
Access не поддерживает асинхронное выполнение... по крайней мере у меня выдавал Exception при попытке установить...
оба TADOQeury создаются в run-time...
← →
sniknik (2003-02-26 11:38) [6]Palladin © (26.02.03 11:13)
два показательных параметра подключения
Jet OLEDB:Exclusive Async Delay
Jet OLEDB:Shared Async Delay
нет это у тебя не получилось.
а с основным вопросом чтото не то. я делал примерно так и все срабатывало, правда для инсерта я использовал ADOCommand а для получения ADORecordSet но принцип не меняется.
← →
Palladin (2003-02-26 11:48) [7]щаз проверил и действительно программа выполняется дальше ExecSQL, независимо от того проведена транзакция или нет...
← →
sniknik (2003-02-26 11:50) [8]кстати если думаеш что это от незавершонной транзакции, то завершай ее сам. получится так
ADOQIns.SQL.Text:="BEGIN TRANSACTION";
ADOQIns.ExecSQL;
ADOQIns.SQL.Text:="insert into table1 select blabla from blabla";
ADOQIns.ExecSQL;
ADOQIns.SQL.Text:="COMMIT TRANSACTION";
ADOQIns.ExecSQL;
после сразу идет следующее
ADOQSel.SQL.Text:="select * from table";
ADOQSel.Open;
попробуй.
← →
Palladin (2003-02-26 11:50) [9]ConnectionString у обоих Query такой
"DBQ=D:/Program Files/TB/Database/address.mdb;Driver={Microsoft Access Driver (*.mdb)};"
← →
sniknik (2003-02-26 11:52) [10]проверь всеже ExecuteOptions, или просто сделай присвоение перед выполнением
ADOQIns.ExecuteOptions := [];
← →
Palladin (2003-02-26 11:53) [11]ok ща...
← →
sniknik (2003-02-26 11:55) [12]Palladin © (26.02.03 11:50)
нафига? ODBC - шное подключение, не раз глюки выдавало
попробуй с этим
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/Program Files/TB/Database/address.mdb;Persist Security Info=False
← →
Palladin (2003-02-26 12:03) [13]в общем access не внял begin transaction и commit transaction
сказал что SQL ему надо...
присвоение уже делал не чего подобного...
с приведенной строкой такая же трабла... проскальзывает прога дальше и все...
кстати ODBC меня не подводил еще...
← →
sniknik (2003-02-26 12:09) [14]> в общем access не внял begin transaction и commit transaction
сказал что SQL ему надо...
то есть не понимает "begin transaction"? но это может быть только на старых версиях. небось база Access 97? или jet старый?
а попробуй комбинацию, мою строку и begin transaction, поймет?
← →
Palladin (2003-02-26 12:17) [15]Точно. После комбинации этих двух все отработало прекрасно.
Спасибо!
← →
sniknik (2003-02-26 12:21) [16]> кстати ODBC меня не подводил еще...
:-))
все бывает в первый раз, вот оно и случилось.
← →
Palladin (2003-02-26 12:24) [17]:))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c