powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Транзакция на dao c формами не получается ...
12 сообщений из 12, страница 1 из 1
Транзакция на dao c формами не получается ...
    #32338504
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
транзакцию на DAO делаю, работаю с данными через формы и вот:
1. В одной форме открываю BeginTrans, но после попытки откатить или CommitTrans
ругается, что транзакция и не начата ....
код тривиален ...
Private Sub Form_Open(Cancel As Integer)
Set wrkCur = DAO.DBEngine.Workspaces(0)
wrkCur.BeginTrans
fTr = True
End Sub
....
If fTr = True Then
wrkCur.CommitTrans
fTr = False
End If
......

2. В другой подобной форме все ок, не ругается,
но нехрена не работает.... ни откатывает ....

чем мне занятся? :)
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338507
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй Form_Load
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338508
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы вообще не рекомендовал использовать транзакции. С ними геморроя слишком много, да и к тому же очень негибкая это вещь!
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338510
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй Form_Load
я наоборот попробовал на форм_опен :)
пробовал и ado, тоже самое ...

Я бы вообще не рекомендовал использовать транзакции

ну тады порекомендуй как отменять изменения в форме с несколькими подчинёнными
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338511
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Артист
А ты массивами пользуйся
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338515
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тады порекомендуй как отменять изменения в форме с несколькими подчинёнными

А ты массивами пользуйся

Я как раз таки третий день пытаюсь сделать это с помощью массивов. И я уже на 2\3 пути к успеху :)
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338516
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Form_Open(Cancel As Integer) 
Set wrkCur = DAO.DBEngine.Workspaces( 0 ) 
wrkCur.BeginTrans 
fTr = True 
End Sub 
.... 
If fTr = True Then 
wrkCur.CommitTrans 
fTr = False 
End If 

А где тут РЕКОРДСЕТЫ????????????????????????????
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338519
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так я представляю себе транзакцию...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Private WithEvents frmChild As Form

    Dim W As DAO.Workspace
    Dim RecSet1 As DAO.Recordset
    Dim RecSet2 As DAO.Recordset
    Dim b As Boolean

Private Sub Form_Load()

    Set W = DBEngine.Workspaces( 0 )
    Set frmChild = Me!calc.Form
    Set RecSet1 = CurrentDb.OpenRecordset( "..." )
    Set RecSet2 = CurrentDb.OpenRecordset( "..." )
    
    Set Me.Recordset = RecSet1
    Set Me!calc.Form.Recordset = RecSet2
    b = False
    
End Sub

Private Sub Form_Dirty(Cancel As Integer)

If b = False Then
    W.BeginTrans
    b = True
End If

End Sub

Private Sub frmChild_Dirty(Cancel As Integer)

If b = False Then
    W.BeginTrans
    b = True
End If

End Sub
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338524
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Артист
код тривиален ...
Private Sub Form_Open(Cancel As Integer)
Set wrkCur = DAO.DBEngine.Workspaces(0)
wrkCur.BeginTrans
fTr = True
End Sub
....
If fTr = True Then
wrkCur.CommitTrans
fTr = False
End If

А как ты думаешь, переменная wrkCur существует после end sub ?
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338528
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 VIG:

Это зависит от того, где она описана. Если не в этой процедуре, значит выше. Значит, существует.
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338533
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем не менее стоит проверить.
...
Рейтинг: 0 / 0
Транзакция на dao c формами не получается ...
    #32338544
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выше, выше она описана :)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Транзакция на dao c формами не получается ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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