SQL: Durchführen direkter SQL-Aufrufe (ODBC)
In diesem Thema wird Folgendes erläutert:
Wann sie direkte SQL-Aufrufe verwenden.
Hinweis
Diese Informationen gelten für die MFC-ODBC-Klassen. Wenn Sie mit den MFC-DAO-Klassen arbeiten, lesen Sie das Thema „Comparison of Microsoft Jet Database Engine SQL and ANSI SQL“ in der DAO-Hilfe.
Wann SQL direkt aufgerufen werden soll
Zum Erstellen neuer Tabellen, Ablegen (Löschen) von Tabellen, Ändern vorhandener Tabellen, Erstellen von Indizes und Ausführen anderer SQL-Funktionen, die das ODBC-Schema ändern, müssen Sie eine SQL-Anweisung direkt mit der Datenquelle mithilfe der Datenbankdefinitionssprache (Database Definition Language, DDL) ausgeben. Wenn Sie einen Assistenten zum Erstellen eines Recordsets für eine Tabelle (zur Entwurfszeit) verwenden, können Sie auswählen, welche Spalten der Tabelle im Recordset dargestellt werden sollen. Dies lässt keine Spalten zu, die Sie oder einen anderen Benutzer der Datenquelle später zur Tabelle hinzufügen, nachdem Das Programm kompiliert wurde. Die Datenbankklassen unterstützen DDL nicht direkt, Sie können jedoch weiterhin Code schreiben, um zur Laufzeit dynamisch eine neue Spalte an ihr Recordset zu binden. Informationen zum Ausführen dieser Bindung finden Sie unter Recordset: Dynamically Binding Data Columns (ODBC).
Sie können das DBMS selbst verwenden, um das Schema oder ein anderes Tool zu ändern, mit dem Sie DDL-Funktionen ausführen können. Sie können auch ODBC-Funktionsaufrufe zum Senden von SQL-Anweisungen verwenden, z. B. das Aufrufen einer vordefinierten Abfrage (gespeicherte Prozedur), die keine Datensätze zurückgibt.
Ausführen von Direct SQL-Funktionsaufrufen
Sie können einen SQL-Aufruf direkt mit einem CDatabase Class-Objekt ausführen. Richten Sie ihre SQL-Anweisungszeichenfolge (in der Regel in a CString
) ein, und übergeben Sie sie an die CDatabase::ExecuteSQL-Memberfunktion Ihres CDatabase
Objekts. Wenn Sie ODBC-Funktionsaufrufe verwenden, um eine SQL-Anweisung zu senden, die normalerweise Datensätze zurückgibt, werden die Datensätze ignoriert.