Share via


CDaoQueryDef-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Vertegenwoordigt een querydefinitie of 'querydef', meestal één die is opgeslagen in een database.

Opmerking

Data Access Object (DAO) wordt ondersteund via Office 2013. DAO 3.6 is de definitieve versie en is verouderd.

Syntaxis

class CDaoQueryDef : public CObject

Leden

Openbare constructors

Naam Description
CDaoQueryDef::CDaoQueryDef Maakt een CDaoQueryDef object. Volgende oproep Open of Create, afhankelijk van uw behoeften.

Openbare methoden

Naam Description
CDaoQueryDef::Append Voegt de querydef toe aan de verzameling QueryDefs van de database als een opgeslagen query.
CDaoQueryDef::CanUpdate Retourneert niet-nul als de query de database kan bijwerken.
CDaoQueryDef::Close Hiermee sluit u het querydef-object. Vernietig het C++-object wanneer u er klaar mee bent.
CDaoQueryDef::Create Hiermee maakt u het onderliggende DAO-querydef-object. Gebruik de querydef als tijdelijke query of aanroep Append om deze op te slaan in de database.
CDaoQueryDef::Execute Hiermee wordt de query uitgevoerd die is gedefinieerd door het querydef-object.
CDaoQueryDef::GetConnect Retourneert de verbindingsreeks die is gekoppeld aan de querydef. De verbindingsreeks identificeert de gegevensbron. (Alleen voor SQL Pass Through-query's; anders een lege tekenreeks.)
CDaoQueryDef::GetDateCreated Retourneert de datum waarop de opgeslagen query is gemaakt.
CDaoQueryDef::GetDateLastUpdated Retourneert de datum waarop de opgeslagen query voor het laatst is bijgewerkt.
CDaoQueryDef::GetFieldCount Retourneert het aantal velden dat is gedefinieerd door de querydef.
CDaoQueryDef::GetFieldInfo Retourneert informatie over een opgegeven veld dat in de query is gedefinieerd.
CDaoQueryDef::GetName Retourneert de naam van de querydef.
CDaoQueryDef::GetODBCTimeout Retourneert de time-outwaarde die wordt gebruikt door ODBC (voor een ODBC-query) wanneer de querydef wordt uitgevoerd, waarmee wordt bepaald hoe lang de actie van de query moet worden voltooid.
CDaoQueryDef::GetParameterCount Retourneert het aantal parameters dat is gedefinieerd voor de query.
CDaoQueryDef::GetParameterInfo Retourneert informatie over een opgegeven parameter voor de query.
CDaoQueryDef::GetParamValue Retourneert de waarde van een opgegeven parameter voor de query.
CDaoQueryDef::GetRecordsAffected Retourneert het aantal records dat wordt beïnvloed door een actiequery.
CDaoQueryDef::GetReturnsRecords Retourneert niet-nul als de query die is gedefinieerd door de querydef records retourneert.
CDaoQueryDef::GetSQL Retourneert de SQL-tekenreeks die de query opgeeft die is gedefinieerd door de querydef.
CDaoQueryDef::GetType Retourneert het querytype: verwijderen, bijwerken, toevoegen, tabel maken enzovoort.
CDaoQueryDef::IsOpen Retourneert niet-nul als de querydef is geopend en kan worden uitgevoerd.
CDaoQueryDef::Open Hiermee opent u een bestaande querydef die is opgeslagen in de querydefs-verzameling van de database.
CDaoQueryDef::SetConnect Hiermee stelt u de verbindingsreeks voor een SQL-passthrough-query in op een ODBC-gegevensbron.
CDaoQueryDef::SetName Hiermee stelt u de naam van de opgeslagen query in en vervangt u de naam die wordt gebruikt wanneer de querydef is gemaakt.
CDaoQueryDef::SetODBCTimeout Hiermee stelt u de time-outwaarde in die wordt gebruikt door ODBC (voor een ODBC-query) wanneer de querydef wordt uitgevoerd.
CDaoQueryDef::SetParamValue Hiermee stelt u de waarde van een opgegeven parameter in op de query.
CDaoQueryDef::SetReturnsRecords Hiermee geeft u op of de querydef records retourneert. Het instellen van dit kenmerk op TRUE is alleen geldig voor SQL Pass Through-query's.
CDaoQueryDef::SetSQL Hiermee stelt u de SQL-tekenreeks in waarmee de query wordt opgegeven die is gedefinieerd door de querydef.

Leden van openbare gegevens

Naam Description
CDaoQueryDef::m_pDAOQueryDef Een aanwijzer naar de OLE-interface voor het onderliggende DAO-querydef-object.
CDaoQueryDef::m_pDatabase Een aanwijzer naar het CDaoDatabase object waaraan de querydef is gekoppeld. De querydef kan worden opgeslagen in de database of niet.

Opmerkingen

Een querydef is een data access-object dat de SQL-instructie bevat die een query beschrijft, en de eigenschappen, zoals 'Datum gemaakt' en 'ODBC-time-out'. U kunt ook tijdelijke querydef-objecten maken zonder ze op te slaan, maar het is handig en veel efficiënter om veelgebruikte query's in een database op te slaan. Een CDaoDatabase-object onderhoudt een verzameling, de zogenaamde QueryDefs-verzameling, die de opgeslagen querydefs bevat.

Opmerking

De DAO-databaseklassen verschillen van de MFC-databaseklasse (Microsoft Foundation Class) op basis van ODBC (Open Database Connectivity). Alle DAO-databaseklassenamen hebben het voorvoegsel 'CDao'. U hebt nog steeds toegang tot ODBC-gegevensbronnen met de DAO-klassen. Over het algemeen zijn de MFC-klassen op basis van DAO beter geschikt dan de MFC-klassen op basis van ODBC; De DAO-klassen hebben toegang tot gegevens, waaronder via ODBC-stuurprogramma's, via hun eigen database-engine. De op DAO gebaseerde klassen ondersteunen ook DDL-bewerkingen (Data Definition Language), zoals het toevoegen van tabellen via de klassen, zonder DAO rechtstreeks aan te roepen.

Usage

Gebruik querydef-objecten om te werken met een bestaande opgeslagen query of om een nieuwe opgeslagen query of tijdelijke query te maken:

  1. In alle gevallen maakt u eerst een CDaoQueryDef object, waarbij u een aanwijzer opgeeft aan het CDaoDatabase-object waartoe de query behoort.

  2. Voer vervolgens het volgende uit, afhankelijk van wat u wilt:

    • Als u een bestaande opgeslagen query wilt gebruiken, roept u de functie Open lid van het querydef-object aan en geeft u de naam van de opgeslagen query op.

    • Als u een nieuwe opgeslagen query wilt maken, roept u de functie Lid maken van het querydef-object aan en geeft u de naam van de query op. Roep vervolgens Toevoegen aan om de query op te slaan door deze toe te voegen aan de verzameling QueryDefs van de database. Create zet de querydef in een geopende status, dus nadat u hebt aangeroepen, wordt de querydef niet aangeroepen CreateOpen.

    • Als u een tijdelijke querydef wilt maken, roept u aan Create. Geef een lege tekenreeks door voor de querynaam. Bel niet Append.

Wanneer u klaar bent met het gebruik van een querydef-object, roept u de bijbehorende lidfunctie sluiten aan; vernietig vervolgens het querydef-object.

Aanbeveling

De eenvoudigste manier om opgeslagen query's te maken, is door ze te maken en op te slaan in uw database met behulp van Microsoft Access. Vervolgens kunt u deze openen en gebruiken in uw MFC-code.

Doelen

U kunt een querydef-object gebruiken voor een van de volgende doeleinden:

  • Een CDaoRecordset object maken

  • De lidfunctie van Execute het object aanroepen om rechtstreeks een actiequery of een SQL Pass Through-query uit te voeren

U kunt een querydef-object gebruiken voor elk type query, waaronder selecteren, actie, kruistabel, verwijderen, bijwerken, toevoegen, tabel maken, gegevensdefinitie, SQL passthrough, samenvoeging en bulkquery's. De inhoud van de SQL-instructie die u opgeeft, bepaalt het type van de query. Zie de Execute functies en GetType leden voor informatie over querytypen. Recordsets worden vaak gebruikt voor query's die rijen retourneren, meestal query's met behulp van SELECT ... FROM-trefwoorden. Execute wordt meestal gebruikt voor bulkbewerkingen. Zie voor meer informatie Execute en CDaoRecordset.

Querydefs en recordsets

Als u een querydef-object wilt gebruiken om een CDaoRecordset object te maken, maakt of opent u doorgaans een querydef zoals eerder beschreven. Maak vervolgens een recordset-object, waarbij een aanwijzer wordt doorgegeven aan het querydef-object wanneer u aanroept CDaoRecordset::Open. De querydef die u doorgeeft, moet de status Open hebben. Zie klasse CDaoRecordsetvoor meer informatie.

U kunt een querydef niet gebruiken om een recordset te maken (het meest voorkomende gebruik voor een querydef), tenzij deze de status Open heeft. Plaats de querydef in een geopende status door aan te roepen Open of Create.

Externe databases

Querydef-objecten zijn de voorkeurswijze voor het gebruik van het systeemeigen SQL-dialect van een externe database-engine. U kunt bijvoorbeeld een Transact SQL-query maken (zoals gebruikt in Microsoft SQL Server) en deze opslaan in een querydef-object. Wanneer u een SQL-query wilt gebruiken die niet is gebaseerd op de Microsoft Jet-database-engine, moet u een verbindingsreeks opgeven die verwijst naar de externe gegevensbron. Query's met geldige verbindingsreeksen omzeilen de database-engine en geven de query rechtstreeks door aan de externe databaseserver voor verwerking.

Aanbeveling

De voorkeursmethode voor het werken met ODBC-tabellen is door ze te koppelen aan een Microsoft Jet (. MDB) database.

Zie de onderwerpen QueryDef Object, QueryDefs Collection en CdbDatabase Object in de DAO SDK voor verwante informatie.

Overnamehiërarchie

CObject

CDaoQueryDef

Requirements

Rubriek:afxdao.h

CDaoQueryDef::Append

Roep deze lidfunctie aan nadat u Maken hebt aangeroepen om een nieuw querydef-object te maken.

virtual void Append();

Opmerkingen

Append slaat de querydef op in de database door het object toe te voegen aan de verzameling QueryDefs van de database. U kunt de querydef gebruiken als een tijdelijk object zonder het toe te voegen, maar als u het wilt behouden, moet u aanroepen Append.

Als u probeert een tijdelijk querydef-object toe te voegen, genereert MFC een uitzondering van het type CDaoException.

CDaoQueryDef::CanUpdate

Roep deze lidfunctie aan om te bepalen of u de querydef kunt wijzigen, zoals het wijzigen van de naam of SQL-tekenreeks.

BOOL CanUpdate();

Retourwaarde

Niet-nul als u de querydef kunt wijzigen; anders 0.

Opmerkingen

U kunt de querydef wijzigen als:

  • Het is niet gebaseerd op een database die alleen-lezen is geopend.

  • U beschikt over updatemachtigingen voor de database.

    Dit is afhankelijk van of u beveiligingsfuncties hebt geïmplementeerd. MFC biedt geen ondersteuning voor beveiliging; u moet het zelf implementeren door DAO rechtstreeks aan te roepen of door Microsoft Access te gebruiken. Zie het onderwerp 'Eigenschap Machtigingen' in DAO Help.

CDaoQueryDef::CDaoQueryDef

Maakt een CDaoQueryDef object.

CDaoQueryDef(CDaoDatabase* pDatabase);

Parameterwaarden

pDatabase
Een aanwijzer naar een geopend CDaoDatabase-object .

Opmerkingen

Het object kan een bestaande querydef vertegenwoordigen die is opgeslagen in de querydefs-verzameling van de database, een nieuwe query die moet worden opgeslagen in de verzameling of een tijdelijke query, die niet moet worden opgeslagen. De volgende stap is afhankelijk van het type querydef:

  • Als het object een bestaande querydef vertegenwoordigt, roept u de functie Open lid van het object aan om het te initialiseren.

  • Als het object een nieuwe querydef vertegenwoordigt die moet worden opgeslagen, roept u de functie Lid maken van het object aan. Hiermee wordt het object toegevoegd aan de querydefs-verzameling van de database. CDaoQueryDef Roep vervolgens lidfuncties aan om de kenmerken van het object in te stellen. Roep ten slotte Toevoegen aan.

  • Als het object een tijdelijke querydef vertegenwoordigt (die niet in de database moet worden opgeslagen), roept Createu een lege tekenreeks door voor de naam van de query. Nadat u de querydef hebt aangeroepen Create, initialiseert u de querydef door de kenmerken rechtstreeks in te stellen. Bel niet Append.

Als u de kenmerken van de querydef wilt instellen, kunt u de lidfuncties SetName, SetSQL, SetCONNECT, SetODBCTimeout en SetReturnsRecords Gebruiken.

Wanneer u klaar bent met het querydef-object, roept u de functie Lid sluiten aan. Als u een verwijzing naar de querydef hebt, gebruikt u de delete operator om het C++-object te vernietigen.

CDaoQueryDef::Close

Roep deze lidfunctie aan wanneer u klaar bent met het querydef-object.

virtual void Close();

Opmerkingen

Als u de querydef sluit, wordt het onderliggende DAO-object vrijgegeven, maar wordt het opgeslagen DAO-querydef-object of het C++ CDaoQueryDef -object niet vernietigd. Dit is niet hetzelfde als CDaoDatabase::D eleteQueryDef, waarmee de querydef wordt verwijderd uit de verzameling QueryDefs van de database in DAO (als dat geen tijdelijke querydef is).

CDaoQueryDef::Create

Roep deze lidfunctie aan om een nieuwe opgeslagen query of een nieuwe tijdelijke query te maken.

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

Parameterwaarden

lpszName
De unieke naam van de query die is opgeslagen in de database. Zie het onderwerp CreateQueryDef Method in DAO Help voor meer informatie over de tekenreeks. Als u de standaardwaarde accepteert, wordt er een lege tekenreeks gemaakt. Een dergelijke query wordt niet opgeslagen in de verzameling QueryDefs.

lpszSQL
De SQL-tekenreeks waarmee de query wordt gedefinieerd. Als u de standaardwaarde van NULL accepteert, moet u Later SetSQL aanroepen om de tekenreeks in te stellen. Tot die tijd is de query niet gedefinieerd. U kunt echter de niet-gedefinieerde query gebruiken om een recordset te openen; zie Opmerkingen voor meer informatie. De SQL-instructie moet worden gedefinieerd voordat u de querydef kunt toevoegen aan de verzameling QueryDefs.

Opmerkingen

Als u een naam doorgeeft in lpszName, kunt u toevoegen aanroepen om de querydef op te slaan in de QueryDefs-verzameling van de database. Anders is het object een tijdelijke querydef en wordt het niet opgeslagen. In beide gevallen heeft de querydef een open status en kunt u deze gebruiken om een CDaoRecordset-object te maken of de functie Execute member van querydef aan te roepen.

Als u geen SQL-instructie opgeeft in lpszSQL, kunt u de query niet uitvoeren, Execute maar u kunt deze gebruiken om een recordset te maken. In dat geval gebruikt MFC de standaard SQL-instructie van de recordset.

CDaoQueryDef::Execute

Roep deze lidfunctie aan om de query uit te voeren die is gedefinieerd door het querydef-object.

virtual void Execute(int nOptions = dbFailOnError);

Parameterwaarden

nOptions
Een geheel getal dat de kenmerken van de query bepaalt. Zie het onderwerp 'Methode uitvoeren' in DAO Help voor verwante informatie. U kunt de bitwise-OR-operator (|) gebruiken om de volgende constanten voor dit argument te combineren:

  • dbDenyWrite Schrijfmachtigingen weigeren voor andere gebruikers.

  • dbInconsistent Inconsistente updates.

  • dbConsistent Consistente updates.

  • dbSQLPassThrough SQL-passthrough. Zorgt ervoor dat de SQL-instructie wordt doorgegeven aan een ODBC-database voor verwerking.

  • dbFailOnError Standaardwaarde. Schakel updates terug als er een fout optreedt en rapporteer de fout aan de gebruiker.

  • dbSeeChanges Genereer een runtimefout als een andere gebruiker gegevens wijzigt die u bewerkt.

Opmerking

Zie het onderwerp 'Methode uitvoeren' in DAO Help voor een uitleg van de termen 'inconsistent' en 'consistent'.

Opmerkingen

Querydef-objecten die op deze manier worden gebruikt voor uitvoering, kunnen slechts een van de volgende querytypen vertegenwoordigen:

  • Actiequery's

  • SQL Pass Through-query's

Execute werkt niet voor query's die records retourneren, zoals selectiequery's. Execute wordt vaak gebruikt voor bulkbewerkingsquery's, zoals UPDATE-, INSERT- of SELECT INTO-bewerkingen of voor DDL-bewerkingen (Data Definition Language).

Aanbeveling

De voorkeursmethode voor het werken met ODBC-gegevensbronnen is het koppelen van tabellen aan een Microsoft Jet (. MDB) database. Zie het onderwerp 'Toegang tot externe databases met DAO' in DAO Help voor meer informatie.

Roep de functie GetRecordsAffected member van het querydef-object aan om het aantal records te bepalen dat wordt beïnvloed door de meest recente Execute aanroep. Retourneert bijvoorbeeld GetRecordsAffected informatie over het aantal records dat is verwijderd, bijgewerkt of ingevoegd bij het uitvoeren van een actiequery. Het geretourneerde aantal weerspiegelt geen wijzigingen in gerelateerde tabellen wanneer trapsgewijs bijwerken of verwijderen van kracht zijn.

Als u beide dbInconsistent en dbConsistent of als u geen van beide opneemt, is het resultaat de standaardwaarde dbInconsistent.

Execute retourneert geen recordset. Als Execute u een query gebruikt waarmee records worden geselecteerd, wordt MFC een uitzondering van het type CDaoException gegenereerd.

CDaoQueryDef::GetConnect

Roep deze lidfunctie aan om de verbindingsreeks op te halen die is gekoppeld aan de gegevensbron van de querydef.

CString GetConnect();

Retourwaarde

Een CString met de verbindingsreeks voor de querydef.

Opmerkingen

Deze functie wordt alleen gebruikt met ODBC-gegevensbronnen en bepaalde ISAM-stuurprogramma's. Deze wordt niet gebruikt met Microsoft Jet(.MDB)-databases. In dit geval GetConnect wordt een lege tekenreeks geretourneerd. Zie SetConnect voor meer informatie.

Aanbeveling

De voorkeursmethode voor het werken met ODBC-tabellen is door ze aan een te koppelen. MDB-database. Zie het onderwerp 'Toegang tot externe databases met DAO' in DAO Help voor meer informatie.

Zie het onderwerp 'Verbinding maken met eigenschap' in DAO Help voor informatie over verbindingsreeksen.

CDaoQueryDef::GetDateCreated

Roep deze lidfunctie aan om de datum op te halen waarop het querydef-object is gemaakt.

COleDateTime GetDateCreated();

Retourwaarde

Een COleDateTime-object met de datum en tijd waarop de querydef is gemaakt.

Opmerkingen

Zie het onderwerp DateCreated, LastUpdated Properties in DAO Help voor verwante informatie.

CDaoQueryDef::GetDateLastUpdated

Roep deze lidfunctie aan om de datum op te halen waarop het querydef-object voor het laatst is bijgewerkt. Wanneer een van de eigenschappen is gewijzigd, zoals de naam, de SQL-tekenreeks of de bijbehorende verbindingsreeks.

COleDateTime GetDateLastUpdated();

Retourwaarde

Een COleDateTime object met de datum en tijd waarop de querydef voor het laatst is bijgewerkt.

Opmerkingen

Zie het onderwerp DateCreated, LastUpdated Properties in DAO Help voor verwante informatie.

CDaoQueryDef::GetFieldCount

Roep deze lidfunctie aan om het aantal velden in de query op te halen.

short GetFieldCount();

Retourwaarde

Het aantal velden dat in de query is gedefinieerd.

Opmerkingen

GetFieldCount is handig voor het doorlopen van alle velden in de querydef. Gebruik hiervoor GetFieldCount met GetFieldInfo.

CDaoQueryDef::GetFieldInfo

Roep deze lidfunctie aan om verschillende soorten informatie te verkrijgen over een veld dat is gedefinieerd in de querydef.

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

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

Parameterwaarden

nIndex
De op nul gebaseerde index van het gewenste veld in de verzameling Velden van querydef, voor zoekactie op index.

fieldinfo
Een verwijzing naar een CDaoFieldInfo object dat de gevraagde informatie retourneert.

dwInfoOptions
Opties die aangeven welke informatie over het veld moet worden opgehaald. De beschikbare opties worden hier vermeld, samen met wat ze ertoe leiden dat de functie wordt geretourneerd:

  • AFX_DAO_PRIMARY_INFO (standaard) naam, type, grootte, kenmerken

  • AFX_DAO_SECONDARY_INFO primaire informatie plus: Rangtelpositie, Vereist, Nullengte, Bronveld, Refererende naam, Brontabel, Samenvouwvolgorde toestaan

  • AFX_DAO_ALL_INFO primaire en secundaire informatie plus: standaardwaarde, validatietekst, validatieregel

lpszName
Een tekenreeks met de naam van het gewenste veld, voor zoeken op naam. U kunt een CString.

Opmerkingen

Zie de structuur CDaoFieldInfo voor een beschrijving van de informatie die wordt geretourneerd in fieldinfo. Deze structuur bevat leden die overeenkomen met de beschrijvende informatie onder dwInfoOptions hierboven. Als u één informatieniveau aanvraagt, krijgt u ook eventuele eerdere informatieniveaus.

CDaoQueryDef::GetName

Roep deze lidfunctie aan om de naam van de query op te halen die wordt vertegenwoordigd door de querydef.

CString GetName();

Retourwaarde

De naam van de query.

Opmerkingen

Querydef-namen zijn unieke door de gebruiker gedefinieerde namen. Zie het onderwerp 'Naameigenschap' in DAO Help voor meer informatie over querydef-namen.

CDaoQueryDef::GetODBCTimeout

Roep deze lidfunctie aan om de huidige tijdslimiet op te halen voordat er een time-out optreedt voor een query naar een ODBC-gegevensbron.

short GetODBCTimeout();

Retourwaarde

Het aantal seconden voordat er een time-out optreedt voor een query.

Opmerkingen

Zie het onderwerp ODBCTimeout Property in DAO Help voor informatie over deze tijdslimiet.

Aanbeveling

De voorkeursmethode voor het werken met ODBC-tabellen is door ze te koppelen aan een Microsoft Jet (. MDB) database. Zie het onderwerp 'Toegang tot externe databases met DAO' in DAO Help voor meer informatie.

CDaoQueryDef::GetParameterCount

Roep deze lidfunctie aan om het aantal parameters in de opgeslagen query op te halen.

short GetParameterCount();

Retourwaarde

Het aantal parameters dat is gedefinieerd in de query.

Opmerkingen

GetParameterCount is handig voor het doorlopen van alle parameters in de querydef. Gebruik hiervoor GetParameterCount met GetParameterInfo.

Zie de onderwerpen ParameterObject, Parameters Collection en PARAMETERS Declaration (SQL) in DAO Help voor verwante informatie.

CDaoQueryDef::GetParameterInfo

Roep deze lidfunctie aan om informatie te verkrijgen over een parameter die is gedefinieerd in de querydef.

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

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

Parameterwaarden

nIndex
De op nul gebaseerde index van de gewenste parameter in de verzameling Parameters van querydef, voor zoekactie op index.

paraminfo
Een verwijzing naar een CDaoParameterInfo-object dat de gevraagde informatie retourneert.

dwInfoOptions
Opties die aangeven welke informatie over de parameter moet worden opgehaald. De beschikbare optie wordt hier vermeld, samen met wat ervoor zorgt dat de functie retourneert:

  • AFX_DAO_PRIMARY_INFO (Standaard) Naam, type

lpszName
Een tekenreeks met de naam van de gewenste parameter, voor zoekactie op naam. U kunt een CString.

Opmerkingen

Zie de structuur voor een beschrijving van de informatie die wordt paraminfoCDaoParameterInfo geretourneerd in. Deze structuur bevat leden die overeenkomen met de beschrijvende informatie hieronder dwInfoOptions .

Zie het onderwerp PARAMETERSDeclaratie (SQL) in DAO Help voor verwante informatie.

CDaoQueryDef::GetParamValue

Roep deze lidfunctie aan om de huidige waarde op te halen van de opgegeven parameter die is opgeslagen in de verzameling Parameters van querydef.

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

Parameterwaarden

lpszName
De naam van de parameter waarvan u de gewenste waarde wilt, voor zoeken op naam.

nIndex
De op nul gebaseerde index van de parameter in de verzameling Parameters van querydef, voor zoekactie op index. U kunt deze waarde verkrijgen met aanroepen naar GetParameterCount en GetParameterInfo.

Retourwaarde

Een object van klasse COleVariant dat de waarde van de parameter bevat.

Opmerkingen

U hebt toegang tot de parameter op naam of op de rangtelpositie in de verzameling.

Zie het onderwerp PARAMETERSDeclaratie (SQL) in DAO Help voor verwante informatie.

CDaoQueryDef::GetRecordsAffected

Roep deze lidfunctie aan om te bepalen hoeveel records worden beïnvloed door de laatste aanroep van Execute.

long GetRecordsAffected();

Retourwaarde

Het aantal betrokken records.

Opmerkingen

Het geretourneerde aantal weerspiegelt geen wijzigingen in gerelateerde tabellen wanneer trapsgewijs bijwerken of verwijderen van kracht zijn.

Zie het onderwerp 'RecordsAffected Property' in DAO Help voor verwante informatie.

CDaoQueryDef::GetReturnsRecords

Roep deze lidfunctie aan om te bepalen of de querydef is gebaseerd op een query die records retourneert.

BOOL GetReturnsRecords();

Retourwaarde

Niet-nul als de querydef is gebaseerd op een query die records retourneert; anders 0.

Opmerkingen

Deze lidfunctie wordt alleen gebruikt voor SQL Pass Through-query's. Zie de functie Lid uitvoeren voor meer informatie over SQL-query's. Zie de lidfunctie SetReturnsRecords voor meer informatie over het werken met SQL Pass Through-query's.

Zie het onderwerp ReturnsRecords Property in DAO Help voor verwante informatie.

CDaoQueryDef::GetSQL

Roep deze lidfunctie aan om de SQL-instructie op te halen waarmee de query wordt gedefinieerd waarop de querydef is gebaseerd.

CString GetSQL();

Retourwaarde

De SQL-instructie waarmee de query wordt gedefinieerd waarop de querydef is gebaseerd.

Opmerkingen

U kunt de tekenreeks parseren voor trefwoorden, tabelnamen enzovoort.

Zie de onderwerpen 'SQL-eigenschap', 'Vergelijking van Microsoft Jet Database Engine SQL en ANSI SQL' en 'Query's uitvoeren op een database met SQL in Code' in DAO Help voor verwante informatie.

CDaoQueryDef::GetType

Roep deze lidfunctie aan om het querytype van de querydef te bepalen.

short GetType();

Retourwaarde

Het type query dat is gedefinieerd door de querydef. Zie Opmerkingen voor waarden.

Opmerkingen

Het querytype wordt ingesteld door wat u opgeeft in de SQL-tekenreeks van querydef wanneer u de querydef maakt of de setSQL-lidfunctie van een bestaande querydef aanroept. Het querytype dat door deze functie wordt geretourneerd, kan een van de volgende waarden zijn:

  • dbQSelect Selecteer

  • dbQAction Actie

  • dbQCrosstab Kruistabel

  • dbQDelete Verwijderen

  • dbQUpdate Update

  • dbQAppend Toevoegen

  • dbQMakeTable Tabel maken

  • dbQDDL Gegevensdefinitie

  • dbQSQLPassThrough Pass-through

  • dbQSetOperation Unie

  • dbQSPTBulk dbQSQLPassThrough Wordt gebruikt om een query op te geven die geen records retourneert.

Opmerking

Als u een SQL Pass Through-query wilt maken, moet u de dbSQLPassThrough constante niet instellen. Dit wordt automatisch ingesteld door de Microsoft Jet-database-engine wanneer u een querydef-object maakt en de verbindingsreeks instelt.

Zie GetSQL voor meer informatie over SQL-tekenreeksen. Zie Uitvoeren voor meer informatie over querytypen.

CDaoQueryDef::IsOpen

Roep deze lidfunctie aan om te bepalen of het CDaoQueryDef object momenteel is geopend.

BOOL IsOpen() const;

Retourwaarde

Niet-nul als het CDaoQueryDef object momenteel is geopend; anders 0.

Opmerkingen

Een querydef moet een geopende status hebben voordat u deze gebruikt om een CDaoRecordset object aan te roepen Execute of te maken. Als u een querydef in een geopende status wilt plaatsen, roept Create u deze aan (voor een nieuwe querydef) of Open (voor een bestaande querydef).

CDaoQueryDef::m_pDatabase

Bevat een aanwijzer naar het CDaoDatabase-object dat is gekoppeld aan het querydef-object.

Opmerkingen

Gebruik deze aanwijzer als u rechtstreeks toegang tot de database nodig hebt. Als u bijvoorbeeld verwijst naar andere querydef- of recordsetobjecten in de verzamelingen van de database.

CDaoQueryDef::m_pDAOQueryDef

Bevat een aanwijzer naar de OLE-interface voor het onderliggende DAO-querydef-object.

Opmerkingen

Deze aanwijzer wordt geleverd voor volledigheid en consistentie met de andere klassen. Omdat MFC echter vrij volledig DAO-querydefs inkapselt, is het onwaarschijnlijk dat u deze nodig hebt. Als u het wel gebruikt, moet u dit voorzichtig doen. Wijzig met name de waarde van de aanwijzer niet, tenzij u weet wat u doet.

CDaoQueryDef::Open

Roep deze lidfunctie aan om een querydef te openen die eerder is opgeslagen in de querydefs-verzameling van de database.

virtual void Open(LPCTSTR lpszName = NULL);

Parameterwaarden

lpszName
Een tekenreeks met de naam van de opgeslagen querydef die u wilt openen. U kunt een CString.

Opmerkingen

Zodra de querydef is geopend, kunt u de lidfunctie aanroepen Execute of de querydef gebruiken om een CDaoRecordset object te maken.

CDaoQueryDef::SetConnect

Roep deze lidfunctie aan om de verbindingsreeks van het querydef-object in te stellen.

void SetConnect(LPCTSTR lpszConnect);

Parameterwaarden

lpszConnect
Een tekenreeks die een verbindingsreeks bevat voor het bijbehorende CDaoDatabase-object .

Opmerkingen

De verbindingsreeks wordt gebruikt om zo nodig aanvullende informatie door te geven aan ODBC en bepaalde ISAM-stuurprogramma's. Deze wordt niet gebruikt voor Microsoft Jet(.MDB)-databases.

Aanbeveling

De voorkeursmethode voor het werken met ODBC-tabellen is door ze aan een te koppelen. MDB-database.

Voordat u een querydef uitvoert die een SQL Pass Through-query vertegenwoordigt voor een ODBC-gegevensbron, stelt u de verbindingsreeks in met SetConnectSetReturnsRecords en roept u SetReturnsRecords aan om op te geven of de query records retourneert.

Zie het onderwerp Verbinding maken in DAO Help voor meer informatie over de structuur van de verbindingsreeks en voorbeelden van verbindingsreeksonderdelen.

CDaoQueryDef::SetName

Roep deze lidfunctie aan als u de naam van een querydef wilt wijzigen die niet tijdelijk is.

void SetName(LPCTSTR lpszName);

Parameterwaarden

lpszName
Een tekenreeks die de nieuwe naam voor een niet-tijdelijke query in het bijbehorende CDaoDatabase-object bevat.

Opmerkingen

Querydef-namen zijn unieke, door de gebruiker gedefinieerde namen. U kunt aanroepen SetName voordat het querydef-object wordt toegevoegd aan de verzameling QueryDefs.

CDaoQueryDef::SetODBCTimeout

Roep deze lidfunctie aan om de tijdslimiet in te stellen voordat een query naar een ODBC-gegevensbron een time-out optreedt.

void SetODBCTimeout(short nODBCTimeout);

Parameterwaarden

nODBCTimeout
Het aantal seconden voordat er een time-out optreedt voor een query.

Opmerkingen

Met deze lidfunctie kunt u het standaardaantal seconden voor volgende bewerkingen op de verbonden gegevensbron 'time-out' overschrijven. Een bewerking kan een time-out veroorzaken vanwege problemen met netwerktoegang, overmatige verwerkingstijd voor query's, enzovoort. Roep SetODBCTimeout aan voordat u een query uitvoert met deze querydef als u de time-outwaarde van de query wilt wijzigen. (Als ODBC verbindingen hergebruikt, is de time-outwaarde voor alle clients op dezelfde verbinding hetzelfde.)

De standaardwaarde voor querytime-outs is 60 seconden.

CDaoQueryDef::SetParamValue

Roep deze lidfunctie aan om de waarde van een parameter in de querydef tijdens runtime in te stellen.

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

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

Parameterwaarden

lpszName
De naam van de parameter waarvan u de waarde wilt instellen.

varValue
De waarde die moet worden ingesteld; zie Opmerkingen.

nIndex
De rangtelpositie van de parameter in de verzameling Parameters van querydef. U kunt deze waarde verkrijgen met aanroepen naar GetParameterCount en GetParameterInfo.

Opmerkingen

De parameter moet al worden ingesteld als onderdeel van de SQL-tekenreeks van de querydef. U hebt toegang tot de parameter op naam of op de rangtelpositie in de verzameling.

Geef de waarde op die moet worden ingesteld als een COleVariant object. Zie klasse COleVariant voor informatie over het instellen van de gewenste waarde en het typen van uw COleVariant object.

CDaoQueryDef::SetReturnsRecords

Roep deze lidfunctie aan als onderdeel van het proces voor het instellen van een SQL-passthrough-query voor een externe database.

void SetReturnsRecords(BOOL bReturnsRecords);

Parameterwaarden

bReturnsRecords
Geef TRUE door als de query op een externe database records retourneert; anders, ONWAAR.

Opmerkingen

In dat geval moet u de querydef maken en de eigenschappen ervan instellen met behulp van andere CDaoQueryDef lidfuncties. Zie SetConnect voor een beschrijving van externe databases.

CDaoQueryDef::SetSQL

Roep deze lidfunctie aan om de SQL-instructie in te stellen die door de querydef wordt uitgevoerd.

void SetSQL(LPCTSTR lpszSQL);

Parameterwaarden

lpszSQL
Een tekenreeks met een volledige SQL-instructie die geschikt is voor uitvoering. De syntaxis van deze tekenreeks is afhankelijk van de DBMS waarop uw query is gericht. Zie het onderwerp 'SQL-instructies bouwen in code' in DAO Help voor een bespreking van de syntaxis die wordt gebruikt in de Microsoft Jet-database-engine.

Opmerkingen

Een typisch gebruik van het instellen van SetSQL een querydef-object voor gebruik in een SQL-passthrough-query. (Zie de documentatie voor uw DBMS voor de syntaxis van SQL Pass Through-query's op uw doeldatabasems.)

Zie ook

CObject klasse
Hiërarchiegrafiek
CDaoRecordset klasse
CDaoDatabase klasse
CDaoTableDef klasse
CDaoException klasse