Главная страница
    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.006 c
7-8179
Юра
2002-07-04 23:34
2002.10.03
SoundCard


1-8014
Vitaly Krin
2002-09-21 17:58
2002.10.03
Как из типа Real в тип Integer, подскажите


1-8021
Антон К.
2002-09-19 20:04
2002.10.03
Как вытащить текст?


1-7897
KIR
2002-09-23 14:08
2002.10.03
Как записать/считать из Clipboard a массив строк?


14-8176
Lamer86
2002-09-04 21:23
2002.10.03
Как узнать IP человека, который написал мне письмо?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский