CDaoQueryDef
-Klasse
Stellt eine Abfragedefinition ("Querydef") dar, die in einer Datenbank gespeichert ist.
Hinweis
Das Datenzugriffsobjekt (Data Access Object, DAO) wird über Office 2013 unterstützt. DAO 3.6 ist die endgültige Version und veraltet.
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 Append Sie sie auf, 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 von der Abfragedef definierten Felder zurück. |
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 Abfrage ausgeführt wird, die bestimmt, wie lange die Ausführung der Abfrageaktion zulässig ist. |
CDaoQueryDef::GetParameterCount | Gibt die Anzahl der parameter zurück, die für die Abfrage definiert sind. |
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 vom Querydef definierte Abfrage Datensätze zurückgibt. |
CDaoQueryDef::GetSQL | Gibt die SQL-Zeichenfolge zurück, die die von der Abfragedef definierte Abfrage angibt. |
CDaoQueryDef::GetType | Gibt den Abfragetyp zurück: Löschen, Aktualisieren, Anfügen, Tabellenerstellung 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 den Verbindungszeichenfolge für eine SQL-Pass-Through-Abfrage für eine ODBC-Datenquelle fest. |
CDaoQueryDef::SetName | Legt den Namen der gespeicherten Abfrage fest, wobei der Name ersetzt wird, der beim Erstellen der Abfrage verwendet wird. |
CDaoQueryDef::SetODBCTimeout | Legt den Timeoutwert fest, der von ODBC (für eine ODBC-Abfrage) verwendet wird, wenn die Querydef ausgeführt wird. |
CDaoQueryDef::SetParamValue | Legt den Wert eines angegebenen Parameters auf die Abfrage fest. |
CDaoQueryDef::SetReturnsRecords | Gibt an, ob die Querydef 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 von der 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. |
Hinweise
Ein Querydef ist ein Datenzugriffsobjekt, das die SQL-Anweisung enthält, die eine Abfrage beschreibt, und dessen Eigenschaften, z. B. "Datum erstellt" und "ODBC-Timeout". Sie können auch temporäre Querydef-Objekte erstellen, ohne sie zu speichern, aber es ist praktisch – und viel effizienter – 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 Querydefs enthält.
Hinweis
Die DAO-Datenbankklassen unterscheiden sich von den Microsoft Foundation Class (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 auf DAO basierenden MFC-Klassen fähiger als die MFC-Klassen, die auf ODBC basieren; die DAO-basierten Klassen können über ein eigenes Datenbankmodul auf Daten zugreifen, einschließlich über ODBC-Treiber. 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.
Verbrauch
Verwenden Sie querydef-Objekte, um mit einer vorhandenen gespeicherten Abfrage zu arbeiten oder eine neue gespeicherte Abfrage oder temporäre Abfrage zu erstellen:
Erstellen Sie in allen Fällen zuerst ein
CDaoQueryDef
Objekt, und geben Sie einen Zeiger auf das CDaoDatabase-Objekt an, zu dem die Abfrage gehört.Gehen Sie dann wie folgt vor, je nachdem, was Sie möchten:
Um eine vorhandene gespeicherte Abfrage zu verwenden, rufen Sie die Open-Memberfunktion des Querydef-Objekts auf, wobei der Name der gespeicherten Abfrage angegeben wird.
Rufen Sie zum Erstellen einer neuen gespeicherten Abfrage die Create-Memberfunktion 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 Abfrage in einen geöffneten Zustand ein, sodass Sie nach dem Aufrufen nicht aufrufenCreate
Open
.Rufen Sie zum Erstellen einer temporären Abfragedef auf
Create
. Übergeben Sie eine leere Zeichenfolge für den Abfragenamen. Rufen Sie nicht aufAppend
.
Wenn Sie mit der Verwendung eines querydef-Objekts fertig sind, rufen Sie die Close-Member-Funktion auf, und zerstören Sie dann das Querydef-Objekt.
Tipp
Die einfachste Möglichkeit zum Erstellen gespeicherter Abfragen besteht darin, sie zu erstellen und sie 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 einen der folgenden Zwecke verwenden:
So erstellen Sie ein
CDaoRecordset
ObjektSo 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ügen, Tabellenerstellung, Datendefinition, SQL-Pass-Through-, Union- und Massenabfragen. Der Inhalt der von Ihnen angegebenen SQL-Anweisung bestimmt den Abfragetyp. Informationen zu Abfragetypen finden Sie in den Execute
Funktionen und GetType
Memberfunktionen. Recordsets werden häufig für Zeilenrücklaufabfragen verwendet, in der Regel Abfragen mit select ... FROM-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 zum Erstellen eines CDaoRecordset
Objekts zu verwenden, erstellen oder öffnen Sie in der Regel eine Abfragedef wie zuvor beschrieben. Erstellen Sie dann ein Recordset-Objekt, und übergeben Sie beim Aufrufen CDaoRecordset::Open
einen Zeiger auf das Querydef-Objekt. Die übergebene Abfrage muss sich in einem geöffneten Zustand befinden. Weitere Informationen finden Sie unter CDaoRecordset
-Klasse.
Sie können einen Querydef nicht verwenden, um ein Recordset (die häufigste Verwendung für eine Abfragedef) zu erstellen, es sei denn, es befindet sich in einem geöffneten Zustand. Setzen Sie die Abfrage in einen geöffneten Zustand, indem Sie entweder Open
oder Create
.
Externe Datenbanken
Querydef-Objekte sind die bevorzugte Methode, um den nativen SQL-Dialekt eines externen Datenbankmoduls zu verwenden. Sie können beispielsweise 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 Verbindungszeichenfolge s umgehen das Datenbankmodul und übergeben die Abfrage zur Verarbeitung direkt an den externen Datenbankserver.
Tipp
Die bevorzugte Methode zum Arbeiten mit ODBC-Tabellen 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
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();
Hinweise
Append
speichert die Abfragedef in der Datenbank, indem das Objekt an die QueryDefs-Auflistung der Datenbank angefügt wird. 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 Abfrage ändern können , z. B. den Namen oder die SQL-Zeichenfolge zu ändern.
BOOL CanUpdate();
Rückgabewert
Nonzero, wenn Sie die Abfragedef ändern können; andernfalls 0.
Hinweise
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 "Permissions Property" in der DAO-Hilfe.
CDaoQueryDef::CDaoQueryDef
Erstellt ein CDaoQueryDef
-Objekt.
CDaoQueryDef(CDaoDatabase* pDatabase);
Parameter
pDatabase
Ein Zeiger auf ein geöffnetes CDaoDatabase-Objekt .
Hinweise
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 es zu initialisieren.
Wenn das Objekt eine neue zu speichernde Abfrage darstellt, rufen Sie die Create-Memberfunktion des Objekts auf. Dadurch wird das Objekt der QueryDefs-Auflistung der Datenbank hinzugefügt. Rufen Sie
CDaoQueryDef
dann Memberfunktionen auf, um die Attribute des Objekts festzulegen. Rufen Sie schließlich "Append" auf.Wenn das Objekt einen temporären Querydef darstellt (nicht in der Datenbank gespeichert werden soll), rufen Sie
Create
auf, und übergeben Sie eine leere Zeichenfolge für den Namen der Abfrage. Initialisieren Sie nach dem AufrufenCreate
die Abfragedef, indem Sie die Attribute direkt festlegen. Rufen Sie nicht aufAppend
.
Um die Attribute der Querydef festzulegen, können Sie die Memberfunktionen SetName, SetSQL, SetConnect, SetODBCTimeout und SetReturnsRecords verwenden.
Wenn Sie mit dem Querydef-Objekt fertig sind, rufen Sie dessen Close-Memberfunktion auf. Wenn Sie einen Zeiger auf den Querydef haben, verwenden Sie den delete
Operator, um das C++-Objekt zu zerstören.
CDaoQueryDef::Close
Rufen Sie diese Memberfunktion auf, wenn Sie die Verwendung des querydef-Objekts abgeschlossen haben.
virtual void Close();
Hinweise
Durch das Schließen der Querydef wird das zugrunde liegende DAO-Objekt freigegeben, aber das gespeicherte DAO querydef-Objekt oder das C++ CDaoQueryDef
-Objekt nicht zerstört. Dies ist nicht mit CDaoDatabase::D eleteQueryDef identisch, wodurch die Abfragedef aus der QueryDefs-Auflistung der Datenbank in DAO (wenn keine temporäre Abfragedef) gelöscht wird.
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 Abfrage, die in der Datenbank gespeichert ist. 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 später SetSQL 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 in den Hinweisen. Die SQL-Anweisung muss definiert werden, bevor Sie die Abfragedef an die QueryDefs-Auflistung anfügen können.
Hinweise
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 der Querydef in einem geöffneten Zustand, und Sie können es entweder verwenden, um ein CDaoRecordset-Objekt zu erstellen oder die Execute-Memberfunktion der Abfragedef aufzurufen.
Wenn Sie keine SQL-Anweisung in lpszSQL bereitstellen, können Sie die Abfrage Execute
nicht ausführen, aber Sie können sie verwenden, um ein Recordset zu erstellen. In diesem Fall verwendet MFC die SQL-Standardanweisungen des Recordsets.
CDaoQueryDef::Execute
Rufen Sie diese Memberfunktion auf, um die vom Querydef-Objekt definierte Abfrage auszuführen.
virtual void Execute(int nOptions = dbFailOnError);
Parameter
nOptions
Eine ganze Zahl, die die Merkmale der Abfrage bestimmt. Verwandte Informationen finden Sie im Thema "Execute Method" 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.dbSQLPassThrough
SQL-Pass-Through. Bewirkt, dass die SQL-Anweisung zur Verarbeitung an eine ODBC-Datenbank übergeben wird.dbFailOnError
Standardwert. Führen Sie ein Rollback von Updates durch, 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 Method" in der DAO-Hilfe.
Hinweise
Querydef-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 wie UPDATE, INSERT oder SELECT INTO oder für DDL-Vorgänge (Data Definition Language) verwendet.
Tipp
Die bevorzugte Methode zum Arbeiten mit ODBC-Datenquellen ist das Anfügen von Tabellen an einen Microsoft Jet (). MDB)-Datenbank. Weitere Informationen finden Sie im Thema "Zugreifen auf externe Datenbanken mit DAO" in der DAO-Hilfe.
Rufen Sie die GetRecordsAffected-Memberfunktion des Querydef-Objekts auf, um die Anzahl der Datensätze zu ermitteln, die vom letzten Execute
Aufruf betroffen sind. Gibt beispielsweise GetRecordsAffected
Informationen zur Anzahl der gelöschten, aktualisierten oder eingefügten Datensätze zurück, wenn eine Aktionsabfrage ausgeführt wird. Die zurückgegebene Anzahl spiegelt keine Änderungen in verwandten Tabellen wider, wenn Aktualisierungen oder Löschweitergaben wirksam sind.
Wenn Sie beide dbInconsistent
und dbConsistent
oder 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, bewirkt, 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
A CString
containing the Verbindungszeichenfolge for the querydef.
Hinweise
Diese Funktion wird nur mit ODBC-Datenquellen und bestimmten ISAM-Treibern verwendet. Es wird nicht mit Microsoft Jet(.MDB
)-Datenbanken verwendet. In diesem Fall GetConnect
wird eine leere Zeichenfolge zurückgegeben. Weitere Informationen finden Sie unter SetConnect
.
Tipp
Die bevorzugte Methode zum Arbeiten mit ODBC-Tabellen ist das Anfügen an eine . MDB-Datenbank. Weitere Informationen finden Sie im Thema "Zugreifen auf externe Datenbanken mit DAO" in der DAO-Hilfe.
Informationen zu Verbindungszeichenfolge s finden Sie im Thema "Connect-Eigenschaft" in der DAO-Hilfe.
CDaoQueryDef::GetDateCreated
Rufen Sie diese Memberfunktion auf, um das Datum abzurufen, an dem das Querydef-Objekt erstellt wurde.
COleDateTime GetDateCreated();
Rückgabewert
Ein COleDateTime-Objekt , das das Datum und die Uhrzeit enthält, zu dem die Abfragedef erstellt wurde.
Hinweise
Verwandte 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 seiner 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 dem die Abfragedef zuletzt aktualisiert wurde.
Hinweise
Verwandte 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 in der Abfrage definierten Felder.
Hinweise
GetFieldCount
ist nützlich für das Durchlaufen aller Felder in der Abfragedef. Zu diesem Zweck verwenden Sie GetFieldCount
es 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 Abfrage für die Suche nach Index.
Fieldinfo
Ein Verweis auf ein CDaoFieldInfo
Objekt, das die angeforderten Informationen zurückgibt.
dwInfoOptions
Optionen, die angeben, welche Informationen zu dem abzurufenden 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äre Informationen plus: Ordnungsposition, Erforderlich, Leere Länge zulassen, Quellfeld, Fremdname, Quelltabelle, Sortierreihenfolge
AFX_DAO_ALL_INFO Primäre und sekundäre Informationen plus: Standardwert, Gültigkeitstext, Gültigkeitsprüfungsregel
lpszName
Eine Zeichenfolge mit dem Namen des gewünschten Felds für die Nachschlagefunktion nach Name. Sie können eine CString
-Schleife verwenden.
Hinweise
Eine Beschreibung der in Fieldinfo zurückgegebenen Informationen finden Sie in der CDaoFieldInfo-Struktur. Diese Struktur enthält 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 Abfrage dargestellt wird.
CString GetName();
Rückgabewert
Der Name der Abfrage.
Hinweise
Abfragenamen sind eindeutige benutzerdefinierte Namen. Weitere Informationen zu Abfragenamen finden Sie im Thema "Name Property" in der DAO-Hilfe.
CDaoQueryDef::GetODBCTimeout
Rufen Sie diese Memberfunktion auf, um den aktuellen Zeitgrenzwert abzurufen, bevor eine Abfrage an eine ODBC-Datenquelle timeout auftritt.
short GetODBCTimeout();
Rückgabewert
Die Anzahl der Sekunden, bevor ein Abfrage-Zeitüberschreitungsüberschreitung erfolgt.
Hinweise
Informationen zu diesem Zeitlimit finden Sie im Thema "ODBCTimeout-Eigenschaft" in der DAO-Hilfe.
Tipp
Die bevorzugte Methode 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.
Hinweise
GetParameterCount
ist nützlich, um alle Parameter in der Abfrage zu durchlaufen. Zu diesem Zweck verwenden Sie GetParameterCount
es mit GetParameterInfo
.
Verwandte Informationen finden Sie in der DAO-Hilfe unter den Themen "Parameter-Objekt", "Parameters-Auflistung" und "PARAMETERS-Deklaration (SQL)".
CDaoQueryDef::GetParameterInfo
Rufen Sie diese Memberfunktion auf, um Informationen zu einem parameter abzurufen, der in der Abfragedef definiert ist.
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 Abfrage für die Suche nach Index.
paraminfo
Ein Verweis auf ein CDaoParameterInfo -Objekt, das die angeforderten Informationen zurückgibt.
dwInfoOptions
Optionen, die angeben, welche Informationen zum abzurufenden Parameter enthalten. 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
(Standard) Name, Typ
lpszName
Eine Zeichenfolge, die den Namen des gewünschten Parameters enthält, für die Suche nach Namen. Sie können eine CString
-Schleife verwenden.
Hinweise
Eine Beschreibung der zurückgegebenen Informationen finden Sie in paraminfo
der CDaoParameterInfo
Struktur. Diese Struktur enthält Elemente, die den oben beschriebenen dwInfoOptions
Informationen entsprechen.
Verwandte 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 Parameters-Auflistung der Abfrage gespeichert ist.
virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);
Parameter
lpszName
Der Name des Parameters, dessen Wert Sie verwenden möchten, für die Suche nach Namen.
nIndex
Der nullbasierte Index des Parameters in der Parameters-Auflistung der Abfrage für die Suche 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.
Hinweise
Sie können auf den Parameter entweder anhand des Namens oder der Ordnungsposition in der Auflistung zugreifen.
Verwandte Informationen finden Sie im Thema "PARAMETERS-Deklaration (SQL)" in der DAO-Hilfe.
CDaoQueryDef::GetRecordsAffected
Rufen Sie diese Memberfunktion auf, um zu bestimmen, wie viele Datensätze vom letzten Aufruf von Execute betroffen sind.
long GetRecordsAffected();
Rückgabewert
Die Anzahl der betroffenen Datensätze.
Hinweise
Die zurückgegebene Anzahl spiegelt keine Änderungen in verwandten Tabellen wider, wenn Aktualisierungen oder Löschweitergaben wirksam sind.
Verwandte Informationen finden Sie im Thema "RecordsAffected Property" in der DAO-Hilfe.
CDaoQueryDef::GetReturnsRecords
Rufen Sie diese Memberfunktion auf, um zu bestimmen, ob die Abfrage 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.
Hinweise
Diese Memberfunktion wird nur für SQL-Pass-Through-Abfragen verwendet. Weitere Informationen zu SQL-Abfragen finden Sie in der Execute-Memberfunktion . Weitere Informationen zum Arbeiten mit SQL-Pass-Through-Abfragen finden Sie in der Memberfunktion "SetReturnsRecords ".
Verwandte 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 Abfrage basiert.
CString GetSQL();
Rückgabewert
Die SQL-Anweisung, die die Abfrage definiert, auf der die Abfrage basiert.
Hinweise
Sie können die Zeichenfolge für Schlüsselwörter, Tabellennamen usw. analysieren.
Verwandte Informationen finden Sie in 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 ermitteln.
short GetType();
Rückgabewert
Der Typ der Abfrage, die von der Abfragedef definiert wird. Werte finden Sie in den Hinweisen.
Hinweise
Der Abfragetyp wird durch das festgelegt, was Sie in der SQL-Zeichenfolge der Abfrage angeben, wenn Sie die Abfragedef erstellen oder die SetSQL-Memberfunktion einer vorhandenen Abfragedef aufrufen. Der von dieser Funktion zurückgegebene Abfragetyp kann einer der folgenden Werte sein:
dbQSelect
AuswählendbQAction
-AktiondbQCrosstab
KreuztabelledbQDelete
DeletedbQUpdate
UpdatedbQAppend
AnfügendbQMakeTable
TabellenerstellungdbQDDL
DatendefinitiondbQSQLPassThrough
Pass-ThroughdbQSetOperation
VereinigungdbQSPTBulk
Wird verwendetdbQSQLPassThrough
, um eine Abfrage anzugeben, die keine Datensätze zurückgibt.
Hinweis
Wenn Sie eine SQL-Pass-Through-Abfrage erstellen möchten, legen Sie die dbSQLPassThrough
Konstante nicht fest. Dies wird automatisch vom Microsoft Jet-Datenbankmodul festgelegt, wenn Sie ein Querydef-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 zu bestimmen, ob das CDaoQueryDef
Objekt derzeit geöffnet ist.
BOOL IsOpen() const;
Rückgabewert
Nonzero, wenn das CDaoQueryDef
Objekt zurzeit geöffnet ist; andernfalls 0.
Hinweise
Eine Abfragedef muss sich in einem geöffneten Zustand befinden, bevor Sie es zum Aufrufen Execute
oder Erstellen eines CDaoRecordset
Objekts verwenden. Um eine Abfragedef in einen geöffneten Zustand zu versetzen, rufen Sie entweder Create
(für eine neue Abfragedef) oder Open
(für eine vorhandene Abfragedef) auf.
CDaoQueryDef::m_pDatabase
Enthält einen Zeiger auf das CDaoDatabase -Objekt, das dem Querydef -Objekt zugeordnet ist.
Hinweise
Verwenden Sie diesen Zeiger, wenn Sie direkt auf die Datenbank zugreifen müssen. Um z. B. Zeiger auf andere Querydef- oder Recordset-Objekte in den Auflistungen der Datenbank abzurufen.
CDaoQueryDef::m_pDAOQueryDef
Enthält einen Zeiger auf die OLE-Schnittstelle für das zugrunde liegende DAO querydef -Objekt.
Hinweise
Dieser Zeiger wird für Vollständigkeit und Konsistenz mit den anderen Klassen bereitgestellt. Da MFC jedoch eher vollständig DAO-Abfragedefs kapselt, ist dies unwahrscheinlich. Wenn Sie es verwenden, tun Sie dies vorsichtig. Ändern Sie insbesondere nicht den Wert des Zeigers, es sei denn, Sie wissen, was Sie tun.
CDaoQueryDef::Open
Rufen Sie diese Memberfunktion auf, um eine zuvor in der QueryDefs-Auflistung der Datenbank gespeicherte Abfragedef zu öffnen.
virtual void Open(LPCTSTR lpszName = NULL);
Parameter
lpszName
Eine Zeichenfolge, die den Namen der zu öffnenden gespeicherten Abfrage enthält. Sie können eine CString
-Schleife verwenden.
Hinweise
Sobald die Abfrage geöffnet ist, können Sie dessen Execute
Memberfunktion aufrufen oder die Querydef 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.
Hinweise
Die Verbindungszeichenfolge wird verwendet, um bei Bedarf zusätzliche Informationen an ODBC- und bestimmte ISAM-Treiber zu übergeben. Sie wird nicht für Microsoft Jet(.MDB
)-Datenbanken verwendet.
Tipp
Die bevorzugte Methode zum Arbeiten mit ODBC-Tabellen ist das Anfügen an eine . MDB-Datenbank.
Legen Sie vor dem Ausführen einer Abfrage, die eine SQL-Pass-Through-Abfrage an eine ODBC-Datenquelle darstellt, die Verbindungszeichenfolge mit SetConnect
"SetReturnsRecords" fest, um anzugeben, ob die Abfrage Datensätze zurückgibt.
Weitere Informationen zur Struktur des Verbindungszeichenfolge und Beispiele für Verbindungszeichenfolge-Komponenten finden Sie im Thema "Connect-Eigenschaft" in der DAO-Hilfe.
CDaoQueryDef::SetName
Rufen Sie diese Memberfunktion auf, wenn Sie den Namen einer abfragedef ändern möchten, die nicht temporär 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.
Hinweise
Abfragenamen 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 ein ODBC-Datenquellentimeout zurückgesetzt wird.
void SetODBCTimeout(short nODBCTimeout);
Parameter
nODBCTimeout
Die Anzahl der Sekunden, bevor ein Abfrage-Zeitüberschreitungsüberschreitung erfolgt.
Hinweise
Mit dieser Memberfunktion können Sie die Standardanzahl von Sekunden überschreiben, bevor nachfolgende Vorgänge für die verbundene Datenquelle "Timeout" ausgeführt werden. Ein Vorgang kann aufgrund von Netzwerkzugriffsproblemen, übermäßiger Abfrageverarbeitungszeit usw. zu einem Timeout führen. Rufen Sie den Aufruf 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 mit 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 festzulegende Wert; siehe Hinweise.
nIndex
Die Ordnungsposition des Parameters in der Parameters-Auflistung der Abfrage. Sie können diesen Wert mit Aufrufen von GetParameterCount und GetParameterInfo abrufen.
Hinweise
Der Parameter muss bereits als Teil der SQL-Zeichenfolge der Abfrage eingerichtet werden. Sie können auf den Parameter entweder anhand des Namens oder der Ordnungsposition in der Auflistung zugreifen.
Geben Sie den Wert an, der als COleVariant
Objekt festgelegt werden soll. Informationen zum Festlegen des gewünschten Werts und Typs in Ihrem Objekt finden Sie unter COleVariant.For information about setting the desired value and type in your COleVariant
object, see class COleVariant.
CDaoQueryDef::SetReturnsRecords
Rufen Sie diese Memberfunktion als Teil des Prozesses zum Einrichten einer SQL-Pass-Through-Abfrage für eine externe Datenbank auf.
void SetReturnsRecords(BOOL bReturnsRecords);
Parameter
bReturnsRecords
Übergeben Sie WAHR, wenn die Abfrage für eine externe Datenbank Datensätze zurückgibt. andernfalls FALSE.
Hinweise
In diesem Fall müssen Sie die Abfrage erstellen und dessen Eigenschaften mithilfe anderer CDaoQueryDef
Memberfunktionen festlegen. Eine Beschreibung der externen Datenbanken finden Sie unter SetConnect.
CDaoQueryDef::SetSQL
Rufen Sie diese Memberfunktion auf, um die SQL-Anweisung festzulegen, die von der Querydef ausgeführt wird.
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 vom DBMS ab, auf das Ihre Abfrage ausgerichtet ist. Eine Erläuterung der syntax, die im Microsoft Jet-Datenbankmodul verwendet wird, finden Sie im Thema "Erstellen von SQL-Anweisungen im Code" in der DAO-Hilfe.
Hinweise
Eine typische Verwendung SetSQL
ist das Einrichten eines Querydef-Objekts für die Verwendung in einer SQL-Pass-Through-Abfrage. (Die Syntax von SQL-Pass-Through-Abfragen für Ihr Ziel-DBMS finden Sie in der Dokumentation für Ihr DBMS.)
Siehe auch
CObject
-Klasse
Hierarchiediagramm
CDaoRecordset
Klasse
CDaoDatabase
Klasse
CDaoTableDef
Klasse
CDaoException
Klasse