CDaoQueryDef-Klasse

Stellt eine Abfragedefinition ("Querydef") dar, die in einer Datenbank gespeichert ist.

Syntax

class CDaoQueryDef : public CObject

Member

Öffentliche Konstruktoren

name BESCHREIBUNG
CDaoQueryDef::CDaoQueryDef Erstellt ein CDaoQueryDef-Objekt. Nächster Anruf Open oder Create, je nach Ihren Anforderungen.

Öffentliche Methoden

name BESCHREIBUNG
CDaoQueryDef::Append Fügt die Abfragedef als gespeicherte Abfrage an die QueryDefs-Auflistung der Datenbank an.
CDaoQueryDef::CanUpdate Gibt nonzero zurück, wenn die Abfrage die Datenbank aktualisieren kann.
CDaoQueryDef::Close Schließt das querydef-Objekt. Zerstören Sie das C++-Objekt, wenn Sie damit fertig sind.
CDaoQueryDef::Create Erstellt das zugrunde liegende DAO querydef-Objekt. Verwenden Sie die Abfragedef als temporäre Abfrage, oder rufen Sie sie auf Append , um sie in der Datenbank zu speichern.
CDaoQueryDef::Execute Führt die abfrage aus, die vom Querydef-Objekt definiert ist.
CDaoQueryDef::GetConnect Gibt die Verbindungszeichenfolge zurück, die der Abfragedef zugeordnet ist. Die Verbindungszeichenfolge identifiziert die Datenquelle. (Nur für SQL Pass-Through-Abfragen; andernfalls eine leere Zeichenfolge.)
CDaoQueryDef::GetDateCreated Gibt das Datum zurück, an dem die gespeicherte Abfrage erstellt wurde.
CDaoQueryDef::GetDateLastUpdated Gibt das Datum zurück, an dem die gespeicherte Abfrage zuletzt aktualisiert wurde.
CDaoQueryDef::GetFieldCount Gibt die Anzahl der felder zurück, die von der Abfragedef definiert sind.
CDaoQueryDef::GetFieldInfo Gibt Informationen zu einem angegebenen Feld zurück, das in der Abfrage definiert ist.
CDaoQueryDef::GetName Gibt den Namen der Abfragedef zurück.
CDaoQueryDef::GetODBCTimeout Gibt den Timeoutwert zurück, der von ODBC (für eine ODBC-Abfrage) verwendet wird, wenn die Abfragedef ausgeführt wird. Dadurch wird bestimmt, wie lange die Aktion der Abfrage abgeschlossen werden kann.
CDaoQueryDef::GetParameterCount Gibt die Anzahl der für die Abfrage definierten Parameter zurück.
CDaoQueryDef::GetParameterInfo Gibt Informationen zu einem angegebenen Parameter an die Abfrage zurück.
CDaoQueryDef::GetParamValue Gibt den Wert eines angegebenen Parameters an die Abfrage zurück.
CDaoQueryDef::GetRecordsAffected Gibt die Anzahl der Datensätze zurück, die von einer Aktionsabfrage betroffen sind.
CDaoQueryDef::GetReturnsRecords Gibt nonzero zurück, wenn die durch die Abfrage definierte Abfrage Datensätze zurückgibt.
CDaoQueryDef::GetSQL Gibt die SQL Zeichenfolge zurück, die die durch die Abfrage definierte Abfrage angibt.
CDaoQueryDef::GetType Gibt den Abfragetyp zurück: löschen, aktualisieren, anfügen, tabelle usw.
CDaoQueryDef::IsOpen Gibt nonzero zurück, wenn die Abfragedef geöffnet ist und ausgeführt werden kann.
CDaoQueryDef::Open Öffnet eine vorhandene Abfragedef, die in der QueryDefs-Auflistung der Datenbank gespeichert ist.
CDaoQueryDef::SetConnect Legt die Verbindungszeichenfolge für eine SQL Pass-Through-Abfrage für eine ODBC-Datenquelle fest.
CDaoQueryDef::SetName Legt den Namen der gespeicherten Abfrage fest, indem der Name ersetzt wird, der verwendet wird, wenn die Abfragedef erstellt wurde.
CDaoQueryDef::SetODBCTimeout Legt den Timeoutwert fest, der von ODBC (für eine ODBC-Abfrage) verwendet wird, wenn die Abfragedef ausgeführt wird.
CDaoQueryDef::SetParamValue Legt den Wert eines angegebenen Parameters auf die Abfrage fest.
CDaoQueryDef::SetReturnsRecords Gibt an, ob die Abfragedef Datensätze zurückgibt. Das Festlegen dieses Attributs auf TRUE ist nur für SQL Pass-Through-Abfragen gültig.
CDaoQueryDef::SetSQL Legt die SQL Zeichenfolge fest, die die durch die Abfragedef definierte Abfrage angibt.

Öffentliche Datenmember

Name BESCHREIBUNG
CDaoQueryDef::m_pDAOQueryDef Ein Zeiger auf die OLE-Schnittstelle für das zugrunde liegende DAO-Querydef-Objekt.
CDaoQueryDef::m_pDatabase Ein Zeiger auf das CDaoDatabase Objekt, dem die Abfragedef zugeordnet ist. Die Abfragedef wird möglicherweise in der Datenbank gespeichert oder nicht.

Bemerkungen

Eine Abfragedef ist ein Datenzugriffsobjekt, das die SQL-Anweisung enthält, die eine Abfrage beschreibt, und seine Eigenschaften, z. B. "Datum erstellt" und "ODBC-Timeout". Sie können auch temporäre Abfragedef-Objekte erstellen, ohne sie zu speichern, aber es ist praktisch – und viel effizienter – zu speichern, um häufig wiederverwendete Abfragen in einer Datenbank zu speichern. Ein CDaoDatabase-Objekt verwaltet eine Auflistung, die als QueryDefs-Auflistung bezeichnet wird, die ihre gespeicherten Abfragedefs enthält.

Hinweis

Die DAO-Datenbankklassen unterscheiden sich von den MFC-Datenbankklassen basierend auf Open Database Connectivity (ODBC). Alle DAO-Datenbankklassennamen weisen das Präfix "CDao" auf. Sie können weiterhin auf ODBC-Datenquellen mit den DAO-Klassen zugreifen. Im Allgemeinen sind die MFC-Klassen basierend auf DAO mehr fähig als die MFC-Klassen basierend auf ODBC; Die DAO-basierten Klassen können über ODBC-Treiber über ihr eigenes Datenbankmodul auf Daten zugreifen. Die DAO-basierten Klassen unterstützen auch DDL-Vorgänge (Data Definition Language), z. B. das Hinzufügen von Tabellen über die Klassen, ohne DAO direkt aufrufen zu müssen.

Verwendung

Verwenden Sie abfragedef-Objekte, um entweder mit einer vorhandenen gespeicherten Abfrage zu arbeiten oder eine neue gespeicherte Abfrage oder temporäre Abfrage zu erstellen:

  1. In allen Fällen erstellen Sie zunächst ein CDaoQueryDef Objekt, indem Sie einen Zeiger auf das CDaoDatabase-Objekt bereitstellen, zu dem die Abfrage gehört.

  2. Gehen Sie dann wie folgt vor, je nachdem, was Sie möchten:

    • Um eine vorhandene gespeicherte Abfrage zu verwenden, rufen Sie die Open-Member-Funktion des Querydef-Objekts auf, und geben Sie den Namen der gespeicherten Abfrage an.

    • Rufen Sie zum Erstellen einer neuen gespeicherten Abfrage die Elementfunktion "Create" des Querydef-Objekts auf, und geben Sie den Namen der Abfrage an. Rufen Sie dann "Append " auf, um die Abfrage zu speichern, indem Sie sie an die QueryDefs-Auflistung der Datenbank anfügen. Create fügt die Abfragedef in einen geöffneten Zustand ein, sodass Sie nach dem Aufrufen Create nicht aufrufen Open.

    • Rufen Sie auf Create, um eine temporäre Abfragedef zu erstellen. Übergeben Sie eine leere Zeichenfolge für den Abfragenamen. Rufen Sie Append nicht auf.

Wenn Sie mit der Verwendung eines Querydef-Objekts fertig sind, rufen Sie die Funktion "Schließen "-Member auf; zerstören Sie dann das querydef-Objekt.

Tipp

Die einfachste Möglichkeit zum Erstellen gespeicherter Abfragen besteht darin, sie zu erstellen und mithilfe von Microsoft Access in Ihrer Datenbank zu speichern. Anschließend können Sie sie in Ihrem MFC-Code öffnen und verwenden.

Zwecke

Sie können ein querydef-Objekt für eine der folgenden Zwecke verwenden:

  • So erstellen Sie ein CDaoRecordset Objekt

  • So rufen Sie die Memberfunktion des Execute Objekts auf, um eine Aktionsabfrage oder eine SQL Pass-Through-Abfrage direkt auszuführen.

Sie können ein querydef-Objekt für jeden Abfragetyp verwenden, einschließlich Auswahl, Aktion, Kreuztabelle, Löschen, Aktualisieren, Anfüge, Make-Table, Datendefinition, SQL Pass-Through-, Union- und Massenabfragen. Der Abfragetyp wird durch den Inhalt der von Ihnen bereitgestellten SQL Anweisung bestimmt. Informationen zu Abfragetypen finden Sie in den Execute Und GetType-Memberfunktionen . Recordsets werden häufig für Zeilenrückgabeabfragen verwendet, in der Regel diejenigen, die select ... FROM-Schlüsselwörter . Execute wird am häufigsten für Massenvorgänge verwendet. Weitere Informationen finden Sie unter Execute and CDaoRecordset.

Querydefs und Recordsets

Um ein Querydef-Objekt zum Erstellen eines CDaoRecordset Objekts zu verwenden, erstellen oder öffnen Sie normalerweise eine Abfragedef wie oben beschrieben. Erstellen Sie dann ein Recordset-Objekt, indem Sie einen Zeiger an Ihr querydef-Objekt übergeben, wenn Sie CDaoRecordset::Open aufrufen. Die abfragedef, die Sie übergeben, muss sich in einem geöffneten Zustand befinden. Weitere Informationen finden Sie unter " CDaoRecordset".

Sie können keine Abfragedef verwenden, um ein Recordset (die am häufigsten verwendete Verwendung für eine Abfrage) zu erstellen, es sei denn, es befindet sich in einem geöffneten Zustand. Setzen Sie die Abfragedef in einen geöffneten Zustand, indem Sie entweder Open oder Create.

Externe Datenbanken

Querydef-Objekte sind die bevorzugte Möglichkeit, den nativen SQL Dialekt eines externen Datenbankmoduls zu verwenden. Sie können z. B. eine Transact-SQL-Abfrage (wie in Microsoft SQL Server verwendet) erstellen und in einem Querydef-Objekt speichern. Wenn Sie eine SQL Abfrage verwenden müssen, die nicht auf dem Microsoft Jet-Datenbankmodul basiert, müssen Sie eine Verbindungszeichenfolge bereitstellen, die auf die externe Datenquelle verweist. Abfragen mit gültigen Verbindungszeichenfolgen umgehen das Datenbankmodul und übergeben die Abfrage direkt an den externen Datenbankserver zur Verarbeitung.

Tipp

Die bevorzugte Möglichkeit, mit ODBC-Tabellen zu arbeiten, besteht darin, sie an einen Microsoft Jet anzufügen (. MDB)-Datenbank.

Verwandte Informationen finden Sie in den Themen "QueryDef-Objekt", "QueryDefs-Auflistung" und "CdbDatabase-Objekt" im DAO SDK.

Vererbungshierarchie

Cobject

CDaoQueryDef

Anforderungen

Header: afxdao.h

CDaoQueryDef::Append

Rufen Sie diese Memberfunktion auf, nachdem Sie Create aufgerufen haben, um ein neues querydef-Objekt zu erstellen.

virtual void Append();

Bemerkungen

Append speichert die Abfragedef in der Datenbank, indem sie das Objekt an die QueryDefs-Auflistung der Datenbank anfügen. Sie können die Abfragedef als temporäres Objekt verwenden, ohne es anzufügen, aber wenn sie beibehalten werden soll, müssen Sie aufrufen Append.

Wenn Sie versuchen, ein temporäres Querydef-Objekt anzufügen, löst MFC eine Ausnahme vom Typ CDaoException aus.

CDaoQueryDef::CanUpdate

Rufen Sie diese Memberfunktion auf, um zu bestimmen, ob Sie die Abfragedef ändern können – z. B. ändern sie den Namen oder SQL Zeichenfolge.

BOOL CanUpdate();

Rückgabewert

Nonzero, wenn Sie die Abfragedef ändern dürfen; andernfalls 0.

Bemerkungen

Sie können die Abfragedef ändern, wenn:

  • Sie basiert nicht auf einer Datenbank, die schreibgeschützt geöffnet ist.

  • Sie verfügen über Aktualisierungsberechtigungen für die Datenbank.

    Dies hängt davon ab, ob Sie Sicherheitsfeatures implementiert haben. MFC bietet keine Unterstützung für sicherheit; Sie müssen sie selbst implementieren, indem Sie DAO direkt oder mithilfe von Microsoft Access aufrufen. Weitere Informationen finden Sie im Thema "Berechtigungseigenschaft" in der DAO-Hilfe.

CDaoQueryDef::CDaoQueryDef

Erstellt ein CDaoQueryDef-Objekt.

CDaoQueryDef(CDaoDatabase* pDatabase);

Parameter

pDatabase
Ein Zeiger auf ein geöffnetes CDaoDatabase-Objekt .

Bemerkungen

Das Objekt kann eine vorhandene Abfrage darstellen, die in der QueryDefs-Auflistung der Datenbank gespeichert ist, eine neue Abfrage, die in der Auflistung gespeichert werden soll, oder eine temporäre Abfrage, die nicht gespeichert werden soll. Ihr nächster Schritt hängt vom Typ der Abfragedef ab:

  • Wenn das Objekt eine vorhandene Abfragedef darstellt, rufen Sie die Open-Memberfunktion des Objekts auf, um sie zu initialisieren.

  • Wenn das Objekt eine neue abfragedef darstellt, die gespeichert werden soll, rufen Sie die Create-Memberfunktion des Objekts auf. Dadurch wird das Objekt zur QueryDefs-Auflistung der Datenbank hinzugefügt. Rufen Sie dann Memberfunktionen auf CDaoQueryDef , um die Attribute des Objekts festzulegen. Rufen Sie schließlich "Anfügen" auf.

  • Wenn das Objekt eine temporäre Abfragedef darstellt (nicht in der Datenbank gespeichert werden soll), wird eine Createleere Zeichenfolge für den Namen der Abfrage übergeben. Initialisieren Sie nach dem Aufruf Createdie Abfragedef, indem Sie ihre Attribute direkt festlegen. Rufen Sie Append nicht auf.

Um die Attribute der Abfragedef festzulegen, können Sie die Memberfunktionen "SetName", " SetSQL", " SetConnect", " SetODBCTimeout" und " SetReturnsRecords " verwenden.

Wenn Sie mit dem Querydef-Objekt fertig sind, rufen Sie die Funktion "Schließen "-Member auf. Wenn Sie einen Zeiger auf die Abfragedef haben, verwenden Sie den delete Operator, um das C++-Objekt zu zerstören.

CDaoQueryDef::Close

Rufen Sie diese Memberfunktion auf, wenn Sie mit dem Querydef-Objekt fertig sind.

virtual void Close();

Bemerkungen

Durch das Schließen der Abfragedef wird das zugrunde liegende DAO-Objekt freigegeben, aber das gespeicherte DAO querydef-Objekt oder das C++ CDaoQueryDef -Objekt nicht zerstört. Dies entspricht nicht der CDaoDatabase::D eleteQueryDef, die die Abfragedef aus der QueryDefs-Auflistung der Datenbank in DAO löscht (wenn keine temporäre Abfragedef).

CDaoQueryDef::Create

Rufen Sie diese Memberfunktion auf, um eine neue gespeicherte Abfrage oder eine neue temporäre Abfrage zu erstellen.

virtual void Create(
    LPCTSTR lpszName = NULL,
    LPCTSTR lpszSQL = NULL);

Parameter

lpszName
Der eindeutige Name der In der Datenbank gespeicherten Abfrage. Ausführliche Informationen zur Zeichenfolge finden Sie im Thema "CreateQueryDef-Methode" in der DAO-Hilfe. Wenn Sie den Standardwert akzeptieren, wird eine leere Zeichenfolge erstellt, eine temporäre Abfragedef. Eine solche Abfrage wird nicht in der QueryDefs-Auflistung gespeichert.

Lpszsql
Die SQL Zeichenfolge, die die Abfrage definiert. Wenn Sie den Standardwert von NULL akzeptieren, müssen Sie "SetSQL " später aufrufen, um die Zeichenfolge festzulegen. Bis dahin ist die Abfrage nicht definiert. Sie können jedoch die nicht definierte Abfrage verwenden, um ein Recordset zu öffnen; Weitere Informationen finden Sie unter "Hinweise". Die SQL-Anweisung muss definiert werden, bevor Sie die Abfragedef an die QueryDefs-Auflistung anfügen können.

Bemerkungen

Wenn Sie einen Namen in lpszName übergeben, können Sie "Append " aufrufen, um die Abfragedef in der QueryDefs-Auflistung der Datenbank zu speichern. Andernfalls ist das Objekt eine temporäre Abfragedef und wird nicht gespeichert. In beiden Fällen befindet sich die Abfragedef in einem geöffneten Zustand, und Sie können es entweder verwenden, um ein CDaoRecordset-Objekt zu erstellen oder die Execute-Memberfunktion der Abfrage aufzurufen.

Wenn Sie keine SQL-Anweisung in lpszSQL angeben, können Sie die Abfrage Execute nicht ausführen, aber Sie können es verwenden, um ein Recordset zu erstellen. In diesem Fall verwendet MFC die standardmäßige SQL-Anweisung des Recordsets.

CDaoQueryDef::Execute

Rufen Sie diese Memberfunktion auf, um die durch das querydef-Objekt definierte Abfrage auszuführen.

virtual void Execute(int nOptions = dbFailOnError);

Parameter

nOptions
Eine ganze Zahl, die die Merkmale der Abfrage bestimmt. Weitere Informationen finden Sie im Thema "Execute-Methode" in der DAO-Hilfe. Sie können den Bitweise-OR-Operator (|) verwenden, um die folgenden Konstanten für dieses Argument zu kombinieren:

  • dbDenyWrite Verweigern der Schreibberechtigung für andere Benutzer.

  • dbInconsistent Inkonsistente Updates.

  • dbConsistent Konsistente Updates.

  • dbSQLPassThroughSQL Durchlauf. Verursacht, dass die SQL-Anweisung an eine ODBC-Datenbank für die Verarbeitung übergeben wird.

  • dbFailOnError Standardwert. Rollbackupdates, wenn ein Fehler auftritt, und melden Sie den Fehler an den Benutzer.

  • dbSeeChanges Generieren Sie einen Laufzeitfehler, wenn ein anderer Benutzer Daten ändert, die Sie bearbeiten.

Hinweis

Eine Erläuterung der Begriffe "inkonsistent" und "konsistent" finden Sie im Thema "Execute-Methode" in der DAO-Hilfe.

Bemerkungen

Abfragedef-Objekte, die auf diese Weise für die Ausführung verwendet werden, können nur einen der folgenden Abfragetypen darstellen:

  • Aktionsabfragen

  • SQL Pass-Through-Abfragen

Execute funktioniert nicht für Abfragen, die Datensätze zurückgeben, z. B. Auswahlabfragen. Execute wird häufig für Massenvorgangsabfragen verwendet, z. B. UPDATE, INSERT oder SELECT INTO oder für DDL-Vorgänge (Data Definition Language).

Tipp

Die bevorzugte Möglichkeit zum Arbeiten mit ODBC-Datenquellen besteht darin, Tabellen an einen Microsoft Jet anzufügen (. MDB)-Datenbank. Weitere Informationen finden Sie im Thema "Zugreifen auf externe Datenbanken mit DAO" in der DAO-Hilfe.

Rufen Sie die Funktion "GetRecordsAffected" -Element des Querydef-Objekts auf, um die Anzahl der Datensätze zu ermitteln, die von dem letzten Aufruf betroffen sind Execute . Gibt beispielsweise GetRecordsAffected Informationen zur Anzahl gelöschter, aktualisierter oder eingefügter Datensätze zurück, wenn eine Aktionsabfrage ausgeführt wird. Die zurückgegebene Anzahl spiegelt keine Änderungen in verwandten Tabellen wider, wenn kaskadierte Updates oder Löschungen wirksam sind.

Wenn Sie sowohl als dbInconsistentdbConsistent auch wenn Sie keines einschließen, ist das Ergebnis die Standardeinstellung. dbInconsistent

Execute gibt kein Recordset zurück. Die Verwendung Execute in einer Abfrage, die Datensätze auswählt, führt dazu, dass MFC eine Ausnahme vom Typ CDaoException auslöst.

CDaoQueryDef::GetConnect

Rufen Sie diese Memberfunktion auf, um die Verbindungszeichenfolge abzurufen, die der Datenquelle der Abfragedef zugeordnet ist.

CString GetConnect();

Rückgabewert

Eine CString , die die Verbindungszeichenfolge für die Abfragedef enthält.

Bemerkungen

Diese Funktion wird nur mit ODBC-Datenquellen und bestimmten ISAM-Treibern verwendet. Es wird nicht mit Microsoft Jet () verwendet. MDB)-Datenbanken; Gibt in diesem Fall GetConnect eine leere Zeichenfolge zurück. Weitere Informationen finden Sie unter SetConnect.

Tipp

Die bevorzugte Möglichkeit, mit ODBC-Tabellen zu arbeiten, besteht darin, sie an eine Anfügen. MDB-Datenbank. Weitere Informationen finden Sie im Thema "Zugreifen auf externe Datenbanken mit DAO" in der DAO-Hilfe.

Informationen zu Verbindungszeichenfolgen finden Sie im Thema "Verbinden Eigenschaft" in der DAO-Hilfe.

CDaoQueryDef::GetDateCreated

Rufen Sie diese Memberfunktion auf, um das Datum abzurufen, an dem das Abfragedef-Objekt erstellt wurde.

COleDateTime GetDateCreated();

Rückgabewert

Ein COleDateTime-Objekt , das das Datum und die Uhrzeit der Abfragedef enthält.

Bemerkungen

Weitere Informationen finden Sie im Thema "DateCreated, LastUpdated Properties" in der DAO-Hilfe.

CDaoQueryDef::GetDateLastUpdated

Rufen Sie diese Memberfunktion auf, um das Datum abzurufen, an dem das Querydef-Objekt zuletzt aktualisiert wurde – wenn eine der Eigenschaften geändert wurde, z. B. den Namen, die SQL Zeichenfolge oder die Verbindungszeichenfolge.

COleDateTime GetDateLastUpdated();

Rückgabewert

Ein COleDateTime-Objekt , das das Datum und die Uhrzeit enthält, zu der die Abfragedef zuletzt aktualisiert wurde.

Bemerkungen

Weitere Informationen finden Sie im Thema "DateCreated, LastUpdated Properties" in der DAO-Hilfe.

CDaoQueryDef::GetFieldCount

Rufen Sie diese Memberfunktion auf, um die Anzahl der Felder in der Abfrage abzurufen.

short GetFieldCount();

Rückgabewert

Die Anzahl der Felder, die in der Abfrage definiert sind.

Bemerkungen

GetFieldCount ist nützlich für die Schleife über alle Felder in der Abfragedef. Verwenden Sie GetFieldCount dazu in Verbindung mit GetFieldInfo.

CDaoQueryDef::GetFieldInfo

Rufen Sie diese Memberfunktion auf, um verschiedene Arten von Informationen zu einem feld abzurufen, das in der Abfragedef definiert ist.

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parameter

nIndex
Der nullbasierte Index des gewünschten Felds in der Fields-Auflistung der Abfragedef, um nach Index nach Suchen zu suchen.

Fieldinfo
Ein Verweis auf ein CDaoFieldInfo Objekt, das die angeforderten Informationen zurückgibt.

dwInfoOptions
Optionen, die angeben, welche Informationen über das zu abrufende Feld enthalten sind. Die verfügbaren Optionen werden hier zusammen mit dem aufgeführt, was dazu führt, dass die Funktion zurückgegeben wird:

  • AFX_DAO_PRIMARY_INFO (Standard) Name, Typ, Größe, Attribute

  • AFX_DAO_SECONDARY_INFO Primärinformationen plus: Ordinalposition, Erforderlich, Zulässige Länge, Quellfeld, Fremdname, Quelltabelle, Sortierreihenfolge

  • AFX_DAO_ALL_INFO Primäre und sekundäre Informationen plus: Standardwert, Validierungstext, Gültigkeitsprüfungsregel

lpszName
Eine Zeichenfolge, die den Namen des gewünschten Felds enthält, für die Nachschlagefunktion nach Name. Sie können eine CString verwenden.

Bemerkungen

Eine Beschreibung der in Fieldinfo zurückgegebenen Informationen finden Sie in der CDaoFieldInfo-Struktur . Diese Struktur verfügt über Elemente, die den beschreibenden Informationen unter dwInfoOptions oben entsprechen. Wenn Sie eine Informationsstufe anfordern, erhalten Sie auch alle vorherigen Informationsstufen.

CDaoQueryDef::GetName

Rufen Sie diese Memberfunktion auf, um den Namen der Abfrage abzurufen, die durch die Abfragedef dargestellt wird.

CString GetName();

Rückgabewert

Der Name der Abfrage.

Bemerkungen

Abfragedef-Namen sind eindeutige benutzerdefinierte Namen. Weitere Informationen zu Abfragedefnamen finden Sie im Thema "Name-Eigenschaft" in der DAO-Hilfe.

CDaoQueryDef::GetODBCTimeout

Rufen Sie diese Memberfunktion auf, um das aktuelle Zeitlimit abzurufen, bevor eine Abfrage an eine ODBC-Datenquelle ausgedauert ist.

short GetODBCTimeout();

Rückgabewert

Die Anzahl von Sekunden, nach denen ein Timeout bei einer Abfrage eintritt.

Bemerkungen

Informationen zu diesem Zeitlimit finden Sie im Thema "ODBCTimeout-Eigenschaft" in der DAO-Hilfe.

Tipp

Die bevorzugte Möglichkeit zum Arbeiten mit ODBC-Tabellen besteht darin, sie an einen Microsoft Jet anzufügen (. MDB)-Datenbank. Weitere Informationen finden Sie im Thema "Zugreifen auf externe Datenbanken mit DAO" in der DAO-Hilfe.

CDaoQueryDef::GetParameterCount

Rufen Sie diese Memberfunktion auf, um die Anzahl der Parameter in der gespeicherten Abfrage abzurufen.

short GetParameterCount();

Rückgabewert

Die Anzahl der parameter, die in der Abfrage definiert sind.

Bemerkungen

GetParameterCount ist nützlich für die Schleife aller Parameter in der Abfragedef. Verwenden Sie GetParameterCount dazu in Verbindung mit GetParameterInfo.

Weitere Informationen finden Sie in den Themen "Parameterobjekt", "Parametersammlung" und "PARAMETERS-Deklaration (SQL)" in der DAO-Hilfe.

CDaoQueryDef::GetParameterInfo

Rufen Sie diese Memberfunktion auf, um Informationen zu einem in der Abfragedef definierten Parameter abzurufen.

void GetParameterInfo(
    int nIndex,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetParameterInfo(
    LPCTSTR lpszName,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parameter

nIndex
Der nullbasierte Index des gewünschten Parameters in der Parameters-Auflistung der Abfragedef, um nach Index nach Suchen zu suchen.

paraminfo
Ein Verweis auf ein CDaoParameterInfo-Objekt , das die angeforderten Informationen zurückgibt.

dwInfoOptions
Optionen, die angeben, welche Informationen über den zu abrufenden Parameter enthalten sind. Die verfügbare Option wird hier zusammen mit dem aufgeführt, was dazu führt, dass die Funktion zurückgegeben wird:

  • AFX_DAO_PRIMARY_INFO (Standardname), Typ

lpszName
Eine Zeichenfolge, die den Namen des gewünschten Parameters enthält, für die Nachschlagevorgang nach Name. Sie können eine CString verwenden.

Bemerkungen

Eine Beschreibung der in paraminfo zurückgegebenen Informationen finden Sie in der CDaoParameterInfo-Struktur . Diese Struktur verfügt über Elemente, die den beschreibenden Informationen unter dwInfoOptions oben entsprechen.

Weitere Informationen finden Sie im Thema "PARAMETERS-Deklaration (SQL)" in der DAO-Hilfe.

CDaoQueryDef::GetParamValue

Rufen Sie diese Memberfunktion auf, um den aktuellen Wert des angegebenen Parameters abzurufen, der in der Parametersammlung der Abfragedef gespeichert ist.

virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);

Parameter

lpszName
Der Name des gewünschten Parameters, dessen Wert Sie wünschen, für die Nachschlagevorgänge nach Dem Namen.

nIndex
Der nullbasierte Index des Parameters in der Parameters-Auflistung der Abfragedef, für die Nachschlagevorgang nach Index. Sie können diesen Wert mit Aufrufen von GetParameterCount und GetParameterInfo abrufen.

Rückgabewert

Ein Objekt der Klasse COleVariant , das den Wert des Parameters enthält.

Bemerkungen

Sie können auf den Parameter entweder nach Name oder nach ihrer Ordinalposition in der Auflistung zugreifen.

Weitere Informationen finden Sie im Thema "PARAMETERS-Deklaration (SQL)" in der DAO-Hilfe.

CDaoQueryDef::GetRecords Betroffen

Rufen Sie diese Memberfunktion auf, um festzustellen, wie viele Datensätze von dem letzten Aufruf von Execute betroffen waren.

long GetRecordsAffected();

Rückgabewert

Die Anzahl der betroffenen Datensätze.

Bemerkungen

Die zurückgegebene Anzahl spiegelt keine Änderungen in verwandten Tabellen wider, wenn kaskadierte Updates oder Löschungen wirksam sind.

Weitere Informationen finden Sie im Thema "RecordsAffected Property" in der DAO-Hilfe.

CDaoQueryDef::GetReturnsRecords

Rufen Sie diese Memberfunktion auf, um festzustellen, ob die Abfragedef auf einer Abfrage basiert, die Datensätze zurückgibt.

BOOL GetReturnsRecords();

Rückgabewert

Nonzero, wenn die Abfragedef auf einer Abfrage basiert, die Datensätze zurückgibt; andernfalls 0.

Bemerkungen

Diese Memberfunktion wird nur für SQL Pass-Through-Abfragen verwendet. Weitere Informationen zu SQL Abfragen finden Sie in der Funktion "Member ausführen". Weitere Informationen zum Arbeiten mit SQL Pass-Through-Abfragen finden Sie in der Elementfunktion "SetReturnsRecords".

Weitere Informationen finden Sie im Thema "ReturnsRecords-Eigenschaft" in der DAO-Hilfe.

CDaoQueryDef::GetSQL

Rufen Sie diese Memberfunktion auf, um die SQL-Anweisung abzurufen, die die Abfrage definiert, auf der die Abfragedef basiert.

CString GetSQL();

Rückgabewert

Die SQL-Anweisung, die die Abfrage definiert, auf der die Abfragedef basiert.

Bemerkungen

Sie werden dann wahrscheinlich die Zeichenfolge für Schlüsselwörter, Tabellennamen usw. analysieren.

Weitere Informationen finden Sie unter den Themen "SQL Eigenschaft", "Vergleich von Microsoft Jet Datenbank-Engine SQL und ANSI SQL", und "Abfragen einer Datenbank mit SQL in Code" in DER DAO-Hilfe.

CDaoQueryDef::GetType

Rufen Sie diese Memberfunktion auf, um den Abfragetyp der Abfragedef zu bestimmen.

short GetType();

Rückgabewert

Der Vom Abfragedef definierte Abfragetyp. Weitere Informationen finden Sie unter "Hinweise".

Bemerkungen

Der Abfragetyp wird festgelegt, was Sie in der SQL Zeichenfolge der Abfrage angeben, wenn Sie die Abfragedef erstellen oder eine vorhandene SetSQL-Memberfunktion aufrufen. Der abfragetyp, der von dieser Funktion zurückgegeben wird, kann eine der folgenden Werte sein:

  • dbQSelect Auswählen

  • dbQAction-Aktion

  • dbQCrosstab Kreuztabelle

  • dbQDelete Delete

  • dbQUpdate Update

  • dbQAppend Anfügen

  • dbQMakeTable Make-Table

  • dbQDDL Datendefinition

  • dbQSQLPassThrough Pass-Through

  • dbQSetOperation Union

  • dbQSPTBulk Wird verwendet, dbQSQLPassThrough um eine Abfrage anzugeben, die keine Datensätze zurückgibt.

Hinweis

Um eine SQL Pass-Through-Abfrage zu erstellen, legen Sie die dbSQLPassThrough Konstante nicht fest. Dies wird automatisch vom Microsoft Jet-Datenbankmodul festgelegt, wenn Sie ein Abfragedef-Objekt erstellen und die Verbindungszeichenfolge festlegen.

Informationen zu SQL Zeichenfolgen finden Sie unter GetSQL. Informationen zu Abfragetypen finden Sie unter Execute.

CDaoQueryDef::IsOpen

Rufen Sie diese Memberfunktion auf, um festzustellen, ob das CDaoQueryDef Objekt derzeit geöffnet ist.

BOOL IsOpen() const;

Rückgabewert

Nonzero, wenn das CDaoQueryDef Objekt derzeit geöffnet ist; andernfalls 0.

Bemerkungen

Eine Abfragedef muss sich in einem geöffneten Zustand befinden, bevor Sie es zum Aufrufen von Execute oder zum Erstellen eines CDaoRecordset-Objekts verwenden. Wenn Sie eine Abfragedef in einen geöffneten Zustandsaufruf einfügen möchten, können Sie entweder "Create " (für eine neue Abfragedef ) oder " Open" (für eine vorhandene Abfragedef) erstellen.

CDaoQueryDef::m_pDatabase

Enthält einen Zeiger auf das CDaoDatabase-Objekt , das dem Querydef-Objekt zugeordnet ist.

Bemerkungen

Verwenden Sie diesen Zeiger, wenn Sie direkt auf die Datenbank zugreifen müssen , z. B. zum Abrufen von Zeigern auf andere Abfragedef- oder Recordsetobjekte in den Sammlungen der Datenbank.

CDaoQueryDef::m_pDAOQueryDef

Enthält einen Zeiger auf die OLE-Schnittstelle für das zugrunde liegende DAO querydef-Objekt.

Bemerkungen

Dieser Zeiger wird für Vollständigkeit und Konsistenz mit den anderen Klassen bereitgestellt. Da MFC jedoch eher vollständig DAO-Abfragedefs kapselt, sind Sie wahrscheinlich nicht erforderlich. Wenn Sie es verwenden, tun Sie dies vorsichtig , insbesondere ändern Sie den Wert des Zeigers nicht, wenn Sie wissen, was Sie tun.

CDaoQueryDef::Öffnen

Rufen Sie diese Memberfunktion auf, um eine abfragedef zu öffnen, die zuvor in der QueryDefs-Auflistung der Datenbank gespeichert wurde.

virtual void Open(LPCTSTR lpszName = NULL);

Parameter

lpszName
Eine Zeichenfolge, die den Namen der gespeicherten Abfragedef enthält, die geöffnet werden soll. Sie können eine CString verwenden.

Bemerkungen

Nachdem die Abfragedef geöffnet ist, können Sie seine Execute-Memberfunktion aufrufen oder die Abfragedef verwenden, um ein CDaoRecordset-Objekt zu erstellen.

CDaoQueryDef::SetConnect

Rufen Sie diese Memberfunktion auf, um die Verbindungszeichenfolge des Querydef-Objekts festzulegen.

void SetConnect(LPCTSTR lpszConnect);

Parameter

lpszConnect
Eine Zeichenfolge, die eine Verbindungszeichenfolge für das zugeordnete CDaoDatabase-Objekt enthält.

Bemerkungen

Die Verbindungszeichenfolge wird verwendet, um zusätzliche Informationen an ODBC und bestimmte ISAM-Treiber nach Bedarf zu übergeben. Es wird nicht für Microsoft Jet () verwendet. MDB)-Datenbanken.

Tipp

Die bevorzugte Möglichkeit, mit ODBC-Tabellen zu arbeiten, besteht darin, sie an eine Anfügen. MDB-Datenbank.

Legen Sie vor dem Ausführen einer Abfragedef, die eine SQL Pass-Through-Abfrage an eine ODBC-Datenquelle darstellt, die Verbindungszeichenfolge mit SetConnect und rufen Sie SetReturnsRecords auf, um anzugeben, ob die Abfrage Datensätze zurückgibt.

Weitere Informationen zur Struktur und Beispiele für Verbindungszeichenfolgenkomponenten finden Sie im Thema "Verbinden Eigenschaft" in der DAO-Hilfe.

CDaoQueryDef::SetName

Rufen Sie diese Memberfunktion auf, wenn Sie den Namen einer Abfragedef ändern möchten, die nicht vorübergehend ist.

void SetName(LPCTSTR lpszName);

Parameter

lpszName
Eine Zeichenfolge, die den neuen Namen für eine nichttemporäre Abfrage im zugeordneten CDaoDatabase-Objekt enthält.

Bemerkungen

Abfragedef-Namen sind eindeutige, benutzerdefinierte Namen. Sie können aufrufen SetName , bevor das QueryDef-Objekt an die QueryDefs-Auflistung angefügt wird.

CDaoQueryDef::SetODBCTimeout

Rufen Sie diese Memberfunktion auf, um das Zeitlimit festzulegen, bevor eine Abfrage auf eine ODBC-Datenquelle ausgezeitet ist.

void SetODBCTimeout(short nODBCTimeout);

Parameter

nODBCTimeout
Die Anzahl von Sekunden, nach denen ein Timeout bei einer Abfrage eintritt.

Bemerkungen

Mit dieser Memberfunktion können Sie die Standardanzahl von Sekunden außer Kraft setzen, bevor nachfolgende Vorgänge in der verbundenen Datenquelle "Timeout" ausgeführt werden. Ein Vorgang kann aufgrund von Netzwerkzugriffsproblemen, übermäßiger Abfrageverarbeitungszeit und so weiter zeitlos sein. Rufen Sie SetODBCTimeout vor dem Ausführen einer Abfrage mit dieser Abfragedef auf, wenn Sie den Abfragetimeoutwert ändern möchten. (Da ODBC Verbindungen wiederverwendet, ist der Timeoutwert für alle Clients in derselben Verbindung identisch.)

Der Standardwert für Abfragetimeouts beträgt 60 Sekunden.

CDaoQueryDef::SetParamValue

Rufen Sie diese Memberfunktion auf, um den Wert eines Parameters in der Abfragedef zur Laufzeit festzulegen.

virtual void SetParamValue(
    LPCTSTR lpszName,
    const COleVariant& varValue);

virtual void SetParamValue(
    int nIndex,
    const COleVariant& varValue);

Parameter

lpszName
Der Name des Parameters, dessen Wert Sie festlegen möchten.

varValue
Der zu festlegende Wert; siehe Hinweise.

nIndex
Die Ordinalposition des Parameters in der Parametersammlung der Abfragedef. Sie können diesen Wert mit Aufrufen von GetParameterCount und GetParameterInfo abrufen.

Bemerkungen

Der Parameter muss bereits im Rahmen der SQL Zeichenfolge der Abfrage eingerichtet worden sein. Sie können auf den Parameter entweder nach Name oder nach ihrer Ordinalposition in der Auflistung zugreifen.

Geben Sie den Wert an, der als COleVariant Objekt festgelegt werden soll. Informationen zum Festlegen des gewünschten Werts und des Typs in Ihrem COleVariant Objekt finden Sie unter Klasse COleVariant.

CDaoQueryDef::SetReturnsRecords

Rufen Sie diese Memberfunktion als Teil des Prozesses zum Einrichten einer SQL Pass-Through-Abfrage an eine externe Datenbank auf.

void SetReturnsRecords(BOOL bReturnsRecords);

Parameter

bReturnsRecords
Übergeben Sie TRUE, wenn die Abfrage in einer externen Datenbank Datensätze zurückgibt; andernfalls FALSE.

Bemerkungen

In diesem Fall müssen Sie die Abfragedef erstellen und seine Eigenschaften mithilfe anderer CDaoQueryDef Memberfunktionen festlegen. Eine Beschreibung externer Datenbanken finden Sie unter SetConnect.

CDaoQueryDef::SetSQL

Rufen Sie diese Memberfunktion auf, um die SQL-Anweisung festzulegen, die die Abfragedef ausführt.

void SetSQL(LPCTSTR lpszSQL);

Parameter

Lpszsql
Eine Zeichenfolge mit einer vollständigen SQL-Anweisung, die für die Ausführung geeignet ist. Die Syntax dieser Zeichenfolge hängt von den DBMS ab, die Ihre Abfrageziele angibt. Eine Diskussion der Syntax, die im Microsoft Jet-Datenbankmodul verwendet wird, finden Sie im Thema "Erstellen von SQL Anweisungen in Code" in der DAO-Hilfe.

Bemerkungen

Eine typische Verwendung besteht SetSQL darin, ein Querydef-Objekt für die Verwendung in einer SQL Pass-Through-Abfrage einzurichten. (Die Syntax von SQL Pass-Through-Abfragen auf Ihrem Ziel-DBMS finden Sie in der Dokumentation für Ihre DBMS.)

Weitere Informationen

CObject-Klasse
Hierarchiediagramm
CDaoRecordset-Klasse
CDaoDatabase-Klasse
CDaoTableDef-Klasse
CDaoException-Klasse