Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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:
In alle gevallen maakt u eerst een
CDaoQueryDefobject, waarbij u een aanwijzer opgeeft aan het CDaoDatabase-object waartoe de query behoort.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.
Createzet de querydef in een geopende status, dus nadat u hebt aangeroepen, wordt de querydef niet aangeroepenCreateOpen.Als u een tijdelijke querydef wilt maken, roept u aan
Create. Geef een lege tekenreeks door voor de querynaam. Bel nietAppend.
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
CDaoRecordsetobject makenDe lidfunctie van
Executehet 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
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.
CDaoQueryDefRoep 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 aangeroepenCreate, initialiseert u de querydef door de kenmerken rechtstreeks in te stellen. Bel nietAppend.
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:
dbDenyWriteSchrijfmachtigingen weigeren voor andere gebruikers.dbInconsistentInconsistente updates.dbConsistentConsistente updates.dbSQLPassThroughSQL-passthrough. Zorgt ervoor dat de SQL-instructie wordt doorgegeven aan een ODBC-database voor verwerking.dbFailOnErrorStandaardwaarde. Schakel updates terug als er een fout optreedt en rapporteer de fout aan de gebruiker.dbSeeChangesGenereer 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:
dbQSelectSelecteerdbQActionActiedbQCrosstabKruistabeldbQDeleteVerwijderendbQUpdateUpdatedbQAppendToevoegendbQMakeTableTabel makendbQDDLGegevensdefinitiedbQSQLPassThroughPass-throughdbQSetOperationUniedbQSPTBulkdbQSQLPassThroughWordt 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