Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

VBasic SQL- Abfrage bricht mit Laufzeitfehler ab

Langer / 1 Antworten / Baumansicht Nickles

Hallo Miteinander,


habe folgendes Problem:


Bekomme sporadisch innerhalb meiner VBasic- Anwendung folgenden Laufzeitfehler:
Laufzeitfehler -2147217871 (80040e31)


Die Ausführung wurde aufgrund von erreichter Ressourcenbegrenzung
abgebrochen. Es wurden keine Ergebnisse zurückgegeben.


Dieser Laufzeitfehler tritt nicht immer auf, sondern manchmal. Ist ja bekanntlich der dümmste Fehler, denn man kann ihn nicht provozieren.
Mach hier eine einfache Datenbank- Abfrage (Oracle).
Bei der Open- Anweisung waffelt es ihn dann machmal..


Hier ein Auszug aus meinen Code:

Public Function funWasDatum(Blattnummer As Integer, WasDatum As String)
'###############################################################
'#  Funktion zum auslesen der zwischengespeicherten Datums                  #
'#  (Regel- und Spitzenaktualisierung).                                                      #
'#  Zugriff erfolgt auf die Oracle- Datenbank.                                               #
'###############################################################
Dim RECSET_ORACLE As Recordset


'--------------------------------------------------
'   Ist Datenbankverbindung möglich?!
'   -> Oracle
'--------------------------------------------------
If Plot25.fncCheckDBAtkisdatenabgabe = True Then
    frmErfassenMetadaten.StatusZeileDB Time & " - Datenbankverbindung (Oracle) für funWasDatum war möglich."
Else
    frmErfassenMetadaten.StatusZeileDB Time & " - FEHLER: Datenbankverbindung (Oracle) für funWasDatum war NICHT möglich!"
    MsgBox "FEHLER: Datenbankverbindung (Oracle) für funWasDatum war NICHT möglich!", vbCritical
    Plot25.Enabled = True
    Unload frmErfassenMetadaten
    Exit Function
End If


'--- DB oeffnen, wenn nicht offen ---
If DB_Zugriff.Atkisdatenabgabe.State = adStateClosed Then
    DB_Zugriff.Atkisdatenabgabe.Open
End If


Set RECSET_ORACLE = New Recordset


SQL = "SELECT BLATTKENNUNG, UMFASSENDE_AKT, SPITZEN_AKT " & _
      "From DA_RASTER_TK25_AUSGABE_TMP " & _
      "WHERE BLATTKENNUNG = " & CInt(Blattnummer)
Debug.Print SQL
RECSET_ORACLE.Open SQL, DB_Zugriff.Atkisdatenabgabe, adOpenStatic, adLockReadOnly 


if  RECSET_ORACLE.RecordCount = 0 Then
    Debug.Print Blattnummer & " ist nicht vorhanden!"
Else
    if ........


    End If
End If


'If RECSET_ORACLE.State = adStateOpen Then RECSET_ORACLE.Close
On Error Resume Next
RECSET_ORACLE.Close


End Function


Gruß


F.S

bei Antwort benachrichtigen
Langer Nachtrag zu: „VBasic SQL- Abfrage bricht mit Laufzeitfehler ab“
Optionen

Bin jetzt selber drauf gekommen.
Das .open hat sich mit einen RSH- Kommando auf einen UNIX- Server nicht vertragen.
Dieses RemoteCommando wurde nach einer bzw. vor einer SQL- Abfrage eingebaut, dies führte manchmal zu den besagten Laufzeitfehler. Komischerweise nur beim Klicken innerhalb eines Command- Button, wo SQL und RSH aufgerufen wurden. Innerhalb einer for- Schleife (z.B mit bis zu 1000 Durchläufen), ohne interaktiven geklicke, kam es nie zu einem Laufzeitfehler.

F.S.

bei Antwort benachrichtigen