powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транзакция в MDB базе
9 сообщений из 9, страница 1 из 1
Транзакция в MDB базе
    #33269203
Andrukha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, такая проблема - нужно открыть транзакцию в базе access (MDB)
подключение к базе такое
сconnectbd = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + m.path_base + "\FAll.mdb;Uid=Admin;Pwd=;"
gnConnHandle = SQLSTRINGCONNECT(сconnectbd)
подключает, все ок

комманды на открытие транзакции
= SQLEXEC(gnConnHandle, 'BEGIN TRANSACTION')
или
= SQLEXEC(gnConnHandle, 'BEGINTRANS')
не срабатывают.
Заранее спасибо!
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33269221
Тупой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты патаешься применить фоксовскую команду через дрова Аксесса. Он такой команды не знает.
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33269225
Andrukha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если писать на VB BeginTrans работает - пишу в фоксе
= SQLEXEC(gnConnHandle, 'BEGINTRANS')
не работает
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33269248
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrukhaДоброго времени суток, такая проблема - нужно открыть транзакцию в базе access (MDB)
подключение к базе такое
сconnectbd = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + m.path_base + "\FAll.mdb;Uid=Admin;Pwd=;"
gnConnHandle = SQLSTRINGCONNECT(сconnectbd)
подключает, все ок

комманды на открытие транзакции
= SQLEXEC(gnConnHandle, 'BEGIN TRANSACTION')
или
= SQLEXEC(gnConnHandle, 'BEGINTRANS')
не срабатывают.
Заранее спасибо!

кто сказал что в аксессе есть транзакции?
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33269257
Тупой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeginTrans - это метод объекта, а не команда. Извини конечно, но
использовать его в Аксессе так :

Код: 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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
Sub BeginTransX()

   Dim strName As String
   Dim strMessage As String
   Dim wrkDefault As Workspace
   Dim dbsNorthwind As Database
   Dim rstEmployees As Recordset

   ' Get default Workspace.
   Set wrkDefault = DBEngine.Workspaces(0)
   Set dbsNorthwind = OpenDatabase("Northwind.mdb")
   Set rstEmployees = _
      dbsNorthwind.OpenRecordset("Employees")

   ' Start of outer transaction.
   wrkDefault.BeginTrans
   ' Start of main transaction.
   wrkDefault.BeginTrans

   With rstEmployees

      ' Loop through recordset and ask user if she wants to 
      ' change the title for a specified employee.
      Do Until .EOF
         If !Title = "Sales Representative" Then
            strName = !LastName & ", " & !FirstName
            strMessage = "Employee: " & strName & vbCr & _
               "Change title to Account Executive?"

            ' Change the title for the specified employee.
            If MsgBox(strMessage, vbYesNo) = vbYes Then
               .Edit
               !Title = "Account Executive"
               .Update
            End If
         End If

         .MoveNext
      Loop

      ' Ask if the user wants to commit to all the changes 
      ' made above.
      If MsgBox("Save all changes?", vbYesNo) = vbYes Then
         wrkDefault.CommitTrans
      Else
         wrkDefault.Rollback
      End If

      ' Print current data in recordset.
      .MoveFirst
      Do While Not .EOF
         Debug.Print !LastName & ", " & !FirstName & _
            " - " & !Title
         .MoveNext
      Loop

      ' Roll back any changes made by the user since this is 
      ' a demonstration.
      wrkDefault.Rollback
      .Close
   End With

   dbsNorthwind.Close

End Sub

Что касаеться использования транзакций, в аксессе, то через ,буфер ADO только.
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33269277
Andrukha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну и каков ответ? как сделать транзакцию?
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33269289
Тупой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе сказал. Используй ADO.
...
Рейтинг: 0 / 0
Транзакция в MDB базе
    #33270166
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Andrukha!

Если ODBC драйвер поддерживает это (Jet-овский должен поддерживать), то
нужно просто переключить режим ODBC транзакций с автомата на ручной - через
SQLSETPROP(m.gnConnHandle, "Transactions", 2), и использовать
SQLCOMMIT(m.gnConnHandle) для "подтверждения" транзакции и
SQLROLLBACK(m.gnConnHandle) для "отката". Открывать транзакцию "вручную" в
данном случае не нужно - считай что первая отправленная по данному
соединению SQL команда автоматом откроет транзакцию.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Транзакция в MDB базе
    #39303856
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор ' Start of outer transaction.
wrkDefault.BeginTrans
' Start of main transaction.
wrkDefault.BeginTrans


Почему два раза wrkDefault.BeginTrans ? Разве недостаточно одного раза ?


В чём разница между outer transaction и main transaction?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транзакция в MDB базе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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