Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: \"Недопустимое состояние транзакции\" при xdRollback
"Недопустимое состояние транзакции" при xdRollback
Posted: 2008/04/11 10:06
 
MS SQL, Access
AnyDAC.v2.0.1.285

Вызов AdConnection.Close вызывает исключение "Недопустимое состояние транзакции" при con.TxOptions.StopAction := xdRollback;

Установил вторую версию - заметил, что теперь при завершении приложения открытая транзакции фиксируется - мне необходим был вариант, работавший в версии, стоявшей у меня до этого - когда она откатывалась. В History ничего про это изменение не нашёл. Установил con.TxOptions.StopAction := xdRollback; При закрытии соединения получил "Недопустимое состояние транзакции" (и на MS SQL и на Access).

Вот пример, который воспроизводит

  procedure TForm1.Button1Click(SenderTObject); var   qTADQuery;   conTADConnection; begin   con := TADConnection.Createnil );   con.TxOptions.StopAction := xdRollback;   con.Params.Text := 'DriverID=MSSQL'#13#10 + 'ODBCDriver=SQL SERVER'#13#10 + 'Server=.\SQLEXPRESS'#13#10 + 'Database=Locat'#13#10 + 'User_Name=sa'#13#10 + 'Password=*';   con.Open;   := TADQuery.Createnil );   q.Connection := con;   q.SQL.Text := 'SELECT * FROM TS856S3PNTSA41C7S1D7LTB1P18';   q.Open;   q.Free;   con.Close// raises "Invalid transaction state"   con.Free; end;



Вызов запроса (любого) необходим для воспроизведения - без него закрывается без ошибок.

con.TxOptions.StopAction := xdRollback; это то что мне требовалось сделать, чтобы получить требуемое поведение?
Re:"Недопустимое состояние транзакции" при xdRollback
Posted: 2008/04/12 06:09
 
con.TxOptions.StopAction := xdRollback; это то что мне требовалось сделать, чтобы получить требуемое поведение?
Да это то. Но я обнаружил проблемы, которые будут исправлены в следующем билде - 2.0.1.287.