Seite 1 von 1

ODBC Aufruf einer Datenbankprozedure

Verfasst: 28.08.2006 10:48
von rolf
Hallo,
hat es schon jemand hinbekommen in PureBasic V4 oder V3.94 über ODBC eine Datenbankprozedure aufzurufen und einen Rückgabewert zu verarbeiten?
Meine DB-Prozedur legt nach diversen Prüfungen einen Datensatz an und liefert einen Status zurück.
Die Prozedur funktioniert soweit problemlos.
Wenn ich aber das ganze in ein PureBasic Programm packe kann ich die Prozedure aufrufen und der Datensatz wird angelegt.
Ich schaffe es aber nicht den Rückgabewert zu erhalten.
Folgende Versuche hab ich unternommen:

Code: Alles auswählen

If InitDatabase() 
  If OpenDatabase(0,"DB1","user","password") 
;    Result = DatabaseUpdate(0,"execute procedure Addzaehler('0167509','W0815',10)") ; Ergebnis: Satz wird angelegt keine Rückgabe
;    Result = DatabaseQuery(0,"execute procedure Addzaehler('0167509','W0815',10)") ; Ergebnis: Satz wird angelegt keine Rückgabe
     Result = DatabaseQuery(0,"select status from Addzaehler('0167509','W0815',10)")  ; Dieser Aufruf erzeugt keinen Datensatz
    If Result
      Debug GetDatabaseString(0,0);
    EndIf
  EndIf 
EndIf
Gibt es noch weitere Lösungsansätze?

Gruß
Rolf

Verfasst: 28.08.2006 11:44
von rolf
Hallo
Vor lauter Prozeduraufruf hab ich vergessen NextDatabaseRow(0) abzusetzen.
So funktioniert es jetzt bei mir:

Code: Alles auswählen

If InitDatabase()
  If OpenDatabase(0,"DB1","user","password")
    Result = DatabaseQuery(0,"execute procedure Addzaehler('0167509','W0815',10)") 
    If Result
      NextDatabaseRow(0)
      Debug GetDatabaseString(0,0);
    EndIf
  EndIf
EndIf 
Gruß
Rolf