OdbcPrepare
obj -> OdbcPrepare(alpha1) : handle
SQL-Statement vorbereiten
Details
- obj: Deskriptor eines ODBC-Verbindungs-Objekts
- alpha1: SQL-Statement
- Resultat:
handleDeskriptor auf ein ODBC-Statement-Objekt - Siehe: Verwandte Befehle ,
OdbcConnect (),OdbcExecute (),OdbcParamAdd ()
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 vonOdbcFetch ()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();
}