Ausführen von Prozeduren
ODBC definiert eine standardmäßige Escapesequenz für die Ausführung von Prozeduren. Die Syntax dieser Sequenz und eines Codebeispiels, das sie verwendet, finden Sie unter Prozeduraufrufe.
Zum Ausführen einer Prozedur führt eine Anwendung die folgenden Aktionen aus:
Legt die Werte aller Parameter fest. Weitere Informationen finden Sie unter "Anweisungsparameter" weiter unten in diesem Abschnitt.
Ruft SQLExecDirect auf und übergibt sie eine Zeichenfolge mit der SQL-Anweisung, die die Prozedur ausführt. Diese Anweisung kann die durch ODBC- oder DBMS-spezifische Syntax definierte Escapesequenz verwenden; Anweisungen, die DBMS-spezifische Syntax verwenden, sind nicht interoperabel.
Wenn SQLExecDirect aufgerufen wird, wird der Treiber:
Ruft die aktuellen Parameterwerte ab und konvertiert sie nach Bedarf. Weitere Informationen finden Sie unter "Anweisungsparameter" weiter unten in diesem Abschnitt.
Ruft die Prozedur in der Datenquelle auf und sendet sie die konvertierten Parameterwerte. Wie der Treiber die Prozedur aufruft, ist treiberspezifisch. Beispielsweise kann die SQL-Anweisung so geändert werden, dass die SQL-Grammatik der Datenquelle verwendet und diese Anweisung zur Ausführung übermittelt wird, oder sie kann die Prozedur direkt mithilfe eines REMOTE Procedure Call (RPC)-Mechanismus aufrufen, der im Datenstromprotokoll des DBMS definiert ist.
Gibt die Werte aller Eingabe-/Ausgabe- oder Ausgabeparameter oder des Rückgabewerts der Prozedur zurück, vorausgesetzt, die Prozedur ist erfolgreich. Diese Werte sind möglicherweise erst verfügbar, nachdem alle anderen Ergebnisse (Zeilenanzahl und Resultsets), die von der Prozedur generiert wurden, verarbeitet wurden. Wenn die Prozedur fehlschlägt, gibt der Treiber Fehler zurück.