
Access Engine & Windows NT Net
Hi VB folks!
Me and my friend have written a vb program using the Access 1.0 Engine.
My platform is a DX40 with WfW 3.11.
As we installed it in a net with Windows NT server we had a problem:
The program tries to open a database on the server for read/write operations.
If this fails, it knows somebody else has opened it before and opens it only for read
operations.
This works fine when the program runs on the server machine itself, but starting it
on a Windows 3.1
client, opening the database takes up to 3 or 4 minutes.
Opening a database which is closed works everywhere fine!
We can't decide if the problem is at the server installation or at our db-routines.
The code to open the database is given below.
Can you help us?
ThanX in advance,
Function db_PrjInit (ByVal PrjName As String, Pfad As String, Zustand As Integer) As
Integer
32960 Dim idx_Projekte%
32962 Dim Fehler%
32964 Dim Filter$
32966 Dim Tries%
32968 Fehler% = ERR_OK
32970 Tries% = 0
32972 Zustand = LESEN_SCHREIBEN
32974 On Error GoTo ErrHandlerPrjInit
32976 tbProjekte.Index = "BV_Bezeichnung"
32978 tbProjekte.Seek "=", PrjName
32980 idx_Projekte = tbProjekte("idx_Projekte")
32982 PrjPfad = SystemPfad & "\" & Format$(idx_Projekte, "00000000")
32984 Set dbProjekt = OpenDatabase(PrjPfad & "\prjdaten.mdb", False, False)
32986 Set tbZeichnungen = dbProjekt.OpenTable("Zeichnungen", DB_DENYWRITE)
32988 On Error GoTo 0
32990 If Zustand = NUR_LESEN Then
32992 Set tbProjektBeteiligte = dbProjekt.OpenTable("ProjektBeteiligte",
DB_READONLY)
' ...
33012 Set qryPrjBeteiligterZeichnungsInfo =
dbProjekt.OpenQueryDef("PrjBeteiligterZeichnungsInfo")
33014 Else
33016 Set tbProjektBeteiligte = dbProjekt.OpenTable("ProjektBeteiligte")
33018 Set tbbergabeBelege = dbProjekt.OpenTable("bergabebel?ge")
' ...
33036 Set qryPrjBeteiligterZeichnungsInfo =
dbProjekt.OpenQueryDef("PrjBeteiligterZeichnungsInfo")
33038 End If
33040 Pfad = PrjPfad
33042 db_PrjInit = Fehler%
33044 Exit Function
ErrHandlerPrjInit:
Select Case Err
Case 3009: ' DatenBank bereits durch den eigenen Proze? gesperrt
33046 Resume Next
Case 3049: ' Die DatenBank ist besch?digt!
33048 If DEBUGING Then MsgBox "DatenBank in Verzeichnis " & PrjPfad & " ist
besch?digt und wird repariert!"
33050 RepairDatabase (PrjPfad & "\prjdaten.mdb")
33052 Tries% = Tries% + 1
33054 If Tries% > 2 Then
33056 db_PrjInit = ERR_PROJEKT_INIT
33058 On Error GoTo 0
33060 Exit Function
33062 End If
33064 Resume 0
Case 3261: ' DatenBank ist durch anderen Proze? gesperrt
33066 Set tbZeichnungen = dbProjekt.OpenTable("Zeichnungen", DB_READONLY)
33068 Zustand = NUR_LESEN
33070 Resume Next
Case Else: ' Sonstiger Fehler!
33072 If DEBUGING Then MsgBox "PrjInit :Fehler " & Err & " " & Erl
33074 db_PrjInit = ERR_PROJEKT_INIT
33076 On Error GoTo 0
33078 Exit Function
33080 End Select
End Function