Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
ВнизВложенные транзакции в ADO Найти похожие ветки
← →
Best Before 2024 (2002-09-12 12:23) [0]Скажите, разве нельзя сделать такое
ADOConnection1.BeginTrans;
...
ADOConnection1.BeginTrans; //ругается, что транзакция уже открыта
...
ADOConnection1.CommitTrans;
...
ADOConnection1.CommitTrans;
← →
Best Before 2024 (2002-09-12 12:37) [1]???
← →
Johnmen (2002-09-12 12:41) [2]И что же здесь удивительного ? Одно соединение - одна тр-ция.
← →
ЮЮ (2002-09-12 12:42) [3]Нельзя, раз ругается? А смысл вложенной транзакции?
Если устроят внешние изменения при откате внутренних, то сделать внутренние в сторонке, после выполнения внешних.
← →
Best Before 2024 (2002-09-12 12:43) [4]Зачем тогда BeginTrans возвращает Level ???
← →
Best Before 2024 (2002-09-12 13:03) [5]Нигде не написано, что этого делать нельзя.
Более того, на VB у меня все это проходило нормально.
Что-то Delphi не очень дружит c ADO. Сделали какую-то обертку и все.
← →
Best Before 2024 (2002-09-12 13:56) [6]Где все знатоки?
← →
Best Before 2024 (2002-09-12 14:10) [7]?
← →
Shaman_Naydak (2002-09-12 14:24) [8]Ну что я могу сказать..
ADO - универсальная оболочка для доступа к данным..
А вложенные транзакции - то, какая будет реакция зависит от используемого провайдера..
Например, для провайдера MS SQL сервера реакция будет такая:
Вложенные транзакции разрешены, но их нет :). То есть если у тебя произошел Rollback где-нибудь внутри 5-й транзакции, откатятся все
← →
Best Before 2024 (2002-09-12 14:38) [9]2 Shaman_Naydak © (12.09.02 14:24)
Да ради бога, пусть откатываются все!
Я не могу начать вложенную транзакцию
← →
sniknik (2002-09-12 15:36) [10]вряд ли тут ADO виновато
т.к описанная ситуация срабатывает при подключении к ACCESS а вот если MSSQL то почему то только в одном блоке работает
BEGIN TRANSACTION
BEGIN TRANSACTION
COMMIT TRANSACTION
COMMIT TRANSACTION
разрывать не позволяет.
я правда SQL -ем пользовался а не через ADOConnection1.BeginTrans; хотя это одно и то же.
← →
Best Before 2024 (2002-09-12 15:40) [11]ADO не виновато.
Меня удивляет, что в VB все работало. У VB поддержка ADO 2.6, а вот Delphi что делает - непонятно
← →
sniknik (2002-09-12 15:56) [12]Работало подключение к MSSQL? или всетаки к чему другому?
А может потому работало что подключение было ADO -> ODBC -> MSSQL, так сделай также и у тебя в дельфях будет работать.
← →
Best Before 2024 (2002-09-12 15:58) [13]Нет!
ADO->OLE DB Provider for MSSQL.
и работало. я там NestedLevel анализировал!
До самой смерти буду повторять это!!!!
← →
sniknik (2002-09-12 16:04) [14]ну с той поры вся идеология могла поменятся.
вот попробуй
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={SQL Server};SERVER=NIKS;UID=sa;DATABASE=tempdb"
строка с которой у тебя должно сработать, только базы и сервер свой подставь.
← →
sniknik (2002-09-12 16:06) [15]повторять не надо. привыкай к тому что сейчас есть. :-))
← →
Best Before 2024 (2002-09-12 16:17) [16]Project Project1.exe raised exception class EOleException with message "Cannot start more transactions on this session".
← →
sniknik (2002-09-12 16:30) [17]с этой строкой? странно у меня работает, так.
ADOCommand1.CammandText:= "BEGIN TRANSACTION";
ADOCommand1.Execute;
.....
ADOCommand1.CammandText:= "BEGIN TRANSACTION";
ADOCommand1.Execute;
...
ADOCommand1.CammandText:= "COMMIT TRANSACTION";
ADOCommand1.Execute;
...
ADOCommand1.CammandText:= "COMMIT TRANSACTION";
ADOCommand1.Execute;
только что попробовал для данной строки.
хм... проверил соеденение OLE DB тоже работает. ??? когда первый пост положил проверял не работало. только в Access. странно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c