|
|
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Народ !!! Вот какой вопрос .. Как средствами ADO сделать вложенную транзакцию? Что то типа cnn.begintrans cnn.execute "UPDATE .... " cnn.begintrans cnn.execute "UPDATE ... " cnn.committrans cnn.committrans ну так это не прокатывает ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 10:56 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
ну так это не прокатывает ((( И что, прямо так и пишет "Транзакция не прокатывает!" ? :) Давай весь кусок кода и подробное сообщение об ошибке, если она была и почему ты решил, что она не прокатывает? Заодно версии акеса, мдака ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:05 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Весь код таков .. 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:14 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Где ошибка? И чем вам такой вариант не угодил? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:18 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Весь код таков .. прямо таки весь? А Set cnn = CurrentProject.Connection. Да? и так и не написал: ошибка какая? а пока по читай: ACC2000: Error Using CurrentProject.Connection in Transactions ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:20 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
кажись так надо cnn.open CurrentProject.Connection.connectionstring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:24 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Тьфу ты ... про ошибку то и забыл 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" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:30 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
авторили надо делать так А вот так делать не надо :) У серера нет вложенных транзакций Уж лучше ХП написать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:31 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
2paparome кстати говоря, вариант с BEGIN TRAN-COMMIT TRAN работат безупречно и вообще как это так у MSSQL сервера нет вложенных транзакций их там до восьми штук вообщето если мне память не изменяет ((( ХП - это конечно хорошо, но всё таки - допускает ADO это или нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:36 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Вопрос принципиальный может ADO выполнить вложеннкю транзакцию своими средствами и что это значит - собственными средствами? Это как? а средствами адо Код: plaintext 1. 2. 3. 4. 5. 6. У серера нет вложенных транзакций ну да? mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\acdata.chm::/ac_8_md_06_66nq.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:38 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
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 работать не будет (( ну что ж будем использовать второй вариант ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:45 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:49 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
моя чукча извиняется перед paparome :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:52 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
2 Senin Victor а вот на этом спасибо ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 11:54 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Да - не надо :) Я сам уже стушевался. Вроде, помню, что нетю :( Но вот откуда я это взял - не помню И, вообще, там все до безумия хитро :( По этой причине придерживаюсь принципа - лучне не городить вложенных транзакций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 12:02 |
|
||
|
Про транзакции
|
|||
|---|---|---|---|
|
#18+
Но всё-таки второй вариант то работает ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 12:05 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32542278&tid=1674215]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 566ms |

| 0 / 0 |
