Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
7-8187
иван
2002-07-25 14:59
2002.10.03
Работа с файлом


1-7938
XPatriot
2002-09-22 00:29
2002.10.03
Работа с Word ом.


3-7779
woland
2002-09-14 23:35
2002.10.03
Как в QuickReport вывести надписть вертикально?


1-8024
kex86
2002-09-20 01:47
2002.10.03
Почему на 9910-ый проход циклом по этому коду система начинает


1-8034
FleX
2002-09-22 15:14
2002.10.03
Как поместить иконки в Popup Menu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский