vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
ADO - kurioses Programmverhalten 
Autor: InKUbuS GhUL
Datum: 19.10.05 18:05

Hallo zusammen.

Folgende Ausgangssituation:
Mein Programm verbindet sich zu einer Datenbank, liest alle Tabellen aus (außer die Systemtabellen), verstellt ein Tab und platziert darauf ein Datagrid.
Beim Klicken auf ein Tab wird das Datagrid gefüllt / aktualisiert.

Das funktioniert auch alles funderbar auf 7 verschiedenen Rechner (sowohl WinXP als auch WIn2k). NUR: Auf einem Rechner mit Win2000 und SP4 werden keine Daten in den Datagrids angezeigt ... leider auch keine Fehlermeldung!!!

(Programmentwicklung wird auf einem Win2000-Rechner mit SP3 vorgenommen)


Jetzt kommt der spannende Teil:
Ich habe den Source mal ein wenig modifiziert und geschaut, was passiert. Plötzlich hatte ich auf dem anderen Rechner (die Rede ist von dem, auf dem es nicht läuft), eine Fehlermeldung.
Da ich das mit On Error Goto ... abgefangen hatte, kam meine eigene Fehlermeldung. Die fand ich allerdings nicht sehr aussagekräftig. Ich konnte der Nachricht allerdings einen Fehlercode entnehmen: -2147467259

Im Internet finden sich allerdings mehrere hundert Suchergebnisse, die alle von einer anderen Fehlermeldung handeln.

Gut, also das On Error- und die zugehörige Fehlerbehandlung auskommentiert und nochmal versucht .... allerdings dann wieder ohne Fehlermeldung!!!

Ich hab dann mal Messageboxen in meinen Source gebaut und dann ausprobiert, wo es hakt. Hier erst mal der Source

Public Sub FillDatGrid(dataBasePath As String, strSQL As String, datGridIndex _
  As Integer)
On Error GoTo FehlerBehandlung
Dim x As Integer
Set Cn = New ADODB.Connection
 
With Cn
    .CursorLocation = adUseClient
    .Mode = adModeShareDenyNone
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .Properties("Data Source") = dataBasePath
    .Open
End With
 
Set RecSet = New ADODB.Recordset
With RecSet
    .ActiveConnection = Cn
    .CursorLocation = adUseClient
    .CursorType = adOpenKeyset
    .LockType = adLockOptimistic
    .Source = strSQL
    .Open
End With
 
Set frmMain.datGrid(datGridIndex).DataSource = RecSet
'For X = 0 To frmMain.datGrid(datGridIndex).Columns.Count - 1
'With frmMain.datGrid(datGridIndex)
'    If .Columns(X).NumberFormat <> "" Then
'        Debug.Print X & " ist nicht Text!"
'    Else
'        ' normaler Text / sonstige Datentypen
'        Debug.Print X & " ist Text!"
'    End If
'End With
    'Debug.Print frmMain.datGrid(datGridIndex).Columns(X).NumberFormat
'Next X
 
Set Cn = Nothing
Set RecSet = Nothing
 
FehlerBehandlung:
Select Case Err.Number
    Case Is = 0
        'DoNothing
    Case Else
        MsgBox "Es ist ein Fehler aufgetreten!" & vbCrLf & vbCrLf & _
          "Fehlernummer: " & Err.Number & vbCrLf & "Fehlerbeschreibung: " & _
          Err.Description, vbCritical + vbApplicationModal + vbOKOnly, _
          "HellDatCon - Fehler"
        Err.Clear
        Resume Next
End Select
Der Fehler steckt in der Zeile ".Open" (nach dem "Set RecSet = New ADODB.Recordset"

Auf gut dünken habe ich ein paar DLL-Dateien ins Systemverzeichnis von Windows (auf dem "Zielsystem") kopiert und anschließen alle regestriert (MSBind.DLL und was da sonst noch so alles war)

Im Anschluss habe ich auch nochmal kontrolliert, ob die DLL-Versionen auch wirklich mit meinen Versionen übereinstimmen. Das hat auch funktioniert ... alle Versionen stimmen überein (eine Ausnahme gab es, stdole2.tlb - die war neuer)

Ich frage mich aber, warum kommt es an besagter Stelle zu einem Fehler ... das aber auch nur, wenn ich On Error Resume drin habe und nicht mehr, wenn es raus ist?!
Warum gibt es keinen Fehler durch VB oder Windows?
Warum läuft das Windows auf allen Windowsrechnern in allen Versionen ... nur auf diesem einem Win2k SP4 Rechner nicht?!
Gibt es bei SP4 irgendetwas besonderes, das man wissen sollte?!

Ich hoffe, ihr könnt mir weiterhelfen!!!!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ADO - kurioses Programmverhalten763InKUbuS GhUL19.10.05 18:05
Re: ADO - kurioses Programmverhalten492Mortimer20.10.05 12:05
Re: ADO - kurioses Programmverhalten499InKUbuS GhUL20.10.05 15:08
Re: ADO - kurioses Programmverhalten545InKUbuS GhUL20.10.05 22:11

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel