Database JBuilder

download Database JBuilder

of 284

Transcript of Database JBuilder

Dveloppement dapplications de bases de donnes

Borland VERSION 9

JBuilder

Consultez le fichier deploy.html situ dans le rpertoire redist de JBuilder pour avoir la liste complte des fichiers que vous pouvez distribuer en accord avec votre contrat de licence JBuilder. Les applications mentionnes dans ce manuel sont brevetes par Borland Software Corporation ou en attente de brevet. Reportez-vous au CD ou la bote de dialogue A propos. Ce document ne donne aucun droit sur ces brevets. COPYRIGHT 19972003 Borland Software Corporation. Tous droits rservs. Tous les produits Borland sont des marques commerciales ou des marques dposes de Borland Software Corporation aux Etats-Unis et dans les autres pays. Toutes les autres marques sont la proprit de leurs fabricants respectifs. Pour connatre les conditions et limites des fournisseurs tiers, lisez les Remarques version sur votre CD JBuilder. JBE0090WW21002database 8E11R0503 0304050607-9 8 7 6 5 4 3 2 1 PDF

Table des matiresChapitre 1 Chapitre 3

Introduction

1-1

Rsum des chapitres . . . . . . . . . . . . . . . 1-2 Tutoriels sur les bases de donnes . . . . . . . . 1-4 Exemples de bases de donnes . . . . . . . . . . 1-5 Documentation annexe . . . . . . . . . . . . . . 1-6 Conventions de la documentation . . . . . . . . 1-8 Support et ressources destins aux dveloppeurs . . . . . . . . . . . . . . . . 1-10 Comment contacter le support technique de Borland . . . . . . . . . . . . . . . . . . . . 1-10 Ressources en ligne. . . . . . . . . . . . . . . 1-10 World Wide Web . . . . . . . . . . . . . . . . 1-10 Groupes de discussion Borland. . . . . . . . 1-11 Groupes de discussion Usenet . . . . . . . . 1-11 Rapports de bogues . . . . . . . . . . . . . . 1-12

Importation et exportation des donnes dun fichier texte 3-1Ajout de colonnes un TableDataSet en utilisant lditeur . . . . . . . . . . . . . . . . . . . . . . 3-2 Importation des donnes formates dun fichier texte. . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Rcupration de donnes dune source JDBC . . 3-3 Exportation des donnes . . . . . . . . . . . . . . 3-3 Exportation des donnes dun QueryDataSet dans un fichier texte . . . . . . . . . . . . . . 3-4 Enregistrement des modifications dun TableDataSet dans une table SQL . . . . . . 3-5 Enregistrement dans une source de donnes JDBC des modifications charges depuis un TextDataFile . . . . . . . . . . . . . . . . 3-5

Chapitre 2

Les applications de bases de donnes JBuilderArchitecture des applications de bases de donnes . . . . . . . . . . . . . . Composants DataExpress . . . . . . . . . . . . Principales fonctionnalits et avantages . . Prsentation des composants DataExpress Composants DataExpress pour EJB . . . . . . InternetBeans Express . . . . . . . . . . . . . . Composants de bases de donnes XML . . . . dbSwing. . . . . . . . . . . . . . . . . . . . . . Modules de donnes et modeleur de donnes Pilote de base de donnes . . . . . . . . . . . . Moniteur JDBC . . . . . . . . . . . . . . . . . . JDataStore et JBuilder . . . . . . . . . . . . . . Utilisation dun JDataStore ou dun pilote JDBC . . . . . . . . . . . . Avantages supplmentaires apports par JDataStore. . . . . . . . . . . . . . . . Utilisation de lexplorateur JDataStore. . . Oprations avec lexplorateur JDataStore . . . . . . . . . . . . . . . . InterBase et JBuilder . . . . . . . . . . . . . . .

Chapitre 4

2-1. 2-1 . 2-2 . 2-3 . 2-5 . 2-9 . 2-10 . 2-10 . 2-10 . 2-12 . 2-12 . 2-12 . 2-13 . 2-13 . 2-14 . 2-14 . 2-15 . 2-16

Connexion une base de donnes

4-1

Connexion aux bases de donnes . . . . . . . . . 4-2 Ajout dun composant Database votre application . . . . . . . . . . . . . . . . . . . 4-3 Dfinition des proprits de connexion du composant Database. . . . . . . . . . . . 4-4 Configuration de JDataStore. . . . . . . . . . . . 4-7 Configuration dInterBase et InterClient . . . . . 4-7 Utilisation dInterBase et dInterClient avec JBuilder . . . . . . . . . . . . . . . . . . 4-8 Astuces pour lutilisation des tables InterBase exemple . . . . . . . . . . . . . . . . . . . . . 4-8 Ajout dun pilote JDBC JBuilder . . . . . . . 4-10 Cration des fichiers .library et .config . . . 4-10 Ajout du pilote JDBC aux projets . . . . . . 4-11 Connexion une base de donnes en utilisant des pilotes JDBC InterClient . . . . . . . . . . 4-13 Utilisation du composant Database dans votre application . . . . . . . . . . . . . . . . . . . . 4-15 Sollicitation dun nom dutilisateur et dun mot de passe . . . . . . . . . . . . . . . . . . . . . 4-16 Mise en pool des connexions JDBC . . . . . . . 4-17 Optimisation des performances de JConnectionPool . . . . . . . . . . . . . 4-19 Sorties historiques . . . . . . . . . . . . . . . 4-19 Exemple de mise en pool . . . . . . . . . . . 4-20 En cas de problme lors des connexions de JDataStore et dInterBase . . . . . . . . . . 4-22 Messages derreur de connexion courants . 4-22 i

Chapitre 5

Extraction des donnes dune source de donnes

5-1

Interrogation dune base de donnes . . . . . . 5-2 Dfinition des proprits dans la bote de dialogue query . . . . . . . . . . . . . . 5-4 La page Requte . . . . . . . . . . . . . . 5-4 La page Paramtres . . . . . . . . . . . . . 5-6 Placer le texte SQL dans lensemble de ressources . . . . . . . . . . . . . . . 5-7 Interrogation dune base de donnes : Trucs & astuces . . . . . . . . . . . . . . . . 5-9 Amlioration des performances des ensembles de donnes . . . . . . . . 5-10 Persistance des mtadonnes dune requte . . . . . . . . . . . . . . . 5-11 Ouverture et fermeture des ensembles de donnes . . . . . . . . . . . . . . . . . 5-12 Comment sassurer quune requte est modifiable . . . . . . . . . . . . . . . 5-12 Utilisation de requtes paramtres pour obtenir des donnes dune base de donnes . . . . . . 5-12 Paramtrage dune requte . . . . . . . . . . 5-13 Cration de lapplication . . . . . . . . . . 5-13 Ajout dun composant ParameterRow . . 5-14 Ajout dun QueryDataSet . . . . . . . . . 5-15 Ajout des composants dinterface utilisateur . . . . . . . . . . . 5-16 Les requtes paramtres : Trucs & astuces . 5-19 Utilisation de paramtres . . . . . . . . . 5-19 R-excution dune requte avec des paramtres modifis . . . . . . 5-21 Requtes paramtres dans les relations matre-dtail . . . . . . . . . . . . . . . . 5-22

Utilisation de paramtres avec des procdures stockes Oracle PL/SQL . . . . . . . . . . . 6-5 Utilisation des procdures stockes Sybase . 6-6 Exemple dapplication avec des procdures stockes spcifiques au serveur de la base de donnes . . . . . . . . . . . . . . . . . . . 6-6 Ecriture dun fournisseur de donnes personnalis . . . . . . . . . . . . . . . . . . . . 6-7 Obtention des mtadonnes . . . . . . . . . . 6-8 Appel de initData . . . . . . . . . . . . . . 6-9 Obtention des donnes relles . . . . . . . . . 6-9 Conseils pour la conception dun fournisseur de donnes personnalis . . . . . . . . 6-10 Explication de la mthode provideData() dans des ensembles de donnes matre-dtail . . . . . . . . . . . . . . . 6-10

Chapitre 7

Manipulation des colonnes

7-1

Chapitre 6

Utilisation des procdures stockesProcdures stockes : trucs & astuces . . . . . . Squences dchappement, instructions SQL et appels de procdure spcifiques au serveur . . . . . . . . . . . . . . . . . . . Utilisation des procdures stockes spcifiques un fournisseur . . . . . . . . . . . . . . . . . Utilisation avec JDataStore de procdures stockes et de fonctions dfinies par lutilisateur . . . . . . . . . . . . . . . . Utilisation de procdures stockes InterBase

6-16-3

6-3 6-4

Prsentation des proprits et mtadonnes de colonne . . . . . . . . . . . . . . . . . . . . . 7-1 Proprits dune colonne qui ne sont pas des mtadonnes . . . . . . . . . . . . . . . 7-2 Visualisation des informations de colonnes dans le concepteur de colonne . . . . . . . . 7-2 Bouton Crer une classe RowIterator . . . . . 7-3 Utilisation du concepteur de colonne pour rendre persistantes des mtadonnes . 7-4 Utilisation du concepteur de colonne pour rendre dynamiques des mtadonnes 7-5 Visualisation des informations des colonnes dans le pilote de base de donnes . . . . . . 7-5 Optimisation dune requte . . . . . . . . . . . . 7-6 Dfinition des proprits dune colonne . . . 7-7 Dfinition des proprits des colonnes en utilisant les outils de conception visuelle de JBuilder . . . . . . . . . . . . . . . . . 7-7 Dfinition des proprits dans le code . . 7-7 Colonnes persistantes . . . . . . . . . . . . . . 7-8 Combinaison de mtadonnes dynamiques et de colonnes persistantes . . . . . . . . . . 7-9 Suppression des colonnes persistantes . . . . 7-9 Utilisation de colonnes persistantes pour ajouter des colonnes vides un ensemble de donnes . . . . . . . . . . . . . . . . 7-10 Contrle de lordre des colonnes dans un ensemble de donnes . . . . . . . . . . 7-11

6-4 6-5

ii

Chapitre 8

Chapitre 9

Enregistrement des modifications dans la source de donnes

8-1

Etablissement dune relation matre-dtail

9-1

Enregistrement des modifications dun QueryDataSet. . . . . . . . . . . . . . . . 8-3 Ajout dun bouton pour enregistrer des modifications depuis un QueryDataSet 8-4 Enregistrement des modifications dans la source de donnes par une procdure stocke . . . . 8-6 Enregistrement des modifications avec un QueryResolver . . . . . . . . . . . . . . 8-6 Codage de procdures stockes pour grer la rsolution de donnes. . . . . . . . . . . . . 8-6 Enregistrement des modifications avec un ProcedureResolver . . . . . . . . . . . . 8-8 Exemple : Utilisation de procdures stockes InterBase avec paramtres de retour . . . . 8-10 Rsolution des donnes de plusieurs tables . . 8-10 Remarques sur les types de liaisons entre les tables dune requte . . . . . . . . . . . 8-11 Rfrences (alias) de tables et de colonnes dans une chane de requte . . . . . . . . . 8-12 Contrle du paramtrage des proprits de colonne . . . . . . . . . . . . . . . . . . . 8-13 Que faire si une table nest pas modifiable ? 8-13 Comment spcifier quune table ne doit pas tre actualise ? . . . . . . . . . . . . . . . . 8-13 Utilisation des ensembles de donnes avec RMI (mise en flux) . . . . . . . . . . . . . . . . . . . 8-13 Exemple : Utilisation de flux densembles de donnes . . . . . . . . . . . . . . . . . . 8-14 Utilisation des mthodes de flux densemble de donnes . . . . . . . . . . . . . . . . . . 8-15 Personnalisation de la logique de rsolution par dfaut . . . . . . . . . . . . . . . . . . . . . 8-16 Explication de la rsolution par dfaut . . . 8-17 Ajout dun composant QueryResolver . . 8-17 Interception des vnements de rsolution. . . . . . . . . . . . . . . . 8-18 Utilisation des vnements de rsolution. . . . . . . . . . . . . . . . 8-19 Ecriture dun rsolveur de donnes personnalis . . . . . . . . . . . . . . . . . . 8-20 Gestion des erreurs de rsolution . . . . . 8-21 Rsolution des relations matre-dtail . . 8-22

Dfinition dune relation matre-dtail . . . . . . 9-2 Cration dune application avec une relation matre-dtail . . . . . . . . . . . . . . . . . . 9-3 Lecture des dtails . . . . . . . . . . . . . . . . . 9-7 Lecture de tous les dtails en une seule fois . 9-8 Lecture des enregistrements dtail slectionns la demande . . . . . . . . . . . . . . . . . . 9-8 Modification des donnes dans les ensembles de donnes matre-dtail . . . . . . . . . . . . . 9-9 Etapes de la cration dune relation matre-dtail . . . . . . . . . . . . . . . . . . . 9-10 Enregistrement des modifications dans une relation matre-dtail . . . . . . . . . . . . . . . . . . . 9-12 Rsolution des ensembles de donnes matre-dtail avec une source JDBC . . . . 9-13

Chapitre 10

Utilisation des modules de donnes pour simplifier laccs aux donnes 10-1Cration dun module de donnes en utilisant les outils de conception. . . . . . . . . . . . . 10-2 Cration du module de donnes avec lexpert . . . . . . . . . . . . . . . . . 10-2 Ajout de composants donnes un module de donnes . . . . . . . . . . . . . . . . . . 10-3 Ajout de la logique mtier au module de donnes . . . . . . . . . . . . . . . . . . 10-5 Utilisation dun module de donnes . . . . 10-5 Ajout dune bibliothque ncessaire un projet. . . . . . . . . . . . . . . . . 10-6 Rfrencement dun module de donnes dans votre application . . . . . . . . . . 10-7 Comprhension de lexpert Utilisation dun module de donnes . . . . . . . . 10-8 Cration de modules de donnes en utilisant le modeleur de donnes . . . . . . . . . . . 10-10 Cration des requtes avec le modeleur de donnes . . . . . . . . . . . . . . . . . 10-10 Ouverture dune URL . . . . . . . . . . .10-11 Dbut dune requte . . . . . . . . . . . 10-12 Ajout dune clause Group By . . . . . . 10-14 Slection des lignes ayant des valeurs de colonnes uniques . . . . . . . . . . 10-15 Ajout dune clause Where. . . . . . . . 10-15 Ajout dune clause Order By . . . . . . 10-16 Modification directe de la requte . . . 10-17

iii

Test de votre requte . . . . . . . . . . . 10-17 Construction de requtes multiples. . . 10-17 Spcification dune relation matre-dtail . . . . . . . . . . . . . . . 10-18 Enregistrement de vos requtes . . . . . 10-19 Gnration dapplications de bases de donnes . . . . . . . . . . . . 10-20 Utilisation dans votre code dun module de donnes gnr . . . . . . . . . . . 10-22

Chapitre 11

Filtrage, tri et recherche de donnesAccs aux donnes des exemples . . . . . . . Filtrage des donnes . . . . . . . . . . . . . . . Ajout et suppression de filtres . . . . . . . Tri des donnes. . . . . . . . . . . . . . . . . . Tri des donnes dans un composant JdbTable . . . . . . . . . . . . . . . . . . . Tri des donnes en utilisant les outils de conception visuelle de JBuilder . . . . Tri et indexation. . . . . . . . . . . . . . Codage du tri . . . . . . . . . . . . . . . . . Recherche de donnes . . . . . . . . . . . . . . Recherche de donnes avec le composant JdbNavField . . . . . . . . . . . . . . . . . Recherche de donnes par programme . . Recherche de donnes au moyen dun DataRow. . . . . . . . . . . . . . . . Utilisation des options de recherche . . . . Recherches grant tous les types de donnes . . . . . . . . . . . . . . . . . Lordre des colonnes dans le DataRow et le DataSet . . . . . . . . . . . . . . . . .

11-1. 11-2 . 11-5 . 11-6 . 11-9 11-10 11-11 11-12 11-14 11-14 11-15 11-17 11-18 11-18 11-20 11-20

Exemple : Agrgation de donnes avec des champs calculs . . . . . . . 12-12 Dfinition des proprits de AggDescriptor . . . . . . . . . . . . . 12-15 Cration dun gestionnaire dvnement dagrgation personnalis . . . . . . . . 12-16 Ajout de modles daffichage ou de modification pour formater les donnes . . . . . . . . . . 12-16 Masques daffichage . . . . . . . . . . . . 12-18 Masques de saisie . . . . . . . . . . . . . . 12-18 Utilisation de masques pour limportation et lexportation de donnes. . . . . . . . 12-19 Modles dpendant du type de donnes . 12-19 Modles pour les donnes numriques 12-19 Modles des donnes date et heure . . 12-21 Modles de donnes chane. . . . . . . 12-21 Modles des donnes boolennes . . . 12-22 Prsentation de plusieurs vues des donnes. 12-23 Garantie de la persistance des donnes . . . 12-25 Rendre des colonnes persistantes . . . . . 12-25 Utilisation de types de donnes variant . . . 12-27 Stockage dobjets Java. . . . . . . . . . . . 12-27

Chapitre 13

Utilisation dautres contrles et vnements

13-1

Chapitre 12

Ajout de fonctionnalits aux applications de bases de donnes 12-1Cration de rfrences . . . . . . . . . . . . . . . 12-2 Saisie de donnes avec une liste de slection . . . . . . . . . . . . . . . . . . 12-2 Ajout dun champ liste de slection . . . . 12-3 Suppression dun champ liste de slection 12-4 Cration dune rfrence en utilisant une colonne calcule . . . . . . . . . . . . . 12-5 Utilisation de colonnes calcules . . . . . . . . . 12-8 Cration dune colonne calcule dans le concepteur . . . . . . . . . . . . . . 12-9 Agrgation de donnes avec des champs calculs. . . . . . . . . . . . . . . . . . . . 12-11

Synchronisation des composants visuels. . . . 13-1 Accs aux donnes et aux informations de modle depuis un composant dinterface utilisateur . 13-2 Affichage dinformations dtat . . . . . . . . . 13-3 Ajout dun composant JdbStatusLabel une application . . . . . . . . . . . . . . 13-3 Excution de lapplication JdbStatusLabel . 13-4 Gestion des erreurs et des exceptions. . . . . . 13-5 Remplacement de la gestion par dfaut des exceptions DataSetException dans les contrles . . . . . . . . . . . . . . 13-6

Chapitre 14

Cration dune application de base de donnes distribue laide de DataSetData 14-1Explication de lexemple dapplication de base de donnes distribue (utilisant Java RMI et DataSetData) . . . . . . . . . . . . . . . . . 14-2 Installation de lapplication exemple . . . . 14-3 Que se passe-t-il ? . . . . . . . . . . . . . 14-4 Transmission des mtadonnes par DataSetData . . . . . . . . . . . . . 14-5 Dploiement de lapplication sur plusieurs niveaux . . . . . . . . . . . . . . . . . . 14-5 iv

Chapitre 15

Chapitre 16

Administration dune base de donnes

15-1

Tutoriel : Importation et exportation des donnes dun fichier texte 16-1Etape 1 : Cration du projet . . . . . . . . . . . 16-2 Etape 2 : Cration du fichier texte . . . . . . . . 16-3 Etape 3 : Gnration dune application . . . . . 16-3 Etape 4 : Ajout de composants DataExpress votre application . . . . . . . . . . . . . . . 16-4 Etape 5 : Ajout de composants dbSwing pour crer linterface utilisateur . . . . . . . . 16-6 Etape 6 : Ajout dun composant Swing JButton 16-8 Etape 7 : Compilation et excution de votre application . . . . . . . . . . . . . . . . . . . 16-10 Etape 8 : Utilisation de modle pour lexportation de champs numriques, date/heure et texte . . . . . . . . . . . . . . 16-12

Exploration des tables et mtadonnes des bases de donnes en utilisant le pilote de base de donnes . . . . . . . . . . 15-1 Parcourir les objets de schma dune base de donnes . . . . . . . . . . . . . . . . . . 15-2 Configuration des pilotes pour accder des bases de donnes distantes ou locales . . . 15-3 Excution dinstructions SQL . . . . . . . . . 15-4 Utilisation de lexplorateur pour visualiser ou modifier les donnes des tables . . . . . 15-6 Utilisation du pilote de base de donnes pour ladministration de bases de donnes . . 15-8 Cration de la source de donnes SQL . . . . 15-8 Remplissage dune table SQL en utilisant JBuilder . . . . . . . . . . . . . . . . . . . 15-10 Suppression de tables dans JBuilder . . . . 15-11 Surveillance des connexions aux bases de donnes . . . . . . . . . . . . . . . . . . . 15-11 A propos du Moniteur JDBC . . . . . . . . 15-11 Utilisation du Moniteur JDBC dans une application en excution . . . . 15-13 Ajout du MonitorButton la palette . . 15-13 Utilisation de la classe MonitorButton dans le code . . . . . . . . . . . . . . . 15-14 Proprits de MonitorButton . . . . . . 15-14

Chapitre 17

Tutoriel : Cration dune application de base de donnes lmentaire 17-1Etape 1 : Cration du projet . . . . . . . . . . . 17-3 Etape 2 : Gnration dune application . . . . . 17-4 Etape 3 : Ajout de composants DataExpress votre application . . . . . . . . . . . . . . . 17-4 Etape 4 : Conception des colonnes de lapplication . . . . . . . . . . . . . . . . . 17-7 Ajout de colonnes et modification des proprits des colonnes . . . . . . . . . . . . . . . . . 17-7 Spcification des calculs des colonnes calcules . . . . . . . . . . . . . . . . . . . 17-9 Etape 5 : Ajout de composants dbSwing pour crer linterface utilisateur . . . . . . . 17-10 Etape 6 : Agrgation de donnes avec des champs calculs. . . . . . . . . . . 17-14

Index

I-1

v

vi

Chapitre

1

Chapitre1

Introduction

Dveloppement dapplications de bases de donnes traite de lutilisation des fonctionnalits de base de donnes de DataExpress (JBuilder) pour dvelopper des applications de bases de donnes. Vous y trouverez galement comment utiliser des composants dbSwing pour crer linterface utilisateur de votre application. Les fonctionnalits standard dune application de base de donnes sont prsentes au travers dexemples afin que vous puissiez apprendre en les ralisant. Des informations conceptuelles sont fournies et suivies, ds que possible, par des exemples, avec des renvois sur des informations plus dtailles quand cela est ncessaire. Veuillez vrifier que vous tes bien en possession des additifs la documentation et de ses mises jour, ladresse http://www.borland.com/ techpubs/jbuilder. Vous pouvez aussi consulter laide en ligne de JBuilder. Les informations de laide en ligne sont plus rcentes que celles de la documentation imprime. Si vous avez des questions en matire de cration des applications de bases de donnes en utilisant JBuilder, visitez le groupe de discussion consacr aux bases de donnes, ladresse news://newsgroups.borland.com/ borland.public.jbuilder.database. Ce groupe de discussion, ddi aux problmes dcriture des applications de bases de donnes avec JBuilder, est anim par nos ingnieurs support ainsi que par lquipe de dveloppement de JBuilder. Pour des discussions sur les composants dbSwing, le groupe de discussion news://newsgroups.borland.com/ borland.public.jbuilder.dbswing peut vous fournir de laide lors de la cration dinterfaces utilisateur dapplications de bases de donnes. Le site Web de la communaut Borland hberge les rponses aux questions frquemment poses (FAQ) sur DataExpress ladresse http://community.borland.com/.

Introduction

1-1

Rsum des chapitres

Remarque

Toutes les versions de JBuilder fournissent un accs direct aux donnes SQL via lAPI JDBC de Sun. JBuilder Entreprise propose des composants DataExpress supplmentaires simplifiant grandement le dveloppement des applications de bases de donnes, comme le montre ce manuel. Nombre de ces composants sont facilement accessibles via longlet DataExpress de la palette de composants. DataExpress stocke les donnes en mmoire. La plupart des tutoriels et applications exemple dcrits dans ce manuel utilisent des donnes exemple stockes dans un JDataStore et accessibles via un pilote JDBC. Le remplacement du module de stockage en mmoire de JDataStore fournit un stockage permanent des donnes. JDataStore peut tre trait comme toute base de donnes SQL - vous pouvez vous y connecter comme tout serveur, y excuter des requtes SQL, etc. Pour davantage dinformations sur JDataStore, voir le Guide du dveloppeur JDataStore. Pour des explications sur les conventions de la documentation, voir Conventions de la documentation, page 1-8. Si JBuilder ne vous est pas familier, nous vous conseillons de commencer par Introduction JBuilder. Si Java ne vous est pas familier, nous vous conseillons de commencer par Introduction Java.

Rsum des chapitresCe manuel dcrit en dtail comment les technologies et les outils sur les bases de donnes apparaissent dans JBuilder et comment vous travaillerez avec eux dans lEDI et lditeur. Il explique galement comment ces technologies sajustent dans une application de base de donnes. Pour avoir plus dinformations, choisissez lune des rubriques suivantes : Chapitre 2, Les applications de bases de donnes JBuilder Introduit les technologies, les composants et les outils utiliss pour crer des applications de bases de donnes dans JBuilder, notamment la bibliothque de composants DataExpress, le pilote de base de donnes, le moniteur JDBC, les sources de donnes, JDataStore et InterBase. Chapitre 3, Importation et exportation des donnes dun fichier texte Explique comment alimenter en donnes une application depuis un fichier texte et comment enregistrer les donnes vers un fichier texte ou une source de donnes SQL. Chapitre 4, Connexion une base de donnes Dcrit comment connecter vos composants de base de donnes un serveur. Inclut des informations sur lutilisation des pilotes de bases de donnes JDBC et ODBC, ainsi que des informations spcifiques la connexion aux bases de donnes JDataStore et InterBase.

1-2

Dveloppement dapplications de bases de donnes

Rsum des chapitres

Chapitre 5, Extraction des donnes dune source de donnes Dcrit comment crer une copie locale des donnes de votre source de donnes et quels composants du paquet DataExpress utiliser. Cette phase (appele acquisition ou fourniture des donnes) rend les donnes accessibles lapplication. Chapitre 6, Utilisation des procdures stockes Dcrit comment crer et utiliser des procdures stockes pour excuter des instructions SQL effectuant lacquisition ou la rsolution des donnes. Chapitre 7, Manipulation des colonnes Dcrit la manire de rendre des colonnes persistantes, de contrler laspect ou la saisie des donnes dune colonne, dobtenir les informations des mtadonnes, dajouter une colonne un ensemble de donnes et de dfinir lordre daffichage des colonnes. Chapitre 8, Enregistrement des modifications dans la source de donnes Dcrit la manire denregistrer dans la source de donnes les modifications de donnes faites dans lapplication JBuilder (ce processus est appel rsolution). Dtaille plusieurs mthodes de rsolution, notamment le mcanisme de rsolution standard propos par les composants DataExpress, lenregistrement des modifications avec les procdures stockes, la rsolution des donnes provenant de plusieurs tables, lutilisation des objets DataSet avec RMI, la personnalisation de la logique de rsolution par dfaut. Chapitre 9, Etablissement dune relation matre-dtail Dcrit comment lier plusieurs ensembles de donnes pour crer une relation parent/enfant (ou matre-dtail). Chapitre 10, Utilisation des modules de donnes pour simplifier laccs aux donnes Dcrit comment utiliser des modules de donnes pour simplifier laccs aux donnes de vos applications et, simultanment, standardiser la logique et les rgles de fonctionnement de la base de donnes pour tous les dveloppeurs accdant aux donnes. Fournit galement des informations sur lutilisation de lexpert Modeleur de donnes pour crer des modules de donnes. Chapitre 11, Filtrage, tri et recherche de donnes Dcrit comment implmenter le tri, le filtrage et la recherche de donnes dans les applications de bases de donnes, laide des composants DataExpress standard et les outils de conception de JBuilder. Explique les diffrences entre ces fonctionnalits, et offre un tutoriel pour chacune delles.Introduction

1-3

Tutoriels sur les bases de donnes

Chapitre 12, Ajout de fonctionnalits aux applications de bases de donnes Inclut des informations sur les tches suivantes : Formatage et analyse de donnes avec des masques de saisie ou daffichage Cration de colonnes calcules Agrgation de donnes (minimum, maximum, somme, dcompte) Cration dun champ de recherche Prsentation de plusieurs vues des donnes Cration de champs persistants ou prdfinis Chapitre 13, Utilisation dautres contrles et vnements Expose les mthodes complmentaires facilitant le dveloppement de la partie interface utilisateur de votre application. Discute de laffichage des informations dtat dans votre application et du traitement des erreurs de lapplication. Chapitre 14, Cration dune application de base de donnes distribue laide de DataSetData Dcrit lutilisation des composants DataExpress dans un environnement informatique objets distribus (via Java RMI). Chapitre 15, Administration dune base de donnes Inclut des informations sur les tches suivantes : Parcours et modification des donnes, des tables et des schmas de base de donnes en utilisant le pilote de base de donnes Cration et suppression de tables Remplissage de tables par des donnes Surveillance du trafic JDBC avec le moniteur JDBC

Tutoriels sur les bases de donnesLes tutoriels suivants illustrent les techniques de dveloppement dapplications de bases de donnes les plus utiles. Chapitre 16, Tutoriel : Importation et exportation des donnes dun fichier texte Montre comment utiliser le composant TableDataSet pour importer/ exporter les donnes dun fichier texte. Ce tutoriel montre dautre part comment se servir des composants dbSwing et des outils de conception de JBuilder pour construire linterface utilisateur de vos applications de bases de donnes.

1-4

Dveloppement dapplications de bases de donnes

Exemples de bases de donnes

Chapitre 17, Tutoriel : Cration dune application de base de donnes lmentaire Montre comment construire une application de base de donnes simple se connectant une base SQL. Vous verrez comment dfinir les proprits de connexion la base de donnes, ajouter un champ de recherche pour localiser des donnes et ajouter des champs calculs pour gnrer des totaux dans une colonne.

Exemples de bases de donnesIl existe de nombreux exemples dmontrant les technologies et techniques spcifiques aux applications de bases de donnes. La majorit des exemples spcifiques aux bases de donnes se trouvent dans les rpertoires suivants : /samples/DataExpress : contient une grande varit de projets dmontrant les techniques dutilisation des composants DataExpress pour le dveloppement des applications de bases de donnes. /samples/dbSwing : contient des projets illustrant lutilisation des composants dbSwing pour la cration des interfaces utilisateur des applications de bases de donnes. /samples/JDataStore : contient le code exemple, les fichiers des bases et les projets JBuilder dmontrant lutilisation des bases de donnes JDataStore et des pilotes de bases de donnes JDataStore avec JBuilder. Ces fichiers exemple compltent les tutoriels et les exemples traits dans le Guide du dveloppeur JDataStore. Beaucoup dapplications accdent aux donnes de la base JDataStore exemple, employee.jds ou de la base exemple InterBase, employee.gdb. Pour plus dinformations sur JDataStore, voir le Guide du dveloppeur JDataStore. Pour davantage dinformations sur le serveur InterBase, consultez sa documentation en ligne. Dans ce guide, les exemples sont mentionns lorsquils dmontrent le concept spcifique prsent par le texte.Remarque

Si vous souhaitez examiner les applications exemple dans le concepteur de JBuilder, il vous faudra construire le projet correspondant chaque exemple avant de lamener dans le concepteur. Pour construire un projet, choisissez Projet|Reconstruire le projet.

Introduction

1-5

Documentation annexe

Documentation annexeLa documentation Borland contient des informations utiles au dveloppement des applications de bases de donnes : Rfrence de la bibliothque de composants DataExpress est la documentation en ligne sur lAPI des paquets DataExpress utiliss pour laccs aux donnes. Elle inclut les rfrences des paquets de composants suivants : Rfrence DataExpress : Contient la documentation API pour les paquets assurant laccs basique aux donnes. Le paquet com.borland.dx.dataset fournit les routines gnrales de connectivit, gestion et manipulation des donnes. Le paquet com.borland.dx.sql.dataset procure les fonctions de connectivit aux donnes spcifiques JDBC. Le paquet com.borland.dx.text contient des classes et des interfaces qui contrlent lalignement et le formatage des objets, ainsi que le formatage des donnes et des valeurs. Ce paquet gre en outre le formatage et lanalyse des exceptions comme la validation de la saisie. Rfrence dbSwing : Contient la documentation API pour le paquet com.borland.dbswing ; les composants contenus dans ce paquet permettent des composants Swing daccder des bases de donnes au travers des ensembles de donnes DataExpress (DataSet). Rfrence JDataStore : Contient la documentation API pour les paquets servant la connexion aux bases de donnes JDataStore ainsi qu la excution des transactions sur ces bases. Le paquet com.borland.datastore fournit les fonctions basiques de connectivit et du support des transactions pour les bases de donnes JDataStore locales. Le paquet com.borland.datastore.jdbc contient linterface JDBC avec le DataStore, y compris le pilote JDBC lui-mme, en mme temps que les classes permettant dimplmenter votre propre serveur DataStore pour les connexions multi-utilisateurs au mme DataStore. Le paquet com.borland.datastore.javax.sql apporte le support des transaction distribues (XA). Les classes de ce paquet sont utilises en interne par dautres classes Borland. Vous ne devez jamais utiliser directement les classes de ce paquet. Rfrence des classes Javax : Contient la documentation API pour le paquet com.borland.javax.sql qui fournit les implmentations des sources de donnes JDBC 2.0 et les composants pour la mise en pool des connexions. Ces classes peuvent servir avec nimporte quel pilote JDBC mais possdent des fonctionnalits supplmentaires spcifiques au pilote JDBC JDataStore.1-6Dveloppement dapplications de bases de donnes

Documentation annexe

Rfrence InternetBeans Express : Contient la documentation API pour les paquets com.borland.internetbeans et com.borland.internetbeans.taglib qui fournissent des composants et une bibliothque de balises JSP permettant de gnrer la couche prsentation dune application web, et dy rpondre. Rfrence des classes adaptateur pour SQL : Contient la documentation API pour le paquet com.borland.sql. Ce paquet contient linterface SQLAdapter pouvant tre implmente par nimporte quelle classe JDBC adaptable en vue de lamlioration des performances. Rfrence des classes des outils SQL : Contient la documentation API pour le paquet com.borland.sqltools contenant les classes pour rcuprer la sortie dun rapport en utilisant les requtes SQL spcifies dans le format XML. Rfrence CORBA Express : Contient la documentation API pour le paquet com.borland.cx contenant les classes de connexion CORBA pour les applications distribues bases sur CORBA. Rfrence DataExpress EJB : Contient la documentation API pour le paquet com.borland.dx.ejb. Ce paquet contient les composants DataExpress pour EJB qui permettent dutiliser des beans entit avec les DataSet DataExpress pour la rsolution et lacquisition des donnes. Certains de ces composants peuvent tre ajouts depuis la page EJB de la palette de composants dans le concepteur dinterface utilisateur. Rfrence des composants de bases de donnes XML : Contient la documentation API pour les composants de bases de donnes XML dans les paquets com.borland.jbuilder.xml.database.xmldbms, com.borland.jbuilder.xml.database.template et com.borland.jbuilder.xml.database.common. Beaucoup des composants de ces paquets peuvent tre ajouts depuis la page XML de la palette de composants dans le concepteur dinterface utilisateur. Guide du dveloppeur dapplications web contient des informations sur lutilisation des composants InternetBeans Express pour crer des applications web accdant aux donnes. Le Guide du dveloppeur dapplications web comprend des tutoriels qui montrent comment utiliser les composants InternetBeans Express avec des JSP et des servlets. Guide du dveloppeur XML explique comment utiliser les composants bean modle et template de XML pour crer des requtes sur une base de donnes et comment transfrer des donnes entre des documents XML et des bases de donnes. Le Guide du dveloppeur XML comprendIntroduction

1-7

Conventions de la documentation

galement des tutoriels qui illustrent lutilisation des composants de bases de donnes XML. Dveloppement des Enterprise JavaBeans explique comment utiliser les composants DataExpress pour EJB afin de transfrer des donnes depuis les beans entit dploys sur un serveur vers une application client et vice-versa. Guide du dveloppeur JDataStore contient une rfrence complte qui vous aidera utiliser JDataStore avec les applications de base de donnes que vous dveloppez.

Conventions de la documentationLa documentation Borland sur JBuilder utilise les polices et les symboles dcrits dans le tableau suivant pour signaler du texte particulier.Tableau 1.1 PolicePolice espacement fixe

Polices et symboles SignificationLa police espacement fixe reprsente : du texte tel quil apparat lcran du texte que vous devez taper, comme dans Tapez Hello World dans le champ Titre de lexpert Application. des noms de fichiers des noms de chemins des noms de rpertoires ou de dossiers des commandes, comme SET PATH du code Java des types de donnes Java, comme boolean, int et long. des identificateurs Java, comme des noms de variables, classes, noms de paquets, interfaces, composants, proprits, mthodes et vnements des noms dargument des noms de champs des mots cls Java, comme void et static Le gras est utilis pour dsigner les outils java, bmj (Borland Make for Java), bcj (Borland Compiler for Java) et les options du compilateur. Par exemple : javac, bmj, -classpath. Litalique est utilis pour les termes nouveaux, les titres des manuels et, parfois, pour la mise en valeur. Cette police indique les touches du clavier, comme dans Appuyez sur Echap pour quitter le menu. Les crochets droits dans le texte ou dans la syntaxe entourent les lments facultatifs. Ne tapez pas ces crochets.

Gras

Italiques Touches []

1-8

Dveloppement dapplications de bases de donnes

Conventions de la documentation

Tableau 1.1 Police

Polices et symboles (suite) SignificationLes crochets angulaires indiquent des variables dans les chemins de rpertoire, les options de commande et les exemples de code. Par exemple, peut tre utilis pour indiquer lemplacement o vous devez fournir un nom de fichier (y compris lextension du fichier) et indique gnralement que vous devez fournir votre nom dutilisateur. Lorsque vous remplacez des variables dans les chemins de rpertoire, les options de commande et les exemples de code, remplacez toute la variable, y compris les crochets angulaires (< >). Par exemple, vous pouvez remplacer par le nom dun fichier, comme employee.jds, et omettre les crochets. Remarque : Les crochets angulaires sont utiliss dans les fichiers HTML, XML, JSP et dautres fichiers bass sur des balises pour dmarquer les lments des documents, comme et . La convention suivante dcrit comment les chanes variables sont spcifies dans les exemples de code qui utilisent dj des crochets angulaires comme dlimiteurs. Ce formatage permet dindiquer les chanes variables des exemples de code qui utilisent dj des crochets angulaires comme dlimiteurs. Par exemple, Dans les exemples de code, les points de suspension (...) indiquent le code qui a t omis dans lexemple pour gagner de la place et amliorer la comprhension. Sur un bouton, les points de suspension indiquent que ce bouton ouvre une bote de dialogue de slection.

Italiques, serif

...

JBuilder est disponible sur plusieurs plates-formes. Reportez-vous au tableau suivant pour une description des conventions associes aux diverses plates-formes.Tableau 1.2 ElmentChemins

Conventions des plates-formes SignificationLes chemins daccs mentionns dans la documentation sont indiqus par une barre oblique (/). Pour Windows, utilisez une barre oblique inverse (\). Lemplacement du rpertoire de base standard dpend de la plate-forme et sera indiqu par la variable . Pour UNIX et Linux, le rpertoire de base peut varier. Par exemple, ce peut tre /user/ ou /home/ Pour Windows NT, le rpertoire de base est C:\Winnt\ Profiles\ Pour Windows 2000 et XP, le rpertoire de base est C:\ Document and Settings\ Les captures dcran refltent lapparence Metal sur diverses plates-formes.

Rpertoire de base

Captures dcran

Introduction

1-9

Support et ressources destins aux dveloppeurs

Support et ressources destins aux dveloppeursBorland fournit de nombreuses options de support et ressources dinformation pour aider les dveloppeurs tirer le meilleur parti de leurs produits Borland. Ces options comprennent des programmes de support technique Borland, ainsi que des services gratuits sur Internet, o vous pouvez consulter notre importante base dinformations et entrer en contact avec dautres utilisateurs de produits Borland.

Comment contacter le support technique de BorlandBorland propose divers programmes de support destins aux clients et aux futurs clients. Vous pouvez choisir parmi plusieurs catgories de support, allant de linstallation des produits Borland au support tarif de niveau consultant, en passant par une assistance complte. Pour obtenir des informations sur les services Borland de support aux dveloppeurs, veuillez consulter notre site Web, ladresse http://www.borland.fr/support/. Quand vous contacterez le support, prparez des informations compltes sur votre environnement, la version du produit que vous utilisez et une description dtaille du problme. Pour avoir de laide sur les outils tiers, ou leur documentation, contactez votre fournisseur.

Ressources en ligneVous pouvez obtenir des informations depuis les sources ci-aprs : World Wide Web Bulletins lectroniques http://www.borland.fr/ http://www.borland.com/techpubs/jbuilder/ Pour vous abonner aux bulletins lectroniques, utilisez le formulaire en ligne : http://www.borland.fr/products/newsletters/ index.html

World Wide WebConsultez rgulirement www.borland.fr/jbuilder. Lquipe produit de JBuilder y place notes techniques, analyses des produits concurrents, rponses aux questions frquemment poses, exemples dapplications, mises jour du logiciel et informations sur les produits existants ou nouveaux.

1-10

Dveloppement dapplications de bases de donnes

Support et ressources destins aux dveloppeurs

Vous pouvez vous connecter en particulier aux URL suivantes : http://www.borland.fr/jbuilder/ (mises jour du logiciel et autres fichiers) http://www.borland.com/techpubs/jbuilder/ (mises jour de la documentation et autres fichiers) http://community.borland.com/ (contient notre magazine dinformations web pour les dveloppeurs)

Groupes de discussion BorlandQuand vous vous inscrivez JBuilder, vous pouvez participer de nombreux groupes de discussion ddis JBuilder. Les groupes de discussion Borland permettent la communaut mondiale dutilisateurs dchanger des astuces et des techniques concernant les produits Borland, ainsi que les outils et technologies associs. Vous trouverez des groupes de discussion, anims par les utilisateurs, pour JBuilder et dautres produits Borland, ladresse http://www.borland.com/newsgroups/.

Groupes de discussion UsenetLes groupes Usenet suivants sont ddis Java et concernent la programmation : Remarque

news:comp.lang.java.advocacy news:comp.lang.java.announce news:comp.lang.java.beans news:comp.lang.java.databases news:comp.lang.java.gui news:comp.lang.java.help news:comp.lang.java.machine news:comp.lang.java.programmer news:comp.lang.java.security news:comp.lang.java.softwaretools

Ces groupes de discussion sont maintenus par les utilisateurs et ne sont pas des sites Borland officiels.

Introduction

1-11

Support et ressources destins aux dveloppeurs

Rapports de boguesSi vous pensez avoir trouv un bogue dans le logiciel, merci de le signaler Borland, sur lun des sites suivants : Page du support dveloppeur de JBuilder, ladresse http://www.borland.com/devsupport/emea/. Cliquez sur le lien Reporting Defects pour afficher le formulaire de saisie. Quality Central, ladresse http://qc.borland.com. Suivez les instructions de la page Quality Central dans la section Bugs Reports. Quand vous signalez un bogue, indiquez toutes les tapes ncessaires la reproduction de ce bogue, ainsi que tout paramtre spcial de votre environnement et les autres programmes utiliss avec JBuilder. Prcisez bien le comportement attendu et ce qui sest rellement pass. Si vous avez des commentaires (compliments, suggestions ou questions) destins aux rdacteurs de la documentation de JBuilder, vous pouvez envoyer un e-mail [email protected]. Uniquement pour la documentation. Les questions de support doivent tre adresses au support dveloppeur. JBuilder est fait par des dveloppeurs pour des dveloppeurs. Nous apprcions vraiment vos remarques.

1-12

Dveloppement dapplications de bases de donnes

Chapitre

2

Chapitre2

Les applications de bases de donnes JBuilder

On appelle application de base de donnes toute application accdant des donnes stockes et permettant de les visualiser et, ventuellement, de les modifier ou de les manipuler. Le plus souvent, ces donnes sont stockes dans une base de donnes. Les donnes peuvent cependant tre stockes dans des fichiers texte ou dans dautres formats. JBuilder permet daccder ces informations et de les manipuler en utilisant les proprits, les mthodes et les vnements dfinis dans les paquets DataSet de la bibliothque de composants DataExpress et dans le paquet dbSwing. Une base de donnes demandant des informations une telle source de donnes est appele une application client. Un gestionnaire de bases de donnes grant les demandes de donnes de divers clients est appel un serveur de bases de donnes.

Architecture des applications de bases de donnesLarchitecture DataExpress de JBuilder est centre sur la construction entirement Java dapplications client-serveur, dapplets, de servlets et de pages JavaServer (JSP) pour Internet ou intranet. Comme les applications ralises avec JBuilder sont entirement en Java lexcution, elles sont multiplates-formes. Les applications JBuilder communiquent avec les serveurs de bases de donnes en utilisant lAPI JDBC, la spcification de connectivit de base de donnes Sun. JDBC est lAPI standard entirement Java permettant daccder aux donnes des bases de donnes et de les manipuler. Les applications de bases de donnes JBuilder peuvent se connecter toutes les bases de donnes disposant dun pilote JDBC.Les applications de bases de donnes JBuilder

2-1

Composants DataExpress

Le diagramme suivant illustre lorganisation dune base de donnes standard et les diffrentes couches entre lapplication de base de donnes client DataExpress JBuilder et la source de donnes :Figure 2.1 Diagramme dune application de base de donnes standard

La section suivante, Composants DataExpress, prsente les composants de larchitecture DataExpress avec plus de dtails.

Composants DataExpressDataExpress est un paquet, com.borland.dx.dataset, de classes et dinterfaces Borland qui apportent les fonctions basiques daccs aux donnes. Ce paquet dfinit galement les classes de base fournisseur et rsolveur, ainsi quune classe DataSet abstraite tendue aux autres objets DataSet. Ces classes fournissent laccs aux informations stockes dans les bases de donnes ou les autres sources de donnes. Ce paquet comprend les fonctionnalits couvrant les trois phases principales de la gestion des donnes : Acquisition Fonction gnrale qui obtient les donnes et gre les ensembles de donnes locaux. (Les connexions des serveurs distants spcifiques JDBC sont gres par des classes du paquet com.borland.dx.sql.dataset.)

2-2

Dveloppement dapplications de bases de donnes

Composants DataExpress

Manipulation Navigation et modification des donnes en local. Rsolution Routines gnrales de mise jour des donnes, du DataSet local vers la source originelle des donnes. (La rsolution sur des serveurs distants des modifications des donnes via JDBC sont gres par des classes du paquet com.borland.dx.sql.dataset.)

Principales fonctionnalits et avantagesLes composants DataExpress sont modulaires afin de permettre la sparation des fonctionnalits. Cette conception permet aux composants DataExpress de grer une grande varit dapplications. La modularit de larchitecture DataExpress repose sur les caractristiques suivantes : Fonctionnalit de DataSet intgre Cest une collection de fonctions de gestion des donnes, accessibles aux applications avec DataExpress. Beaucoup de ces fonctions peuvent tre appliques par la dfinition explicite de proprits et dvnements. Parmi ces fonctions : la navigation, laccs aux donnes et leur mise jour, le classement et le filtrage des donnes, le support des relations matre-dtail, les rfrences, les contraintes, les valeurs par dfaut, etc. Indpendance par rapport aux sources de donnes La lecture et lactualisation des donnes dune source de donnes comme un serveur Oracle ou Sybase sont isoles dans deux principales interfaces : Provider, lacquisition, et Resolver, la rsolution. Isoler la recherche et la mise jour des donnes facilite la cration des nouveaux composants Provider/Resolver destins aux nouvelles sources de donnes. Il existe deux implmentations Provider/Resolver pour les pilotes JDBC standard ; elles fournissent un accs aux bases de donnes telles Oracle, Sybase, Informix, InterBase, DB2, MS SQL Server, Paradox, dBase, FoxPro, Access, et bien dautres. Vous pouvez aussi crer les implmentations des composants Provider/Resolver personnalises pour les EJB, les serveurs dapplication, SAP, BAAN, IMS, CICS, etc. Stockage intgr Lorsque les donnes sont trouves par un processus dacquisition, elles sont mises en cache dans le DataSet. Toutes les modifications apportes au DataSet cach sont suivies de sorte que les implmentations du processus de rsolution savent celles qui demandent une mise jour dans la source de donnes. DataExpress fournit deux options pour ce stockage en cache : MemoryStore (par dfaut) et JDataStore.

Les applications de bases de donnes JBuilder

2-3

Composants DataExpress

MemoryStore met en cache toutes les donnes et en mmoire les modifications. JDataStore utilise une base de donnes entirement Java, faible encombrement, ultra-performante et incorporable pour mettre en cache les donnes et leurs modifications. Le JDataStore est idal pour linformatique dconnecte ou mobile, la rplication non synchrone des donnes et les applications de bases de donnes faible encombrement. Support de la liaison de donnes pour les composants visuels Les composants DataSet de DataExpress fournissent une puissante interface de programmation ainsi que le support de la liaison de donnes directe pour les composants orients donnes grce la dfinition de proprits par simple pointer-cliquer dans le concepteur visuel. JBuilder est livr avec des composants visuels bass sur Swing qui se lient directement aux composants DataSet. Lutilisation de larchitecture modulaire de DataExpress prsente les avantages suivants : Informatique en rseau Comme indiqu prcdemment, lapproche acquisition/rsolution isole les interactions des sources de donnes en deux points exactement dfinis. Cette approche offre deux autres avantages : Le processus dacquisition/rsolution peut facilement tre dcompos en faveur dun niveau intermdiaire. La logique dacquisition/rsolution possdant typiquement une nature transactionnelle est idalement adapte au partitionnement sur un niveau intermdiaire. Cest un modle de traitement sans tat idalement adapt linformatique en rseau. La connexion entre le client composant DataSet et la source de donnes peut tre interrompue aprs lacquisition. Lorsque les modifications doivent tre enregistres dans la source, la connexion na besoin dtre rtablie que pour la dure de la transaction de rsolution. Dveloppement rapide des interfaces utilisateur Les composants DataSet pouvant tre lis aux composants orients donnes par la simple dfinition dune proprit, ils sont idalement adapts la construction rapide des interfaces utilisateur des applications de bases de donnes. Informatique mobile Avec lintroduction du composant DataStore, les applications DataExpress disposent dune base de donnes persistante et portable. Le DataStore peut contenir plusieurs composants DataSet, des fichiers quelconques et des objets Java. Cela permet de conserver ltat complet dune application dans un seul fichier. Les composants DataSet intgrent des techniques de rplication des donnes, permettant que les2-4Dveloppement dapplications de bases de donnes

Composants DataExpress

modifications apportes aux donnes rpliques soient enregistres et rconcilies dans leur source. Applications imbriques Le faible encombrement, les hautes performances de la base de donnes JDataStore supportent idalement lincorporation des applications et acceptent toutes les fonctionnalits et toute la smantique du composant DataSet. Pour plus dinformations sur larchitecture DataExpress, visitez le site Web Borland, ladresse http://www.borland.fr/jbuilder/.

Prsentation des composants DataExpressLes fonctionnalits de base ncessaires la connexion de donnes sont proposes par les paquets com.borland.dx.dataset, com.borland.dx.sql.dataset et com.borland.datastore. Les composants de ces paquets encapsulent la connexion de lapplication avec la source de donnes et les comportements ncessaires la manipulation des donnes. Les caractristiques proposes par ces paquets grent la connexion avec les bases de donnes ainsi que les fonctionnalits dun ensemble de donnes. Les classes et les composants principaux des paquets Borland consacrs aux bases de donnes sont numrs dans le tableau ci-dessous avec une brve description. La colonne de droite du tableau indique les proprits les plus couramment utilises de la classe ou du composant. Certaines proprits sont elles-mmes des objets regroupant plusieurs proprits. Le nom de ces objets proprit complexe se termine par le mot Descriptor et ces objets contiennent des proprits essentielles qui doivent, gnralement, tre initialises pour que le composant soit utilis.Composant/ ClasseDatabase

DescriptionNcessaire pour accder aux donnes stockes dans un serveur distant, le composant Database gre la connexion JDBC avec la base de donnes dun serveur SQL. Pour davantage dinformations sur ce composant et son utilisation, voir Chapitre 4, Connexion une base de donnes.

Proprits couramment utilisesLobjet ConnectionDescriptor stocke les proprits de connexion spcifiant le pilote, lURL, le nom dutilisateur et le mot de passe. On accde cet objet via la proprit connection.

Les applications de bases de donnes JBuilder

2-5

Composants DataExpress

Composant/ ClasseDataSet

DescriptionUne classe abstraite qui dfinit le comportement par dfaut dun ensemble de donnes, DataSet sert galement dinfrastructure au stockage de donnes en grant un tableau deux dimensions organis en lignes et en colonnes. Elle implmente le concept de position de la ligne en cours, ce qui permet de parcourir les lignes de donnes et de grer un pseudo enregistrement contenant un enregistrement nouveau ou modifi jusqu ce quil soit valid dans le DataSet. Etant donn quil tend ReadWriteRow, DataSet dispose de mthodes de lecture et dcriture de valeurs de champ.

Proprits couramment utilisesLobjet SortDescriptor contient des proprits affectant lordre dans lequel on accde aux donnes et celui de leur affichage dans un composant dinterface utilisateur. On accde cet objet via la proprit sort. Pour les instructions dutilisation, voir Tri des donnes, page 11-9. Lobjet MasterLinkDescriptor contient des proprits grant une relation matre-dtail entre deux composants DataSet. On accde cet objet via la proprit masterLink de lensemble de donnes dtail. Pour les instructions dutilisation, voir Chapitre 9, Etablissement dune relation matre-dtail. La proprit tableName spcifie la source de donnes du composant StorageDataSet. La proprit maxRows dfinit le nombre maximum de lignes contenues initialement dans le DataSet. La proprit readOnly contrle laccs en criture aux donnes.

StorageDataSet

Une classe qui tend DataSet en fournissant une implmentation du stockage des donnes et de la manipulation de la structure du DataSet. Un composant StorageDataSet est rempli avec les donnes en extrayant des informations dune base de donnes distante (par exemple, InterBase ou Oracle) ou en important les donnes stockes dans un fichier texte. Pour ce faire, il faut instancier lune de ses sous-classes : QueryDataSet, ProcedureDataSet ou TableDataSet. Le composant DataStore propose un remplacement de MemoryStore qui offre un stockage permanent des donnes. Un JDataStore offre un cache des donnes performant et une persistance compacte pour des ensembles de donnes DataExpress, des fichiers quelconques ou des objets Java. Le composant DataStore utilise un seul fichier pour stocker un ou plusieurs flux de donnes. Un fichier JDataStore utilise une structure de rpertoire associant un nom et un tat de rpertoire chaque flux de donnes. JDataStore peut tre trait comme toute base de donnes SQL - vous pouvez vous y connecter comme tout serveur, y excuter des requtes SQL, etc. Pour davantage dinformations sur le composant DataStore, voir JDataStore et JBuilder, page 2-13, dans ce manuel, et le Guide du dveloppeur JDataStore.

DataStore

Le stockage et la mise en cache des composants StorageDataSet dans un DataStore seffectuent grce la dfinition de deux proprits du StorageDataSet : store et storeName. Par dfaut, quand la proprit store nest pas dfinie, tous les StorageDataSet utilisent un MemoryStore. Actuellement MemoryStore et DataStore sont les seules implmentations possibles de la proprit store. La proprit storeName contient le nom unique associ ce StorageDataSet dans DataStore.

2-6

Dveloppement dapplications de bases de donnes

Composants DataExpress

Composant/ ClasseDataStoreDriver

DescriptionDataStoreDriver est le pilote JDBC pour le JDataStore. Le pilote gre laccs local et distant. Ces deux types daccs ncessitent un nom dutilisateur (toute chane sans configuration ncessaire). Le mot de passe peut tre vide si le JDataStore nest pas crypt. Sinon, un mot de passe non nul doit tre fourni. Le composant QueryDataSet stocke le rsultat dune chane de requte excute sur un serveur distant. Ce composant fonctionne avec le composant Database pour se connecter aux bases de donnes dun serveur SQL et pour excuter la requte spcifie avec ou sans paramtres. Lorsque les donnes rsultantes sont stockes dans le composant QueryDataSet, vous pouvez manipuler les donnes en utilisant lAPI duDataSet. Pour davantage dinformations sur ce composant et son utilisation, voir Interrogation dune base de donnes, page 5-2. Le composant ProcedureDataSet contient le rsultat dune procdure stocke excute sur une base de donnes distante. Ce composant fonctionne associ au composant Database de la mme manire que le composant QueryDataSet. Pour plus dinformations sur ce composant et son utilisation, voir Chapitre 6, Utilisation des procdures stockes. Utilisez ce composant pour importer des donnes dun fichier texte. Ce composant tend la classe DataSet. Il simule les fonctionnalits dun serveur SQL sans passer par une connexion avec un serveur SQL. Pour une description dtaille de ce composant et des instructions dutilisation, voir Chapitre 3, Importation et exportation des donnes dun fichier texte, et le tutoriel associ, Chapitre 16, Tutoriel : Importation et exportation des donnes dun fichier texte. Ce composant propose une autre vue des donnes dun objet StorageDataSet existant. Il dispose de sa propre proprit (hrite) sort, ce qui permet une prsentation des donnes dans un ordre diffrent. Il dispose galement de fonctionnalits de tri et de navigation indpendantes de son StorageDataSet associ. Pour une description dtaille de ce composant et des instructions dutilisation, voir Prsentation de plusieurs vues des donnes, page 12-23.

Proprits couramment utilises

QueryDataSet

Lobjet QueryDescriptor contient linstruction de la requte SQL, les paramtres de la requte et les informations sur la connexion la base de donnes. On accde cet objet en utilisant la proprit query.

ProcedureDataSet

Lobjet ProcedureDescriptor contient linstruction SQL, les paramtres, le composant base de donnes et dautres proprits. On accde cet objet via la proprit procedure du composant ProcedureDataSet.

TableDataSet

La proprit (hrite) dataFile spcifie le nom de fichier dans lequel se trouve les donnes charger dans lensemble de donnes et dans lequel les enregistrer.

DataSetView

La proprit storageDataSet indique le composant contenant les donnes dont le DataSetView prsente une vue.

Les applications de bases de donnes JBuilder

2-7

Composants DataExpress

Composant/ ClasseColonne

DescriptionUn objet colonne reprsente la collection de toutes les lignes dun lment de donnes particulier, par exemple toutes les valeurs du champ Nom dune table. Une colonne obtient ses valeurs quand un ensemble de donnes est instanci ou comme rsultat dun calcul. Lobjet Column est gr par son composant StorageDataSet. Pour une description dtaille de ce composant et des instructions dutilisation, voir Chapitre 7, Manipulation des colonnes.

Proprits couramment utilisesIl est pratique de dfinir des proprits au niveau de la colonne afin que le paramtrage de toute la colonne de donnes soit dfini en une seule fois, par exemple la fonte (font). Les outils de conception de JBuilder permettent daccder aux proprits de colonne en double-cliquant sur un StorageDataSet dans le volet contenu, puis en slectionnant la colonne sur laquelle vous voulez travailler. Les proprits et les vnements du composant Column slectionn apparaissent soit dans le concepteur de colonne (proprits uniquement), soit dans linspecteur, et peuvent tre modifis dans lun ou dans lautre.

DataRow

Le composant DataRow est une collection de toutes les donnes des colonnes pour une seule ligne, en considrant que chaque ligne contient un enregistrement dinformations complet. Le composant DataRow utilise les mmes colonnes que le DataSet avec lequel il a t construit. Les noms des colonnes dans un DataRow sont des noms de champ. Un composant DataRow est pratique utiliser pour comparer les valeurs de deux lignes ou pour rechercher des donnes dans un DataSet. Il peut tre utilis dans toutes les mthodes de DataSet qui attendent un ReadRow ou un ReadWriteRow. Le composant ParameterRow possde une Column pour chaque colonne de lensemble de donnes associ que vous pouvez vouloir dans la requte. Placez les valeurs qui devront tre utilises par la requte dans le ParameterRow et associez-les la requte par les noms de leurs paramtres (qui sont les noms des colonnes ParameterRow). Pour une description dtaille de ce composant et des instructions dutilisation, voir Utilisation de requtes paramtres pour obtenir des donnes dune base de donnes, page 5-12.

ParameterRow

2-8

Dveloppement dapplications de bases de donnes

Composants DataExpress pour EJB

Composant/ ClasseDataModule

DescriptionDataModule est une interface du paquet com.borland.dx.dataset. Une classe qui implmente DataModule sera reconnue par le concepteur JBuilder comme une classe contenant divers composants dataset groups en un modle de donnes. Pour crer un module de donnes vide, double-cliquez sur licne Module de donnes dans la galerie dobjets (Fichier|Nouveau). En utilisant ensuite la palette des composants et le volet contenu, vous pouvez y placer divers objets dataset et dfinir des connexions, des requtes, des tris ou la logique de rgles de gestion personnalises. Les modules de donnes simplifient la rutilisation et le partage de collections de composants dataset. Par exemple, plusieurs classes dinterface utilisateur dune application peuvent utiliser une instance partage dun module de donnes personnalis. Pour une description dtaille de ce composant et des instructions dutilisation, voir Chapitre 10, Utilisation des modules de donnes pour simplifier laccs aux donnes.

Proprits couramment utilises

Il y a dans les paquets com.borland.dx.dataset, com.borland.dx.sql.dataset et com.borland.datastore de nombreux composants et classes, ainsi que des classes utilitaires dans dautres paquets comme les paquets util ou view. Vous trouverez des informations dtailles sur les paquets et les classes de la bibliothque DataExpress dans la Rfrence de la bibliothque des composants DataExpress.

Composants DataExpress pour EJBLe paquet DataExpress pour EJB, com.borland.dx.ejb contient les composants DataExpress pour EJB. Ces composants permettent dacqurir des donnes partir de beans entit EJB dans des ensembles de donnes DataExpress, puis deffectuer la rsolution des modifications apportes aux ensembles de donnes dans les beans entit. Le paquet DataExpress pour EJB nest pas trait dans ce manuel. Pour davantage dinformations sur lutilisation de composants appartenant au paquet DataExpress pour EJB afin de dvelopper des applications dentreprise orientes donnes, voir Utilisation de DataExpress pour les composants EJB dans Dveloppement des Enterprise JavaBeans. Pour les informations de rfrence, reportez-vous la documentation API du paquet com.borland.dx.ejb.

Les applications de bases de donnes JBuilder

2-9

InternetBeans Express

InternetBeans ExpressLe paquet InternetBeans Express, com.borland.internetbeans, fournit des composants et une bibliothque de balises JSP, permettant de gnrer la couche prsentation dune application web, et dy rpondre. La paquet InternetBeans Express nest pas trait dans ce manuel. Pour davantage dinformations sur lutilisation de composants appartenant au paquet InternetBeans Express afin de dvelopper des applications JSP et servlets orients donnes, voir InternetBeans Express dans le Guide du dveloppeur dapplications web. Pour les informations de rfrence, reportez-vous la documentation API du paquet com.borland.internetbeans.

Composants de bases de donnes XMLLes composants de bases de donnes XML de JBuilder supportent le dveloppement des applications de bases de donnes XML. Les composants peuvent tre ajouts depuis la page XML de la palette de composants dans le concepteur dinterface utilisateur. Il existe des composants bass sur des modles et des composants bass sur des templates. Les composants bass sur des modles utilisent un document daffectation qui dtermine la faon dont les donnes sont transfres entre une structure XML et les mtadonnes dune base de donnes. Pour utiliser des composants bass sur des templates, vous fournissez une instruction SQL et le composant gnre un document XML. Linstruction SQL fournie sert de template remplac dans le document XML en tant que rsultat de lapplication du template. Lutilisation des composants de bases de donnes XML nest pas traite dans ce manuel. Pour plus dinformations, voir Utilisation des composants de bases de donnes XML de JBuilder dans le Guide du dveloppeur XML. Pour les informations de rfrence, reportez-vous la documentation API des paquets com.borland.jbuilder.xml.database.common, com.borland.jbuilder.xml.database.template, com.borland.jbuilder.xml.database.xmldbms.

dbSwingLe paquet dbSwing permet de concevoir une application de base de donnes tirant profit de larchitecture des composants Swing Java. En plus de sous-classes orientes donnes prdfinies pour la plupart des composants Swing, dbSwing propose galement divers composants utilitaires conus spcifiquement pour le dveloppement dapplication utilisant DataExpress et JDataStore.

2-10

Dveloppement dapplications de bases de donnes

dbSwing

Pour crer une application de base de donnes, vous devez tout dabord la connecter une base de donnes et alimenter en donnes un ensemble de donnes. La section Accs aux donnes des exemples, page 11-2, permet de dfinir une requte utilisable comme point de dpart pour la cration dune application de base de donnes et dune interface utilisateur lmentaire. Pour utiliser les composants dbSwing orients donnes,

1 Ouvrez le fichier Cadre puis slectionnez longlet Conception. 2 Slectionnez un des onglets dbSwing : dbSwing, dbSwing supplmentaires ou Modles dbSwing. 3 Cliquez sur un composant de la palette puis cliquez dans le concepteur dinterface utilisateur afin de placer le composant dans lapplication. 4 Slectionnez le composant dans larborescence des composants ou dans le concepteur dinterface utilisateur.Selon le type de composant et la valeur de la proprit layout du contentPane contenant le composant, le concepteur affiche des poignes de redimensionnement de couleur noire sur les bords du composant. Certains composants (JdbNavToolBar et JdbStatusLabel) se lient automatiquement aux donnes ayant la focalisation. Pour dautres (comme JdbTable), initialisez leurs proprits dataSet et/ou columnName dans linspecteur afin de les lier un DataSet instanci. La liste suivante contient quelques composants dbSwing disponibles depuis la page dbSwing de la palette de composants : TableScrollPane JdbTable JdbNavToolBar JdbStatusLabel JdbTextArea JdbComboBox JdbLabel JdbList JdbTextPane JdbTextField

dbSwing offre des avantages significatifs par rapport Swing grce des fonctionnalits amliores et une orientation donnes. De plus, dbSwing est totalement lger, fournit une prise en charge de lapparence pour plusieurs plates-formes et se conforme aux normes Swing. En utilisant des composants dbSwing, vous tes sr que tous vos composants sont compacts. Pour plus dinformations sur le paquet dbSwing, consultez la documentation API dbSwing.

Les applications de bases de donnes JBuilder

2-11

Modules de donnes et modeleur de donnes

Modules de donnes et modeleur de donnesLes modules de donnes fournissent un conteneur aux composants daccs aux donnes. Les modules de donnes simplifient le dveloppement des applications de bases de donnes car ils permettent de dcomposer le code en modules et de sparer les rgles de fonctionnement et la logique daccs aux bases de donnes davec la logique de linterface utilisateur de vos applications. Vous pouvez galement garder le contrle sur lutilisation du module de donnes, en fournissant seulement les fichiers classe aux dveloppeurs dapplication. Le Modeleur de donnes est un expert qui aide construire des modules de donnes encapsulant une connexion une base et les requtes excuter sur cette base. Pour plus dinformations sur les modules de donnes et le Modeleur de donnes, voir Chapitre 10, Utilisation des modules de donnes pour simplifier laccs aux donnes.

Pilote de base de donnesLe pilote de base de donnes (Outils|Pilote de base de donnes) est un navigateur de bases de donnes hirarchique, possdant des capacits ddition. Le pilote de base de donnes prsente les mta-informations JDBC des bases de donnes dans une fentre deux volets. Le volet gauche contient une arborescence qui affiche de faon hirarchique un ensemble de bases de donnes et ses tables, vues, procdures stockes et mtadonnes associes. Le volet droit affiche sur plusieurs pages des informations qui dcrivent chaque nud de larborescence. Dans certains cas, il vous est galement possible de modifier les donnes du volet droit. Pour plus dinformations sur le pilote de base de donnes, voir Chapitre 15, Administration dune base de donnes.

Moniteur JDBCLe moniteur JDBC (Outils|Moniteur JDBC) est un outil graphique servant surveiller le trafic JDBC. Le moniteur JDBC suivra tous les pilotes JDBC (cest--dire toute sous-classe de java.sql.Driver ) utiliss par JBuilder. Le moniteur JDBC suit toutes les sorties directement depuis le pilote JDBC. Pour davantage dinformations sur le moniteur JDBC, y compris des instructions dutilisation, voir Surveillance des connexions aux bases de donnes, page 15-11.

2-12

Dveloppement dapplications de bases de donnes

JDataStore et JBuilder

JDataStore et JBuilderJDataStore est une solution de stockage de donnes de faible encombrement, 100% entirement Java. [JDataStore est : Une base de donnes relationnelle incorpore, avec des interfaces JDBC et DataExpress, qui gre des transactions multi-utilisateurs non bloquantes avec rcupration des erreurs. Un stockage objet qui permet de stocker des objets srialiss, des ensembles de donnes et dautres flux de fichier. Un composant JavaBean qui peut tre manipul par des outils de conception visuelle comme JBuilder. Lexplorateur JDataStore visuel, tout-Java, vous permet de grer vos DataStores. Pour davantage dinformations sur lutilisation dun DataStore, voir le Guide du dveloppeur JDataStore.

Utilisation dun JDataStore ou dun pilote JDBCLes avantages configurer une application de base de donnes pour quelle accde un systme de gestion de base de donnes relationnelles avec des pilotes JDBC et configurer lapplication pour quelle utilise JDataStore sont uniques. Les sections suivantes prsentent quelques avantages associs chacune des approches. Vous pouvez utiliser un pilote JDBC pour : Utiliser une API JDBC sappuyant sur les standards Manipuler des donnes SQL dynamiques - vous pouvez utiliser un QueryProvider pour interroger une base de donnes SQL, manipuler des donnes dynamiques et enregistrer les modifications en cas de ncessit Tirer parti de laccs distance avec RemoteJDBCRemarque

JDataStore peut tre utilis avec ou sans pilote JDBC. Dans la majorit des exemples et des tutoriels de ce manuel, JDataStore st utilis avec des pilotes JDBC. Le tutoriel Edition avec le JDataStore hors connexion dans le Guide du dveloppeur JDataStore montre comment utiliser un composant DataStore pour la modification des donnes hors connexion, plutt que dtablir un connexion JDBC un serveur JDataStore. Vous pouvez utiliser un JDataStore pour : Travailler hors connexion - vous pouvez enregistrer et modifier des donnes dans le systme de fichiers JDataStore et rsoudre les modifications lorsque vous vous reconnectez la source de donnes

Les applications de bases de donnes JBuilder

2-13

JDataStore et JBuilder

Stocker des objets ainsi que des donnes Manipuler des ensembles de donnes volumineux

Avantages supplmentaires apports par JDataStoreVous pouvez vouloir utiliser un JDataStore pour une des raisons suivantes : Organisation. Pour organiser les composants StorageDataSet dune application, les fichiers et ltat des objets ou des JavaBean srialiss, laide dun unique stockage persistant, ultra-performant, compact, portable et entirement Java. Rplication de donnes asynchrone. Pour des modles informatiques mobile/hors connexion, les StorageDataSet grent la rsolution/rconciliation des donnes modifies obtenues depuis une source de donnes quelconque (cest--dire JDBC, serveur dapplication, SAP, BAAN, etc.). Applications embarques. Lencombrement du JDataStore est trs rduit. Les composants StorageDataSet procurent galement un excellent support de la liaison de donnes pour les composants dinterface utilisateur orients donnes. Performance. Pour amliorer les performances et conomiser la mmoire pour des StorageDataSet volumineux. Avec un petit nombre de lignes de donnes, les composants StorageDataSet utilisant le MemoryStore offrent un lger gain de performance par rapport au DataStore. DataStore stocke les donnes et index dun StorageDataSet dans un format trs compact. Ds que le nombre de lignes dun StorageDataSet augmente, un StorageDataSet utilisant un DataStore offre de meilleurs performances et ncessite beaucoup moins de mmoire quun StorageDataSet utilisant un MemoryStore. Pour davantage dinformations sur lutilisation des JDataStore, voir le Guide du dveloppeur JDataStore.

Utilisation de lexplorateur JDataStoreEn utilisant lexplorateur JDataStore, vous pouvez : Examiner le contenu dun DataStore. Le rpertoire du stockage est affich dans un contrle arborescence, chaque ensemble de donnes

2-14

Dveloppement dapplications de bases de donnes

JDataStore et JBuilder

tant regroup avec ses index. Quand un flux de donnes est slectionn dans larborescence, son contenu est affich (dans la mesure ou lexplorateur peut afficher son contenu : fichier texte, .gif ou ensemble de donnes). Effectuer des oprations sur le stockage sans crire de code. Vous pouvez crer un nouveau JDataStore, importer des fichiers texte dlimit dans un ensemble de donnes, importer des fichiers dans des flux de fichier, supprimer des index et des ensembles de donnes ou vrifier lintgrit du JDataStore. Grer les requtes qui fournissent des donnes aux ensembles de donnes du stockage, modifier les ensembles de donnes et enregistrer les modifications dans les tables dun serveur. Utilisez la commande Outils|Explorateur JDataStore pour dmarrer lexplorateur JDataStore.Figure 2.2 Explorateur JDataStore

Oprations avec lexplorateur JDataStorePour crer un nouveau JDataStore,

1 Ouvrez lexplorateur JDataStore en choisissant Outils|Explorateur JDataStore. 2 Choisissez Fichier|Nouveau ou cliquez sur le bouton Nouveau JDataStore. 3 Entrez le nom du nouveau stockage et choisissez OK. Le stockage est cr et ouvert dans lexplorateur.Pour importer un fichier texte dans un ensemble de donnes,

1 Choisissez Outils|Importer|Texte vers table.

Les applications de bases de donnes JBuilder

2-15

InterBase et JBuilder

2 Spcifiez le nom du fichier texte en entre et le nom dans le stockage de lensemble de donnes crer.Le contenu du fichier texte doit tre au format dlimit dans lequel JBuilder exporte et il doit y avoir dans le rpertoire un fichier SCHEMA (.schema) portant le mme nom pour dfinir la structure de lensemble de donnes destination (pour crer un fichier .schema, voir Exportation des donnes, page 3-3). Le nom de stockage par dfaut est celui du fichier dentre, y compris lextension. Comme cette opration cre un ensemble de donnes et non un flux de fichier, il est prfrable domettre lextension dans le nom de stockage.

3 Cliquez sur OK.Pour importer un fichier dans un flux de fichier,

1 Choisissez Outils|Importer|Fichier. 2 Fournissez un nom de fichier dentre et le nom de stockage. Cliquez sur OK.Pour vrifier lintgrit du JDataStore ouvert, choisissez Outils|Vrifier le JDataStore ou cliquez sur le bouton Vrifier le JDataStore. La totalit du stockage est vrifie et le rsultat est affich dans la fentre Historique du vrificateur. Une fois la fentre historique ferme, vous pouvez la rafficher en choisissant Voir|Historique du vrificateur. Pour davantage dinformations sur lutilisation de lExplorateur JDataStore, voir, dans le Guide du dveloppeur JDataStore, Administration de JDataStore.

InterBase et JBuilderBorland InterBase est une base de donnes relationnelles conforme aux standards SQL haute performance et interplate-forme. InterBase inclut sa propre version de la base de donnes employee, employee.gdb, afin que vous utilisiez facilement InterBase au lieu de JDataStore dans les exemples et les tutoriels. Pour plus dinformations sur la configuration dInterBase et dInterClient pour leur utilisation dans les tutoriels, voir Connexion une base de donnes en utilisant des pilotes JDBC InterClient, page 4-13. Pour davantage dinformations sur InterBase ou pour tlcharger une version dessai gratuite, voir le site web de Borland, ladresse http://www.borland.fr/interbase/index.html.

2-16

Dveloppement dapplications de bases de donnes

Chapitre

3

Importation et exportation des donnes dun fichier texteChapitre3

Dans JBuilder, un composant TableDataSet permet de stocker les donnes importes dun fichier texte. Une fois les donnes fournies lensemble de donnes, il est possible de les visualiser et de les modifier. Pour r-enregistrer les modifications dans le fichier texte, r-exportez-les dans le fichier texte. Pour importer les donnes dun fichier texte, utilisez un composant TextDataFile pour spcifier lemplacement du fichier texte et les paramtres spcifiques sa structure. Utilisez un StorageDataSet, par exemple un composant TableDataSet, pour stocker localement les donnes afin de les consulter et de les modifier. Crez des objets Column afin que le composant TableDataSet connaisse le type de donnes et le nom de champ pour chaque colonne de donnes. Pour dfinir les colonnes dun composant TableDataSet, ajoutez des colonnes dans la fentre Source, utilisez le concepteur dinterface utilisateur ou chargez un fichier texte disposant dun fichier SCHEMA (.schema) valide. Cette section dcrit les deux premires possibilits. Limportation des donnes en utilisant un fichier SCHEMA existant est traite par le Chapitre 16, Tutoriel : Importation et exportation des donnes dun fichier texte. Votre fichier texte ne dispose dun fichier SCHEMA valide que sil a t pralablement export par JBuilder. Cette section traite les sujets suivants : Ajout de colonnes un TableDataSet en utilisant lditeur Importation des donnes formates dun fichier texte Rcupration de donnes dune source JDBC Exportation des donnes

Importation et exportation des donnes dun fichier texte

3-1

Ajout de colonnes un TableDataSet en utilisant lditeur

Ajout de colonnes un TableDataSet en utilisant lditeurIl est possible dajouter des colonnes au TableDataSet de deux manires : visuellement dans le concepteur dinterface utilisateur ou avec du code dans lditeur de longlet Source. Lajout de colonnes dans le concepteur dinterface utilisateur est trait dans le Chapitre 16, Tutoriel : Importation et exportation des donnes dun fichier texte. Si vous avez dj export vers un fichier texte, JBuilder a cr un fichier SCHEMA qui indique les dfinitions de colonnes quand le fichier texte est ouvert et il nest pas ncessaire dajouter manuellement des colonnes. Pour ajouter des colonnes en utilisant lditeur, dfinissez de nouveaux objets Column dans la dfinition de classe de Cadre1.java, de la manire suivante :

1 Slectionnez Cadre1.java dans le volet contenu, puis slectionnez longlet Source. La dfinition de classe est affiche dans la fentre Source. Ajoutez les lignes de code suivantes :Column column1 = new Column(); Column column2 = new Column();

2 Trouvez la mthode jbInit() dans le code source. Dfinissez le nom de la colonne et le type des donnes qui sont stockes dedans, de la manire suivante :column1.setColumnName("my_number"); column1.setDataType(com.borland.dx.dataset.Variant.SHORT); column2.setColumnName("my_string"); column2.setDataType(com.borland.dx.dataset.Variant.STRING);

3 Ajoutez les nouvelles colonnes au TableDataSet dans la mme fentre source et dans la mme mthode jbInit(), de la manire suivante :tableDataSet1.setColumns(new Column[] { column1,column2 } );

4 Compilez lapplication pour lier les nouveaux objets Column lensemble de donnes, puis ajoutez tout composant visuel adquat.

Importation des donnes formates dun fichier texteLes donnes dune colonne dun fichier texte peuvent tre formates pour lexportation des donnes de telle manire quil nest pas possible de les importer correctement. Ce problme peut tre rsolu en spcifiant le modle utiliser pour lire les donnes dans la proprit exportDisplayMask. La proprit exportDisplayMask est utilise pour importer des donnes lorsquil ny a pas de fichier SCHEMA associ au fichier texte. Sil existe un fichier SCHEMA, ses paramtres ont la priorit. La syntaxe des modles est dfinie dans Modles bass sur des chanes (masques), dans la Rfrence de la bibliothque de composants DataExpress.

3-2

Dveloppement dapplications de bases de donnes

Rcupration de donnes dune source JDBC

Les colonnes date et numriques ont des modles daffichage et de modification par dfaut. Si vous ne dfinissez pas ces proprits, des modles de saisie par dfaut sont utiliss. Les modles par dfaut proviennent du fichier java.text.resources.LocaleElements qui correspond aux valeurs locales par dfaut des colonnes. Si la localisation de la colonne nest pas spcifie, la localisation de lensemble de donnes est utilise. Si la localisation de lensemble de donnes nest pas dfinie, la localisation par dfaut du systme est utilise. Laffichage dun nombre virgule flottante comprend par dfaut trois chiffres aprs la virgule. Si vous voulez plus de dcimales, spcifiez un masque.

Rcupration de donnes dune source JDBCLe code suivant est un exemple de rcupration de donnes depuis une source de donnes JDBC vers un TextDataFile. Une fois que les donnes sont dans un TextDataFile, vous pouvez utiliser un StorageDataSet, par exemple un composant TableDataSet, pour stocker les donnes en local afin de les visualiser ou de les modifier. Pour davantage dinformations sur la faon de la faire, voir Chapitre 16, Tutoriel : Importation et exportation des donnes dun fichier texte.Database db = new Database(); db.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:oracle:thin:@" + datasource, username, password)); QueryDataSet qds = new QueryDataSet(); qds.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(db, "SELECT * FROM THETABLE", null, true, Load.ALL)); TextDataFile tdf = new TextDataFile(); tdf.setFileName("THEDATA.TXT"); tdf.save(qds);

Ce code produit un fichier de donnes et le fichier SCHEMA associ. Vous pouvez utiliser ce type daccs aux donnes pour crer une application de sauvegarde et de restauration dune table de base de donnes qui fonctionne depuis la ligne de commande. Pour enregistrer les informations en retour dans la source de donnes JDBC, voir Enregistrement dans une source de donnes JDBC des modifications charges depuis un TextDataFile, page 3-5.

Exportation des donnesLexportation de donnes, ou lenregistrement de donnes dans un fichier texte, enregistre toutes les donnes de la vue en cours dans un fichier texte, en remplaant les donnes existantes. Cette section prsente plusieurs manires dexporter les donnes. Vous pouvez rexporter des donnes,

Importation et exportation des donnes dun fichier texte

3-3

Exportation des donnes

qui ont t importes depuis un fichier texte, dans ce fichier ou dans un autre fichier. Vous pouvez exporter les donnes dun QueryDataSet ou dun ProcedureDataSet dans un fichier texte. Il est galement possible de rsoudre les donnes dun TableDataSet dans une table SQL existante. Lexportation des donnes dans un fichier texte est gre diffremment de la rsolution dans une table SQL. QueryDataSet et TableDataSet sont des composants StorageDataSet. Quand des donnes sont fournies lensemble de donnes, le StorageDataSet surveille les informations dtat des lignes (supprime, insre ou modifie) pour toutes les lignes. Quand les donnes sont rsolues dans une source de donnes comme un serveur SQL, les informations dtat des lignes sont utilises pour dterminer comment les lignes sont ajoutes, retires ou modifies dans la table SQL. Quand une ligne a t correctement rsolue, elle passe ltat rsolue (RowStatus.UPDATE_RESOLVED, RowStatus.DELETE_RESOLVED ou RowStatus.INSERT_RESOLVED). Si le StorageDataSet est une nouvelle fois rsolu, les lignes dj rsolues ne sont pas prises en compte, sauf si des modifications leur ont t apportes depuis la prcdente rsolution. Quand des donnes sont exportes dans un fichier texte, toutes les donnes de la vue en cours sont crites dans un fichier texte et les informations dtat des lignes ne sont pas modifies. Lexportation des donnes dans un fichier texte prend en compte les critres de tri et de filtre en cours. Si un critre de tri est spcifi, les donnes sont enregistres dans le fichier texte dans lordre spcifi par le critre de tri. Si lordre des lignes est important, retirez le critre de tri avant dexporter les donnes. Si un critre de filtre est spcifi, seules les donnes vrifiant le critre de filtre sont enregistres. Cela est utile pour enregistrer des sous-ensembles de donnes dans des fichiers distincts, mais cela peut provoquer une perte de donnes si un fichier filtr remplace malencontreusement un fichier de donnes existant.Attention

Retirez les critres de filtre avant denregistrer si vous voulez renregistrer toutes les donnes dans le fichier dorigine.

Exportation des donnes dun QueryDataSet dans un fichier texteLexportation des donnes dun QueryDataSet dans un fichier texte est identique lexportation des donnes dun composant TableDataSet, comme indiqu dans le Chapitre 16, Tutoriel : Importation et exportation des donnes dun fichier texte. JBuilder cre un fichier SCHEMA qui dfinit chaque colonne, son nom et son type de donnes afin que le fichier puisse tre rimport plus facilement dans JBuilder.Remarque

Les colonnes BLOB ne sont pas exportes, elles sont ignores lorsque dautres champs sont exports.

3-4

Dveloppement dapplications de bases de donnes

Exportation des donnes

Enregistrement des modifications dun TableDataSet dans une table SQLUtilisez un objet QueryResolver pour rsoudre les modifications dans une table SQL. Pour davantage dinformations sur lutilisation de QueryResolver pour enregistrer des modifications dans une table SQL, voir Personnalisation de la logique de rsolution par dfaut, page 8-16. Avant de rsoudre les modifications dans une table SQL, dfinissez le nom de la table et les noms des colonnes de la table SQL, comme lindique lextrait de code suivant. La table SQL et le fichier SCHEMA doivent dj exister. Le fichier SCHEMA applicable au TableDataSet doit correspondre la structure de la table SQL. Les types de donnes variant des colonnes de TableDataSet doivent correspondre aux types JDBC de la table du serveur. Par dfaut, toutes les lignes ont ltat INSERT.tabledataset1.setTableName(string); tableDataSet1.SetRowID(columnName);

Enregistrement dans une source de donnes JDBC des modifications charges depuis un TextDataFilePar dfaut, les donnes sont charges partir dun TextDataFile avec le statut deRowStatus.Loaded. Lappel de la mthode saveChanges() dun QueryDataSet ou dun ProcedureDataSet nenregistrera pas les modifications faites dans un TextDataFile car ces lignes ne sont pas encore considres comme insres. Pour permettre aux modifications dtre enregistres et pour que toutes les lignes charges depuis TextDataFile aient le status INSERTED, dfinissez la proprit TextDataFile.setLoadAsInserted(true). Dsormais, quand la mthode saveChanges() dun QueryDataSet ou dun ProcedureDataSet sera appele, les donnes seront enregistres par retour dans la source de donnes. Pour davantage dinformations sur l