Überblick über wichtige ODBC-Funktionen Umgebungshandle einrichten: SQLAllocEnv(&handlevariable_environment) Verbindungshandle einrichten: SQLAllocConnect (handlevariable_environment, &handlevariable_verbindung) Verbindung zur Datenbank aufbauen: SQLConnect( handlevariable_verbindung, Datenquellenname /* logischer Name der Datenbank */, Art_Zeichenkette /* z.B. SQL_NTS = Null Terminatet String */, Benutzername /* z.B. "[email protected]" */, Länge_Benutzername /* z.B. 15 */, Passwort, Länge_Passwort /* z.B. 14 */) Anweisungshandle einrichten: SQLAllocStmt(handlevariable_verbindung, &handlevariable_anweisung) Bindung von Tabellenspalten zu C-Variablen SQLBindCol( handlevariable_anweisung, Spaltennummer /* z.B. 1 */, Datentyp_der_Spalte, /* z.B. SQL_INTEGER oder SQL_C_CHAR */, &Zielvariable /* Variable der UWA an die die Spalte gebunden wird */, sizeof(Zielvariable) /* maximale Größe */, &Datenlänge /* Ergebnisparameter für die tatsächliche Größe */) Einmaliges Ausführen einer SQL-Anweisung: SQLExecDirect( handlevariable_anweisung, string_mit_SQL_Anweisung /* z.B. "SELECT * FROM Sportler" */, Art_Zeichenkette /* z.B. SQL_NTS = Null Terminatet String */) Wenn eine Anweisung mehrfach ausgeführt werden soll: Bindung von Parametern zu C-Variablen SQLBindParameter( handlevariable_anweisung, Reihenfolge-Nummer des Parameters in der Anweisung, Eingabe oder Ausgabeparameter /* meist SQL_INPUT_PARM */, C_Datentyp_des_Parameters, /* z.B. SQL_C_LONG oder SQL_C_CHAR */, SQL_Datentyp_der_Spalte, /* z.B. SQL_INTEGER oder SQL_CHAR */, Spaltenbreite, Anzahl_Dezimalstellen, Pointer_auf_Parametervariable, sizeof(Parametervariable), &Parameterlänge /* Ergebnisvariable für die tatsächliche Größe des Parameter */); Vorbereiten und Ausführen einer SQL-Anweisung: SQLPrepare( handlevariable_anweisung, string_mit_SQL_Anweisung /* z.B. "SELECT * FROM Sportler" */, Art_Zeichenkette /* z.B. SQL_NTS = Null Terminatet String */) SQLExecute(handlevariable_anweisung) Datensatz holen; die Tabellenspalten werden automatisch in den durch SQLBindCol festgelegten Variablen abgelegt: SQLFetch(handlevariable_anweisung) Fehlermeldung holen: SQLError(0, 0, handlevariable_anweisung, Stringvariable_für_Status, &Fehlerzahl, Stringvariable_für_Fehlermeldung, sizeof(Stringvariable_für_Fehlermeldung), &Fehlermeldunglänge); Verbindung beenden: SQLDisconnect(handlevariable_verbindung) Handlevariable deallocieren: SQLFreeConnect(handlevariable_verbindung) Eigene Transaktionskontrolle verwenden: Aktivieren: SQLSetConnectOption( handlevariable_verbindung, SQL_Autocommit, SQL_Autocommit_OFF); Transaktion bestätigen: SQLTransact( SQL_NULL_HENV, handlevariable_verbindung, SQL_COMMIT); Automatische Transaktionskontrolle wiederherstellen: SQLSetConnectOption( handlevariable_verbindung, SQL_Autocommit, SQL_Autocommit_ON);