Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

Еще раз о транзакциях в MSSQL   Найти похожие ветки 

 
ao1973 ©   (2002-11-23 20:25) [0]

Друзья ! MSSQL+ADO НЕ ДАЕТ ВОЗМОЖНОСТИ ОТКРЫТЬ
ВЛОЖЕННЫЕ (NESTED) транзакции.пишет "start more transactions on this session".хотя документация по АДО не исключеат эту возможность.Может кто знает ответ?
Заранее благодарю


 
sniknik ©   (2002-11-23 21:45) [1]

попробуй запросом ее открывать а не методом ADO
примерно
ADOCommand.CommandText:= "BEGIN TRANSACTION TranMain";
ADOCommand.Execute;
ADOCommand.CommandText:= "BEGIN TRANSACTION TranNest";
ADOCommand.Execute;
......
ADOCommand.CommandText:= "COMMIT TRANSACTION TranNest";
ADOCommand.Execute;
ADOCommand.CommandText:= "COMMIT TRANSACTION TranMain";
ADOCommand.Execute;
пока не подводило


 
ao1973 ©   (2002-11-23 22:40) [2]

будет ли эта трансакция распостранятся на весь коннект или
только на данный датасет?


 
sniknik ©   (2002-11-24 00:55) [3]

какой датасет? где ты его засек?
справку по командам читать в "SQL Server Books Online"


 
ao1973 ©   (2002-11-24 08:46) [4]

может я неверно высказался. будет ли эта трансакция распостранятся на весь TADOConnection или
только на данный TADOCommand?



 
sniknik ©   (2002-11-24 12:30) [5]

ADOCommand это для передачи комманд MSSQL самый низкий уровень все остальные компоненты его используют.

а транзакцию осушествляет сам MSSQL для одной базы (локальная) в принципе и коннект неважен только разрыв коннекта (при незавершонной транзакции вроде как ошибка) повлечет за собой Rolbak всех транзакций. короче если связывать (как ты) с ней ADOConnection то да на весь. Но опять же если в этом коннекте изменяются данные из другой базы то моему не прокатит.


 
ao1973 ©   (2002-11-24 16:22) [6]

Я работаю с одной базой,касаемо транзакций почему стандартный интерфейс BeginTrans не открывает больше одной транзакции?


 
sniknik ©   (2002-11-24 17:58) [7]

> почему стандартный интерфейс BeginTrans
а вот это вопрос над которым даже не задумывался никогда. просто считай ADO сервисом доступа к базе (как я) и используй прямые команнды этой базы а не корявый транскрит самого ADO. и все будет чудно.

к одной базе пример подходит на все сто. кстати если трудно привыкнуть к ADOCommand в отношении транзакций импользуй ADOConnection.Execute для посылки этих комманд. для плавного перехода :о)), хотя это без разници.



Страницы: 1 вся ветка

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-36072
VaZ
2002-11-26 09:58
2002.12.12
Нужна помощь! Экспорт в dbf из Interbase


4-36487
vlad_ri1
2002-10-29 13:07
2002.12.12
Где грабли? или GetLogicalDriveStrins и GetDriveType


14-36348
WD
2002-11-20 16:34
2002.12.12
Где можно найти пру, с базой данных, тестирующую студентов


3-36030
Sergey_Elf
2002-11-25 09:13
2002.12.12
добавить программно поле в таблицу dbf Заманался уже!!!!


14-36384
Вероника
2002-11-20 13:34
2002.12.12
электронные учебники по Делфи