CDaoQueryDef

Ein CDaoQueryDef -Objekt repräsentiert eine Abfragedefinition oder "Querydef," in der Regel eine in einer Datenbank gespeichert. Eine Querydef ist ein Daten-Access-Objekt, das die SQL-Anweisung enthält, die eine Abfrage, und seine Eigenschaften, wie z. B. "Erstellt am" und "ODBC-Zeitüberschreitung." beschreibt Außerdem können Sie temporäre Querydef-Objekte erstellen, ohne sie zu speichern, aber es ist bequem — und viel effizienter — häufig speichern in einer Datenbank Abfragen wiederverwendet. Ein CDaoDatabase -Objekt verwaltet eine Auflistung, genannt der QueryDefs-Auflistung, die seine gespeicherte Querydefs enthält.

Hinweis&Nbsp;  Die DAO-Datenbankklassen unterscheiden sich von den MFC-Datenbankklassen basiert auf Open Database Connectivity (ODBC). Alle DAO-Datenbank-Klassennamen haben das Präfix "CDao". Sie können noch Access ODBC-Datenquellen mit den DAO-Klassen. Auf der Grundlage von DAO die MFC-Klassen sind im allgemeinen leistungsfähiger als die MFC-Klassen auf der Grundlage von ODBC; die DAO-basierte Klassen können Daten, unter anderem durch ODBC-Treiber, über ihre eigenen Datenbankmodul zugreifen. Die DAO-basierte Klassen unterstützen außerdem Vorgänge (Data Definition Language, Datendefinitionssprache), wie z. B. das Hinzufügen von Tabellen über die Klassen, ohne DAO direkt aufrufen.

Verwendung

Verwenden Sie Querydef-Objekte entweder arbeiten mit einer vorhandenen Abfrage gespeichert oder erstellen Sie eine neue Abfrage oder temporäre Abfrage gespeichert:

  1. Erstellen Sie in allen Fällen zuerst ein CDaoQueryDef Objekt, liefert einen Zeiger auf das CDaoDatabase -Objekt, die Abfrage gehört.

  2. Dann gehen Sie folgendermaßen vor, je nachdem, was Sie wollen:
    • Um eine vorhandene gespeicherte Abfrage verwenden, rufen Sie das Querydef-Objekt Öffnen -Memberfunktion, liefert den Namen der gespeicherten Abfrage.

    • Rufen Sie zum Erstellen einer neuen gespeicherten Abfrage Memberfunktion des Querydef-Objekts Erstellen , liefert den Namen der Abfrage. Rufen Sie dann Anfügen , um die Abfrage zu speichern, indem er auf die Datenbank QueryDefs-Auflistung angehängt wird. Erstellen versetzt der Querydef in einen offen Zustand, so dass nach dem Aufruf Erstellen Sie nicht Öffnen aufrufen.

    • Rufen Sie zum Erstellen einer temporären Querydef Erstellen. Übergeben Sie eine leere Zeichenfolge für den Abfragenamen der. Rufen Sie nicht Anhängen.

Wenn Sie fertig sind mit einem Querydef-Objekt, rufen Sie die Close -Memberfunktion; dann zerstören Sie das Querydef-Objekt.

Tipp&Nbsp;  Die einfachste Möglichkeit zum Erstellen von gespeicherter Abfragen soll sie erstellen und speichern sie in Ihrer Datenbank mithilfe von Microsoft Access. Dann können Sie öffnen und sie in den MFC-Code verwenden.

Zwecke

Sie können ein Querydef-Objekt für die folgenden Zwecke verwenden.:

Sie können ein Querydef-Objekt für jede Art von Abfrage, einschließlich Select, Aktion, Kreuztabelle, löschen, aktualisieren, Anfüge-, Tabellenerstellungs-, Datendefinition, SQL Pass-Through, Union, und Massen-Abfragen. Die Abfrage wird durch den Inhalt der SQL-Anweisung bestimmt, die Sie angeben. Informationen über Abfragetypen finden Sie unter Execute und GetType -Memberfunktionen. Recordsets werden häufig eingesetzt für Zeilen zurückgebende fragt, in der Regel diejenigen mit der auswählen... VON Schlüsselwörter. Execute wird am häufigsten für Massenvorgänge verwendet. Weitere Informationen finden Sie unter Execute und CDaoRecordset.

Querydefs und Recordsets

Um ein Querydef-Objekt verwenden, um ein CDaoRecordset -Objekt zu erstellen, in der Regel erstellen oder öffnen eine Querydef wie oben beschrieben. Dann erstellen Sie ein Recordset-Objekt, einen Zeiger auf das Querydef-Objekt übergeben, wenn Sie CDaoRecordset:: Openaufrufen. Der Querydef übergeben muss im geöffneten Zustand sein. Weitere Informationen finden Sie unter CDaoRecordset -Klasse.

Sie können keine Querydef verwenden, um eine Recordset (die häufigste Verwendung für eine Querydef) zu erstellen, es sei denn, es im geöffneten Zustand ist. Geöffneten Zustand durch Aufrufen Öffnen oder Erstellen der Querydef umgesetzt.

Externe Datenbanken

QueryDef-Objekte sind die bevorzugte Methode für den systemeigenen SQL-Dialekt für eine externe Datenbank-Engine verwenden. Beispielsweise können Sie eine Transact-SQL-Abfrage (wie Sie auf Microsoft SQL Server verwendet wird) erstellen und speichern Sie es in ein Querydef-Objekt. Wenn Sie eine SQL-Abfrage nicht basierend auf der Microsoft Jet-Datenbankmodul verwenden müssen, müssen Sie eine Verbindungszeichenfolge bereitstellen, die auf die externe Datenquelle verweist. Abfragen mit gültigen Zeichenfolgen umgehen das Datenbankmodul herstellen und übergeben Sie die Abfrage direkt an dem externen Datenbank-Server für die Verarbeitung.

Tipp&Nbsp;  Die bevorzugte Methode zum Arbeiten mit ODBC-Tabellen ist sie an ein Microsoft Jet (.MDB) Datenbank. Weitere Informationen finden Sie im Artikel DAO externe: Arbeiten mit externen Datenquellen im Visual C++ Programmer's Guide.

Weitere Informationen über Querydefs, finden Sie im Artikel DAO-Querydef im Visual C++ Programmer's Guide. Weitere Informationen finden Sie unter die Themen "QueryDef-Objekt", "QueryDefs-Auflistung" und "Zugriff auf externe Datenbanken mit DAO" in der DAO-Hilfe.

# include lt;afxdao.h>

Klasse&nmember |nbsp; Basisklasse | Hierarchiediagramm

Proben&Nbsp; MFC DAOVIEW-Beispiel | MFC-Beispiel DAOTABLE

Siehe auch&Nbsp;CDaoRecordset, CDaoDatabase, CDaoTableDef, CDaoException

Index