Access MDB - Как совместить в одной транзакции работу через Execute SQL и Recordset
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Access MDB - Как совместить в одной... Expand / Collapse
Автор
Сообщение
10.08.2007 17:06
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 31.08.2007 14:25
Сообщ.: 14, Visits: 90

Public Function Trans_Test()
Dim Rs1 As ADODB.Recordset, CnnString As String, Cnn As ADODB.Connection, dbName As String
' Tbl1(*Id,fld1) , Tbl2(*Id,*fld1,fld2,fld3)
dbName = "C:\1\db1.mdb"
Set Cnn = New ADODB.Connection ' & CurrentDb.Name
CnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbName & _
";Mode=Share Deny None;Persist Security Info=False" ' ;Mode=Share Deny None
'Cnn.IsolationLevel = adXactReadCommitted ' adXactReadUncommitted,adXactReadCommitted(Default),adXactRepeatableRead,adXactSerializable
'Cnn.Mode = adModeShareDenyWrite ' adModeUnknown adModeRead adModeWrite adModeReadWrite adModeShareDenyRead adModeShareDenyWrite adModeShareExclusive adModeShareDenyNone(Default)
'Cnn.CursorLocation = adUseServer ' adUseServer(Default) adUseClient
Cnn.Open CnnString ' Запись БЛОКИРУЕТСЯ !
Set Rs1 = New ADODB.Recordset
Rs1.Open Source:=" SELECT * FROM Tbl1 ", ActiveConnection:=Cnn, _
CursorType:=adOpenKeyset, LockType:=adLockPessimistic ',Options:=adCmdText ' adLockOptimistic adLockPessimistic
Cnn.BeginTrans
Rs1.MoveFirst
Rs1!fld1 = -1
' -2147467259 Обновление невозможно; установлена блокировка :
Cnn.Execute "UPDATE Tbl1 SET fld1 = -2 WHERE Id=1"


Cnn.Execute не может после Rs1!fld1 = -1 выполнить в этой транзакции свою работу ?
Почему так ? Возможно ли это совместить в одной транзакции ?
Сообщ. #915273
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Comanche, Alexey Spirin

Время GMT +3:00, Сейчас 7:37