powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Про транзакции
17 сообщений из 17, страница 1 из 1
Про транзакции
    #32542249
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ !!!
Вот какой вопрос ..
Как средствами ADO сделать вложенную транзакцию? Что то типа

cnn.begintrans
cnn.execute "UPDATE .... "
cnn.begintrans
cnn.execute "UPDATE ... "
cnn.committrans
cnn.committrans


ну так это не прокатывает (((
...
Рейтинг: 0 / 0
Про транзакции
    #32542278
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так это не прокатывает (((

И что, прямо так и пишет "Транзакция не прокатывает!" ? :)
Давай весь кусок кода и подробное сообщение об ошибке, если она была и почему ты решил, что она не прокатывает?
Заодно версии акеса, мдака
...
Рейтинг: 0 / 0
Про транзакции
    #32542303
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весь код таков ..
With cnn
.BeginTrans
.Execute "UPDATE TestTable SET Name=Name+1"
.BeginTrans
.Execute "UPDATE TestTable SET Fam=Fam+1"
.CommitTrans
.CommitTrans
Exit Sub
End With
Exit_h:
cnn.RollbackTrans

Версия Акса: XP SP2
Версия MDAC: 2.6
...
Рейтинг: 0 / 0
Про транзакции
    #32542320
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где ошибка?

И чем вам такой вариант не угодил?

Код: plaintext
UPDATE TestTable SET Name=Name+ 1 , Fam = Fam +  1 
...
Рейтинг: 0 / 0
Про транзакции
    #32542324
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь код таков ..

прямо таки весь?
А Set cnn = CurrentProject.Connection. Да?

и так и не написал: ошибка какая?

а пока по читай: ACC2000: Error Using CurrentProject.Connection in Transactions
...
Рейтинг: 0 / 0
Про транзакции
    #32542337
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажись так надо

cnn.open CurrentProject.Connection.connectionstring
...
Рейтинг: 0 / 0
Про транзакции
    #32542352
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тьфу ты ... про ошибку то и забыл
Cannot atart more transaction on this session
2paparome
а вот та мне именно захотелось - разбить на две транзакции

да и вообще. Вопрос принципиальный может ADO выполнить вложеннкю транзакцию своими средствами или надо делать так
Dim cnn as New Connection
cnn.Open "Provider=SQLOLEDB;Data Source=YOU;Initial Catalog=Test","sa"
With cnn
.Execute "BEGIN TRAN"
.Execute "UPDATE TestTable SET Name=Name+1"
.Execute "BEGIN TRAN"
.Execute "UPDATE TestTable SET Fam=Fam+1"
.Execute "COMMIT TRAN"
.Execute "COMMIT TRAN"
Exit Sub
End With
Exit_h:
cnn.Execute "ROLLBACK TRAN"
...
Рейтинг: 0 / 0
Про транзакции
    #32542354
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторили надо делать так
А вот так делать не надо :)
У серера нет вложенных транзакций

Уж лучше ХП написать :)
...
Рейтинг: 0 / 0
Про транзакции
    #32542373
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2paparome
кстати говоря, вариант с BEGIN TRAN-COMMIT TRAN работат безупречно и
вообще как это так у MSSQL сервера нет вложенных транзакций их там до восьми штук вообщето если мне память не изменяет (((

ХП - это конечно хорошо, но всё таки - допускает ADO это или нет ?
...
Рейтинг: 0 / 0
Про транзакции
    #32542380
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос принципиальный может ADO выполнить вложеннкю транзакцию своими средствами

и что это значит - собственными средствами? Это как?

а средствами адо
Код: plaintext
1.
2.
3.
4.
5.
6.
For providers that support nested transactions, calling the BeginTrans 
method within an open transaction starts a new, nested transaction. The return 
value indicates the level of nesting: a return value of "1" indicates you have 
opened a top-level transaction (that is, the transaction is not nested within 
another transaction), "2" indicates that you have opened a second-level 
transaction (a transaction nested within a top-level transaction), and so forth. 
2paparome
У серера нет вложенных транзакций

ну да?
mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\acdata.chm::/ac_8_md_06_66nq.htm
...
Рейтинг: 0 / 0
Про транзакции
    #32542400
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Senin Viktor
ну хорошо, средствами ADO

короче я так понимаю, что вот это
With cnn
.BeginTrans
.Execute "UPDATE TestTable SET Name=Name+1"
.BeginTrans
.Execute "UPDATE TestTable SET Fam=Fam+1"
.CommitTrans
.CommitTrans
Exit Sub
End With
Exit_h:
cnn.RollbackTrans

работать не будет ((
ну что ж будем использовать второй вариант (((
...
Рейтинг: 0 / 0
Про транзакции
    #32542414
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PRB: Error When You Implement Nested Transaction with OLE DB Provider for SQL Provider

INFO: Nested Transactions Not Available in ODBC/OLE DB/ADO

Код: plaintext
1.
CAUSE
By design, OLE DB Provider for SQL Server does not allow nested transactions
%-/
...
Рейтинг: 0 / 0
Про транзакции
    #32542425
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
моя чукча извиняется перед paparome :)
...
Рейтинг: 0 / 0
Про транзакции
    #32542432
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Senin Victor
а вот на этом спасибо )
...
Рейтинг: 0 / 0
Про транзакции
    #32542455
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Viktor
Да - не надо :)

Я сам уже стушевался.

Вроде, помню, что нетю :(
Но вот откуда я это взял - не помню

И, вообще, там все до безумия хитро :(
По этой причине придерживаюсь принципа - лучне не городить вложенных транзакций
...
Рейтинг: 0 / 0
Про транзакции
    #32542466
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но всё-таки второй вариант то работает )
...
Рейтинг: 0 / 0
Про транзакции
    #32542541
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По этой причине придерживаюсь принципа - лучне не городить вложенных транзакций

И м.б. лучше вообще никаких на клиенте

2SergeyKa
Но всё-таки второй вариант то работает )

Чукча со счета сбился - где второй вариант?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Про транзакции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]