Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транзакция в MDB базе / 9 сообщений из 9, страница 1 из 1
14.09.2005, 15:04
    #33269203
Andrukha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
Доброго времени суток, такая проблема - нужно открыть транзакцию в базе 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
14.09.2005, 15:07
    #33269221
Тупой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
Ты патаешься применить фоксовскую команду через дрова Аксесса. Он такой команды не знает.
...
Рейтинг: 0 / 0
14.09.2005, 15:09
    #33269225
Andrukha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
Если писать на VB BeginTrans работает - пишу в фоксе
= SQLEXEC(gnConnHandle, 'BEGINTRANS')
не работает
...
Рейтинг: 0 / 0
14.09.2005, 15:14
    #33269248
AKI
AKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
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
14.09.2005, 15:17
    #33269257
Тупой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
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
14.09.2005, 15:22
    #33269277
Andrukha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
ну и каков ответ? как сделать транзакцию?
...
Рейтинг: 0 / 0
14.09.2005, 15:24
    #33269289
Тупой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
Я тебе сказал. Используй ADO.
...
Рейтинг: 0 / 0
15.09.2005, 03:43
    #33270166
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
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
Период между сообщениями больше года.
05.09.2016, 14:47
    #39303856
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Транзакция в MDB базе
автор ' Start of outer transaction.
wrkDefault.BeginTrans
' Start of main transaction.
wrkDefault.BeginTrans


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


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


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