CDaoQueryDef

Un objet CDaoQueryDef représente une définition de la requête, ou « querydef, « habituellement un enregistrées dans une base de données. Un objet querydef est un objet d'accès de données qui contient l'instruction SQL qui décrit une requête et ses propriétés, telles que la « Date de création » et « ODBC Timeout. » Vous pouvez également créer des objets querydef temporaire sans leur permettant d'économiser, mais il est utile — et beaucoup plus efficaces — pour sauver souvent réutilisé des requêtes dans une base de données. Un objet CDaoDatabase gère une collection, appelée la collection QueryDefs, qui contient ses querydefs enregistré.

&Notenbsp ;  Les classes de base de données DAO sont distinctes des classes de base de données MFC basés sur la connectivité ODBC (Open Database). Tous les noms de classe de base de données DAO ont le préfixe « BCCM ». Vous pouvez toujours accès aux sources de données ODBC avec les classes DAO. En général, les classes MFC basés sur DAO sont plus susceptibles que les classes MFC basées sur ODBC ; les classes DAO-basé peuvent accéder aux données, notamment par le biais de pilotes ODBC, par l'intermédiaire de leur propre moteur de base de données. Les classes DAO sur appuient également les opérations de langage de définition de données (DDL), telles que l'ajout de tables via les classes, sans avoir à appeler directement les DAO.

Utilisation

Utilisez les objets querydef soit de travailler avec un existant sauvé la requête ou de créer un nouveau sauvé la requête ou la requête temporaire:

  1. Dans tous les cas, d'abord construire un objet CDaoQueryDef , fournissant un pointeur vers l'objet CDaoDatabase auquel appartient la requête.

  2. Puis faire ce qui suit, selon ce que vous voulez:
    • Pour utiliser une requête enregistrée existante, appelez fonction membre l'objet querydef Open , fournissant le nom de la requête enregistrée.

    • Pour créer une nouvelle requête enregistrée, appelez la fonction de membre créer l'objet querydef, fournissant le nom de la requête. Appelez ensuite ajouter pour enregistrer la requête en ajoutant à la collection QueryDefs de la base de données. Création met l'objet querydef dans un État libre, donc après l'appel à Create , vous n'appelez pas Ouvrir.

    • Pour créer un objet querydef temporaire, appelez Create. Passer une chaîne vide pour le nom de la requête. N'appelez pas Append.

Lorsque vous avez terminé à l'aide d'un objet querydef, appelez sa fonction de membre proche ; puis détruire l'objet querydef.

Astuce  ;  La façon la plus simple pour créer des requêtes enregistrées est de les créer et les stocker dans votre base de données à l'aide de Microsoft Access. Ensuite vous pouvez ouvrir et utiliser dans votre code MFC.

Fins

Vous pouvez utiliser un objet querydef pour l'une des fins suivantes:

Vous pouvez utiliser un objet querydef pour tout type de requête, y compris les sélectionner, action, analyse croisée, suppression, mise à jour, ajout, création de table, définition des données, transmission SQL, union et en vrac de requêtes. Type de la requête est déterminé par le contenu de l'instruction SQL que vous fournissez. Pour plus d'informations sur les types de requêtes, consultez les fonctions membres Execute et GetType . Jeux d'enregistrements est utilisés pour le retour à la ligne interroge, généralement ceux qui utilisent le SELECT... DE Mots clés. Execute est plus couramment utilisé pour les opérations en bloc. Pour plus d'informations, consultez Execute et CDaoRecordset.

Querydefs et jeux d'enregistrements

Pour utiliser un objet querydef pour créer un objet CDaoRecordset , vous généralement créez ou ouvrez un objet querydef, tel que décrit ci-dessus. Puis construire un objet recordset, passant un pointeur vers votre objet querydef lorsque vous appelez CDaoRecordset::Open. L'objet querydef que vous transmettre doit être dans un état ouvert. Pour plus d'informations, consultez classe CDaoRecordset.

Impossible d'utiliser un objet querydef pour créer un jeu d'enregistrements (utilisation la plus courante d'un objet querydef) à moins qu'il est dans un état ouvert. Mettre l'objet querydef dans un état ouvert en appelant l'Ouvrir ou créer.

Bases de données externes

Les objets QueryDef sont la meilleure façon d'utiliser le dialecte SQL natif d'un moteur de base de données externe. Par exemple, vous pouvez créer une requête Transact-SQL (comme utilisé dans Microsoft SQL Server) et le stocker dans un objet querydef. Lorsque vous devez utiliser une requête SQL non basée sur le moteur de base de données Microsoft Jet, vous devez fournir une chaîne de connexion qui pointe vers la source de données externe. Requêtes avec valide relient des chaînes de contournement du moteur de base de données et transmettre la requête directement sur le serveur de base de données externe pour traitement.

Astuce  ;  La meilleure façon de travailler avec des tables ODBC est à rattacher à un Jet de Microsoft (.Base de données MDB). Pour plus d'informations, consultez l'article DAO externe : travailler avec les Sources de données externes dans le Guide du programmeur Visual C++.

Pour plus d'informations sur querydefs, consultez l'article DAO Querydef dans le Guide du programmeur Visual C++. Pour plus d'informations, consultez les rubriques « Objet QueryDef », « Collection QueryDefs » et « Accès externe de bases de données avec DAO » dans l'aide de DAO.

# include lt;afxdao.h>

Membres de la classe |  ; Classe de base | Graphique de la hiérarchie

Écha&ntillons denbsp ; Exemple MFC DAOVIEW | Exemple MFC DAOTABLE

Voir aussi  ;CDaoRecordset, CDaoDatabase, CDaoTableDef, CDaoException

Index