OdbcPrepare
Mit dieser Anweisung wird ein SQL-Statement zur Durchführung mit ``OdbcExecute() vorbereitet. Das vorbereitete Statement kann mehrfach ausgeführt werden, ohne es erneut angeben zu müssen. Das wird besonders im Zusammenhang mit dem parametrisierten Aufruf (siehe OdbcParamAdd()) nützlich.
Im Parameter (obj) wird ein Deskriptor auf ein OdbcCon-Objekt übergeben. In (alpha1) ist das SQL-Statement angegeben, welches für die Durchführung vorbereitet werden soll. Bei erfolgreicher Durchführung der Anweisung wird ein Deskriptor auf ein OdbcStm-Objekt zurückgegeben. Im Fehlerfall wird _ErrOdbcError zurückgegeben. Weitere Informationen zu dem Fehler können dann über die OdbcErr...-Eigenschaften des ODBC-Verbindungs-Objekt ermittelt werden. Ist schon die Erstellung des ODBC-Statement-Objekts fehlgeschlagen, gibt die Anweisung _ErrOdbcFunctionFailed zurück.
Je nach SQL-Statement sind zwei Fälle zu unterscheiden:
-
SQL-Abfrage (SELECT)
Nach der Durchführung des Befehls muss zunächst ``OdbcExecute
()ausgeführt werden. Anschliessend kann die Ergebnismenge durch mehrfache Aufrufe von OdbcFetch()ermittelt werden. -
Schreibendes SQL-Statement (z. B. INSERT)
Da es keine Ergebnismenge gibt, ist die Durchführung mit ``OdbcExecute
()abgeschlossen.
Das Objekt bleibt erhalten, bis die Verbindung zur Datenquelle getrennt, oder das Objekt selbst mit ``OdbcClose() geschlossen wird.
Beispiel:
tOdbcStm # tOdbcCon->OdbcPrepare('SELECT Name FROM Customer');
if (tOdbcStm > 0)
{
tOdbcStm->OdbcExecute();
tClmCounter # tOdbcStm->spOdbcResCountClm;
while (tOdbcStm->OdbcFetch() = _ErrOk)
{
// Verarbeitung
...
for tCounter # 1;
loop Inc(tCounter);
while (tCounter <= tClmCounter)
{
...
}
}
tOdbcStm->OdbcClose();
}