1. Aperçu
En tant qu'outil de développement rapide sous Windows, Delphi peut non seulement développer des applications Windows générales, mais dispose également de puissantes fonctions de développement d'applications de bases de données. Delphi lui-même prend en charge plusieurs pilotes de bases de données tels que BDE, ODBC, ADO et InterBase, qui peuvent répondre aux besoins de différentes applications pour le développement de programmes de bases de données.
Cependant, lors de la publication d'un programme de base de données développé avec Delphi, outre l'installation de l'application, vous devez également publier en même temps le pilote de base de données. Cela semble un peu lourd pour certaines applications autonomes qui impliquent uniquement le stockage de données sur une ou plusieurs tables simples. De plus, certaines applications elles-mêmes doivent stocker une grande quantité de données, mais si les résultats eux-mêmes doivent être courts et concis, la méthode conventionnelle de développement de bases de données utilisant Delphi ne peut pas répondre aux besoins.
Alors, existe-t-il un moyen de résoudre la contradiction ci-dessus et de développer une application autonome de base de données « fine » qui puisse être séparée de l'énorme pilote de base de données ? Delphi5 fournit un contrôle TClientDataSet dans le panneau de configuration Midas, qui peut bien résoudre ce problème.
2. Points clés pour l'utilisation de TClientDataSet
Le contrôle TClientDataSet hérite de TDataSet et son extension de format de fichier de stockage de données est .cds. Il s'agit d'un contrôle basé sur le stockage et le fonctionnement de données de type fichier. Ce contrôle encapsule les interfaces et les fonctions d'exploitation et de traitement des données, et ne repose pas sur les pilotes de base de données mentionnés ci-dessus. Il peut essentiellement répondre aux besoins des applications de base de données « légères » autonomes.
1. Introduction aux propriétés et méthodes de base de TClientDataSet
1). FieldDefs : propriétés de la liste de définitions de champs
Les développeurs peuvent modifier les champs en cliquant sur le bouton d'édition de propriétés dans l'éditeur de propriétés, ou en cliquant avec le bouton droit sur le contrôle et en sélectionnant le menu « Éditeur de champs » dans le menu contextuel. Après avoir défini cette propriété, cela équivaut en fait à définir la structure de la table ; si vous souhaitez charger la structure et les données d'une table de données existante, vous pouvez cliquer avec le bouton droit et sélectionner le menu "Attribuer des données locales" dans la fenêtre contextuelle. Dans la boîte de dialogue, sélectionnez le nom du champ de données connecté à la base de données dans le formulaire courant (le champ de données à appliquer doit avoir été placé dans le formulaire courant et activé).
Notes d'utilisation :
Pour la table de noms de champs personnalisés, après modification de la propriété, le champ ne peut toujours pas être ouvert. Vous devez cliquer avec le bouton droit sur le contrôle et sélectionner le menu « Créer un ensemble de données » dans le menu contextuel pour permettre au contrôle de créer un ensemble de données basé sur la liste de champs modifiée ci-dessus avant de pouvoir l'activer, l'ouvrir et l'utiliser. Sinon, une erreur similaire à « ClientDataSet1 : données manquantes PRavider ou paquet de données » se produira (y compris pendant l'exécution, le runtime peut appeler la méthode CreateDataSet du contrôle pour définir dynamiquement les champs et les tables).
2). PropriétéNomFichier
Description : Le nom du fichier de stockage de données.
Étant donné que ce contrôle est un contrôle d'opération de données basé sur un fichier, vous devez spécifier le nom du fichier de données en cours d'exploitation (nom d'extension par défaut .cds) pour ouvrir et activer le contrôle de modification des données.
Exemple 1 : utilisez cette propriété pour ouvrir le fichier .cds spécifié
var
Chemin : chaîne ;
commencer
Path := ExtractFilePath(application.ExeName); //Obtenir le chemin du fichier exécutable
CDataSet1.FileName := Chemin + 'test.cds';
CDataSet1.Open;
fin;
3). Méthode CreateDataSet
Description : Cette méthode utilise la table de noms de champ dans FieldDefs comme structure pour créer un ensemble de données, qui est souvent utilisé pour définir dynamiquement des tables.
Exemple 2 : Créez dynamiquement un ensemble de données avec deux champs : nom et âge.
//Créer une table de noms de champs
CDataSet.FieldDefs.Clear;
avec CDataSet.FieldDefs.AddFieldDef faire
commencer
Nom := 'Nom';
Taille := 10;
Type de données := ftString ;
fin;
avec CDataSet.FieldDefs.AddFieldDef faire
commencer
Nom := 'Âge';
Type de données := ftInteger ;
fin;
//Créer dynamiquement un ensemble de données
CDataSet.CreateDataSet ;
//Activer et ouvrir l'ensemble de données
CDataSet.Open;
4). Méthode ouverte
Description : Ouvre et active le contrôle de l'ensemble de données pour l'édition des données.
a. Si l'attribut FileName est spécifié, le contrôle peut être ouvert et activé directement à l'aide de la méthode Open, voir Exemple 1.
b. Si l'attribut FileName n'est pas spécifié, vous pouvez utiliser la méthode de l'exemple 2 pour créer et ouvrir dynamiquement l'ensemble de données, puis manipuler les données.
5). LoadFromFile et SaveToFile
Description : Chargez les structures de table et les données à partir de fichiers et stockez les données dans des fichiers. Cette méthode est similaire aux fonctions Ouvrir un nouveau fichier et Enregistrer sous dans Word.
Exemple 3 : stocker les données de l'ensemble de données dans le fichier spécifié
CDataSet.SaveToFile('c:/windows/desktop/test.cds');
6).Premier (au début), Avant (avant), Suivant (en arrière), Dernier (jusqu'à la fin), Modifier (modifier), Annuler (annuler l'édition), Publier (enregistrer), Insérer (insérer un enregistrement), Ajouter (Ajouter un enregistrement), Supprimer (supprimer), Actualiser (actualisation des données) et autres méthodes courantes d'ensembles de données
Remarque : Lorsque l'attribut FileName est spécifié, sa méthode Post peut stocker les données dans le fichier spécifié, de la même manière que sa méthode SaveToFile si le nom du fichier de stockage n'est pas spécifié, la méthode Post stocke uniquement les données dans la RAM. Les autres méthodes sont identiques à l'utilisation générale du contrôle des ensembles de données, mais elles sont omises.
7).Filtre, Filtré : propriétés de filtrage
Description : utilisé pour filtrer les enregistrements avec des conditions spécifiées. L'utilisation est la même que celle des contrôles d'ensemble de données généraux, qui est omis.
Exemple 4 : Filtrer les enregistrements avec le sexe masculin dans l'ensemble de données activé et ouvert
CDataSet.Fermer ;
CDataSet.Filter := 'Gender=''' + 'Homme' + '''';
CDataSet.Filtered := True;
CDataSet.Open;
2. Notes pour la publication d'applications à l'aide du contrôle TClientDataSet :
Comme mentionné précédemment, les programmes utilisant le contrôle TClientDataSet ne nécessitent aucun pilote de base de données une fois publiés, ce qui réduit considérablement la taille du fichier d'installation. Cependant, lors de la publication du programme, n'oubliez pas de publier midas.dll (257 Ko) dans le répertoire système Windows avec l'application (nécessaire au fonctionnement), sinon le programme ne fonctionnera toujours pas normalement.
3. Conclusion
En utilisant le contrôle TClientDataSet dans Delphi, l'application peut être complètement séparée du pilote de base de données, et les caractéristiques simples et faciles à utiliser du contrôle d'ensemble de données conventionnel peuvent être réalisées, fournissant une méthode technique et des moyens d'écriture « fine ». applications de base de données.
Le programme ci-dessus a été testé sous Pwindows98 et Delphi5.