vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 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
Oracle & VB/ VB6 stürzt beim Zugriff auf Oracle ab 
Autor: Brogi
Datum: 06.01.04 13:31

Hallo Leute,

ich bin schon am Rande der Verzweiflung, da ich folgenden Fehler nicht verstehe .
Ich greife per VB auf eine Oracle-Datenbank zu (Client 9i). Eine Funktion ruft ein Recordset mit ca 240.000 Geburtsdaten ab (Formatbsp.: 30011975 für 30.01.1975) welche ich bearbeite und dann in ein Datenfeld ablege.
Die Prozedur sieht folgendermassen aus:
Public Sub setGeburtsdatum()
'Diese Funktion fügt den Spalten "GeburtsdatumE900D010" und 
' "GeburtsdatumE900DU00"
'das Geburtsdatum im Format TT.MM.JJJJ hinzu.
Dim Datum As String
Dim Jahr As String
Dim Monat As String
Dim Tag As String
Dim Datumscheck As Boolean
Dim i As Long
Dim j As Long
 
On Error GoTo errhandler
 
'Datenbankverbindung öffnen
OracleOpen
 
'Anzahl der Datensätze zählen
SQL = " Select Count(E900D010) AS Anzahl From " & kundenDaten
Set tabelle = New ADODB.Recordset
tabelle.Open SQL, conn, adOpenForwardOnly, adLockOptimistic
i = tabelle.Fields(0).value
tabelle.Close
Set tabelle = Nothing
 
'Recordset wird abgerufen
SQL = "Select E900D010, GeburtsdatumE900D010 From " & kundenDaten
Set tabelle = New ADODB.Recordset
tabelle.Open SQL, conn, adOpenStatic, adLockOptimistic
'Aufruf der Datensätze
Do While Not tabelle.EOF
    j = j + 1
    Datum = tabelle.Fields(0).Value
    'Überprüfen des Datums und zelegen des Strings in Jahr, Monat un Tag
    If Datum <> 0 And Len(Datum) > 6 Then
        Jahr = Right(CStr(Datum), 4)
        If Len(Datum) = 8 Then
            Tag = Left(CStr(Datum), 2)
            Monat = Mid(CStr(Datum), 3, 2)
        Else
            Tag = Left(CStr(Datum), 1)
            Monat = Mid(CStr(Datum), 2, 2)
        End If
        Datum = Tag & "." & Monat & "." & Jahr
        If IsDate(Datum) = True Then
            Datumscheck = True
        Else
            Datumscheck = False
        End If
    End If
    If Datumscheck = True Then
        tabelle.Fields(1).Value = Datum
        tabelle.Update
        Datumscheck = False
    End If
    tabelle.MoveNext
Loop
'Schließen der Datenbankverbindung und zerstören des Recordset "tabelle"
tabelle.Close
Set tabelle = Nothing
 
ProgressBar.Value = 0
j = 0
 
SQL = "Select E900DU00, GeburtsdatumE900DU00 From " & kundenDaten
Set tabelle = New ADODB.Recordset
tabelle.Open SQL, conn, adOpenStatic, adLockOptimistic
'Aufruf der Datensätze
Do While Not tabelle.EOF
    j = j + 1
    Datum = tabelle.Fields(0).Value
    'Überprüfen des Datums und zelegen des Strings in Jahr, Monat un Tag
        If Datum <> 0 And Len(Datum) > 6 Then
            Jahr = Right(CStr(Datum), 4)
            If Len(Datum) = 8 Then
                Tag = Left(CStr(Datum), 2)
                Monat = Mid(CStr(Datum), 3, 2)
            Else
                Tag = Left(CStr(Datum), 1)
                Monat = Mid(CStr(Datum), 2, 2)
            End If
            Datum = Tag & "." & Monat & "." & Jahr
            If IsDate(Datum) = True Then
                Datumscheck = True
            Else
                Datumscheck = False
            End If
        End If
    If Datumscheck = True Then
        tabelle.Fields(1).Value = Datum
        tabelle.Update
        Datumscheck = False
    End If
    tabelle.MoveNext
Loop
'Schließen der Datenbankverbindung und zerstören des Recordset "tabelle"
tabelle.Close
Set tabelle = Nothing
 
'Datenbankverbindung schließen
OracleClose
Exit Sub
 
'Bei einem Fehler wird dieser geloggt
errhandler:
fehlerAnzahl = fehlerAnzahl + 1
FehlerBearbeitung "Anfügen des Geburtsdatums fehlgeschlagen. Von " & i & "" & _
  "Datensätze wurden " & j & " Datensätze bearbeitet. " & Err.Description
Resume Next
End Sub
Beim Aufruf der Prozedur stürzt meine Entwicklungsumgebung ab. Leider kann ich den Fehler aber nicht lokalisieren. Bei einem Probelauf erhielt ich die Fehlermeldung "Division durch Null" beim Zugriff auf das Recordset. Datum = tabelle.Fields(0).Value

Vielleicht hat ja schon jemand so ein Problem gehabt und kann mir weiterhelfen.

Gruß

Brogi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Oracle & VB/ VB6 stürzt beim Zugriff auf Oracle ab1.012Brogi06.01.04 13:31
Re: Oracle & VB/ VB6 stürzt beim Zugriff auf Oracle ab634Brogi07.01.04 13:55

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