Error()

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Error()

Re: Error()

von madmatmed » Sa, 31.01.2015 13:37

Ist zwar nicht so schön, aber ich hab es jetzt folgendermaßen gelöst:

In meinem Modul ist es so eingerichtet:

Code: Alles auswählen

Dim LastErrorText As String

Sub SQLError(ErrorMsg As String)
  LastErrorText = ErrorMsg
  
  SQLRollback()  
  
  Error(4)
End Sub

Sub SQLErrorHandler 
  MsgBox "Fehler " & Err & ": " & Error$ & "(" & LastErrorText & ")"
End Sub
und wenn ich meine Werte überprüfe, hab ich es so gemacht:

Code: Alles auswählen

  On Error GoTo ErrorHandler
...
If CashBonRegisterHeaderResultSet.GetString(1) = "" Then
    SQLError(MissingPostingDate())
  End If
...
  Exit Sub
  
  ErrorHandler:
    SQLErrorHandler()
Im Feherfall wird alles beendet, ein Rollback findet statt und es erscheint eine Meldung. Z.B.:
Fehler 4: Inkorrekte Eingabe, bitte wiederholen.(Sie müssen ein Buchungsdatum angeben).

Sollte jemand noch eine bessere Idee haben, würde ich mich natürlich freuen.

Re: Error()

von madmatmed » Sa, 31.01.2015 13:11

Hmmm... interessant ist, wenn ich selber die Funktion

error(5)

z.B. im Quelltext einbaue, wird eine Exception ausgelöst .. die ich auch abfangen kann etc. Problem nur, dass ich nicht eigene Fehlercodes einbauen kann.... Oder weiß das jemand?

Re: Error()

von pmoegenb » Sa, 31.01.2015 11:57

Error()

von madmatmed » Fr, 30.01.2015 19:20

Hallo zusammen,

kann man in OOo Basic einen Fehler/Exception "schmeißen"?

Was das Error-Handling selber betrifft, ist es kein Problem.

Ich bin über den Befehl Error() gestoßen, leider bewirkt der bei mir nichts.

Ich hab im Prinzip folgenden Code (gekürzt auf das Wesentliche):

Code: Alles auswählen

On Error Goto ErrorHandler:
  
  SQLOpenConnection()

  CashBonRegisterHeaderResultSet = SQLExecuteCommand("SELECT ""PostingDate"", ""ShopID"" FROM ""CashBonRegisterHeader""")
  CashBonRegisterHeaderResultSet.Next()
  
  If CashBonRegisterHeaderResultSet.GetString(1) = "" Then
    Error(MissingPostingDate())
  End If
  
  Dim CashBonRegisterLineResultSet As Object
  CashBonRegisterLineResultSet = SQLExecuteCommand("SELECT ""ProductGroupID"", ""Description"", ""Amount"", ""PrimaryKey"" FROM ""CashBonRegisterLine""")
  
  SQLCommit()
  
  UpdateForm("MainForm", "SubFormCashBonRegisterLines")
  Exit Sub
  ErrorHandler:
    MsgBox "Fehler " & Err & ": " & Error$
    SQLRollback()
Im Prinzip möchte ich ein paar Modifikationen in der Datenbank machen und überprüfe dabei zwischendurch immer mal ein paar Werte. Falls das nicht funktioniert möchte ich einen Fehler auslösen, diesen ausgeben und ein Rollback machen.

Nach oben