Utilisation de TQuery (Procédure)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Comment exécuter les procédures de bases de données

TQuery est un ensemble de données de type requête qui encapsule une instruction SQL et permet aux applications d'accéder aux enregistrements éventuellement obtenus.

Pour utiliser TQuery

  1. Choisissez Fichier > Nouveau > Autre. La boîte de dialogue Nouveaux éléments apparaît.
  2. Dans la boîte de dialogue Nouveaux éléments, sélectionnez Projets Delphi, puis double-cliquez sur Application Fiches VCL. Le concepteur Windows s'affiche.
  3. Associez l'ensemble de données avec les connexions de bases de données et de session.
  4. Créez des requêtes hétérogènes.
  5. Obtenez un ensemble de résultats modifiable.
  6. Mettez à jour les ensembles de résultats en lecture seule.

Pour associer un ensemble de données aux connexions de bases de données et de sessions

  1. A partir de la catégorie BDE de la palette d'outils, faites glisser un composant TDatabase sur la fiche.
  2. Déposez un composant TSession sur la fiche.
  3. Définissez la propriété DatabaseName du composant TDatabase pour associer un ensemble de données orienté BDE à une base de données.Pour le composant TDatabase, le nom de la base de données est la valeur de la propriété DatabaseName du composant base de données.
  4. Spécifiez un alias BDE comme valeur de DatabaseName si vous désirez utiliser un composant base de données implicite et si la base de données possède un alias BDE.

    Remarque :  Un alias BDE représente une base de données et ses informations de configuration. Les informations de configuration associées avec les alias diffèrent avec le type de la base de données (Oracle, Sybase, InterBase, Paradox, dBASE, etc.).

  5. Dans l'inspecteur d'objets, définissez la propriété DatabaseName pour spécifier simplement le répertoire contenant les tables de la base de données si vous souhaitez utiliser un composant base de données implicite pour une base de données Paradox ou dBASE.
  6. Utilisez la session par défaut pour contrôler toutes les connexions aux bases de données de votre application.
  7. Définissez la propriété SessionName du composant TSession pour associer votre ensemble de données à un composant session créé de manière explicite.

Remarque :  Que vous ayez utilisé la session par défaut ou spécifié une session explicite avec la propriété SessionName, vous pouvez accéder à la session associée à un ensemble de données en lisant la propriété DBSession. Si vous utilisez un composant session, la propriété SessionName d'un ensemble de données doit concorder avec la propriété SessionName du composant base de données auquel l'ensemble de données est associé.

Pour créer des requêtes hétérogènes

  1. Définissez des alias BDE distincts pour chaque base de données concernée dans la requête, en utilisant l'outil d'administration BDE ou l'explorateur SQL.
  2. Laissez vide la propriété DatabaseName du composant TQuery.Les noms des bases de données utilisées sont spécifiés dans l'instruction SQL.
  3. Affectez à la propriété SQL l'instruction SQL que vous souhaitez exécuter.
  4. Faites-y précéder le nom de chaque table par l'alias BDE de la base de données de cette table, encadré par des caractères deux-points.La référence entière est elle-même encadrée de guillemets.
  5. Affectez à la propriété Params tout paramètre de la requête.
  6. Ecrivez une méthode Prepare pour préparer la requête avant sa première exécution.
  7. Ecrivez une méthode Open ou ExecSQL selon le type de requête que vous exécutez.
  8. Utilisez un composant TDatabase au lieu d'utiliser un alias BDE pour spécifier la base de données dans une requête hétérogène.
  9. Configurez le TDatabase pour la base de données, affectez à la propriété Bde.DBTables.TDatabase. DatabaseName une valeur unique et utilisez cette valeur dans l'instruction SQL à la place d'un nom d'alias BDE.

Pour obtenir un ensemble de résultats modifiable

  1. Initialisez la valeur True à la propriété RequestLive du composant TQuery.
  2. Si la requête contient des champs liés, vous devez considérer l'ensemble de résultats comme étant en lecture seule, et le mettre à jour.

Si une application demande un ensemble de résultats dynamique mais que la syntaxe de l'instruction SELECT ne le permet pas, le BDE renvoie un ensemble de résultats en lecture seule pour les requêtes effectuées sur Paradox ou dBASE, ou un code d'erreur pour les requêtes SQL effectuées sur un serveur distant.

Pour mettre à jour des ensembles de résultats en lecture seule

  1. Si toutes les mises à jour sont appliquées à une table de base de données unique, indiquez la table sous-jacente à mettre à jour dans un gestionnaire d'événement OnGetTableName.
  2. Affectez à la propriété UpdateObject de la requête l'objet TUpdateSQL que vous utilisez pour mieux contrôler l'application des mises à jour.
  3. Affectez aux propriétés DeleteSQL, InsertSQL et ModifySQL de l'objet de mise à jour les instructions SQL qui effectuent les mises à jour adaptées aux données de votre requête.

Si vous utilisez le BDE pour mettre en mémoire cache les mises à jour, vous devez utiliser un objet de mise à jour.

Voir aussi