Следует ли приложению вызывать ярлык на сетевой диск .EXE, чтобы избежать ошибок, связанных с JET, по сети Wi-Fi? - PullRequest
0 голосов
/ 23 ноября 2011

У меня проблема с приложением VB6, использующим базу данных Access-MDB.

У клиента есть .MDB и приложение .EXE, расположенное на сетевом диске в сети Wi-Fi.На одной из рабочих станций, когда приложение вызывается с помощью ярлыка на .EXE на сетевом диске, ошибок нет, но когда приложение установлено и работает локально на рабочей станции (при этом .MDB остается в сетидиск) есть ошибка.

Вот соответствующая часть кода.Сообщение об ошибке «Невозможно обновить в это время. Повторите попытку позже.»

Private Sub UpdateHistory()

Dim ecnt As Integer
Dim bInTrans As Boolean

On Error GoTo HistErr

bInTrans = False
ecnt = 0
Randomize
DBEngine.SetOption dbLockDelay, 90 + Rnd * 60
DBEngine.Idle dbRefreshCache
SWWorkspace.BeginTrans
If action = 1 Then
    historyfile.AddNew
    historyfile("customerid") = gblpkey
    historyfile("operatorid") = CurrentOperator
    historyfile("type") = gbltype
    historyfile("date") = Format(Now, "dd/mm/yyyy hh:mm:ss")
    If gbltype = 1 Or gbltype = 2 Or gbltype = 6 Then
      historyfile("rtype") = "Manual"
    End If
Else   
    historyfile.Edit
End If
saveDate = historyfile("date")
historyfile("memo") = ptext
historyfile.Update
SWWorkspace.CommitTrans dbForceOSFlush
bInTrans = False

Exit Sub

HistErr:

    ecnt = ecnt + 1
    If ecnt > 10 Then
        If bInTrans Then
          SWWorkspace.Rollback
          bInTrans = False
        End If
        Screen.MousePointer = vbDefault
        MsgBox "Unable to update at this time. Try again later. "     
        Exit Sub
    End If

  sleep 1
  DBEngine.Idle dbRefreshCache
  Resume

End Sub

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Вам нужно уловить реальную ошибку. Единственное сообщение об ошибке в сообщении ATM, которое вы сообщили нам, - это сообщение об ошибке из приложения «Невозможно обновить в данный момент. Повторите попытку позже». .... который является сообщением об ошибке все 10 повторных попыток.

0 голосов
/ 26 февраля 2012

Проблема исчезла, когда я установил EXE на сетевой диск и установил ярлык для него на другой рабочей станции.Я могу только предположить, что вызов EXE через ярлык для сетевого расположения играет определенную роль в предотвращении разрыва соединения Wi-Fi при доступе к MDB.

...