RAD Studio pour - Product Documentation -...

230
RAD Studio pour .NET Copyright© 2008 CodeGear™. Tous droits réservés.

Transcript of RAD Studio pour - Product Documentation -...

Page 1: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

RAD Studio pour .NET

Copyright© 2008 CodeGear™. Tous droits réservés.

Page 2: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants
Page 3: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Sommaire

Concepts 1Développement d'applications de bases de données avec ADO.NET 3

Présentation de AdoDbx Client 6

Technologies de bases de données VCL pour .NET 7

Présentation de la mise en pool des connexions BDP 8

Présentation des composants dbExpress 9

Présentation des composants dbGo 10

Types de données AdoDbx.NET 11

Présentation de ADO.NET 14

Présentation de la migration BDP 17

Présentation de Blackfish SQL 20

Concepteurs de composants ADO.NET 22

Déploiement d'applications de bases de données pour le .NET Framework 26

Fournisseurs de données pour Microsoft .NET 27

Présentation des procédures stockées 30

Framework dbExpress 31

Compatibilité du framework dbExpress 33

Introduction à InterBase Express 34

Développement d'applications avec du code non managé 40

Utilisation de l'interopérabilité COM dans les applications managées 40

Utilisation de DrInterop 45

Déploiement des applications Interop COM 46

Utilisation de Platform Invoke avec Delphi pour .NET 46

Interfaces de bibliothèques virtuelles 54

Modélisation 57

Présentation de la visualisation de code 57

Développement d'états pour les applications .NET 59

Utilisation de Rave Reports dans RAD Studio 59

Développement d'applications avec des composants VCL.NET 61

Modifications requises en raison du support 64 bits .NET 2.0 62

Problèmes de langage au sujet du portage d'applications VCL vers RAD Studio 63

Portage d'applications VCL 74

Présentation de VCL pour .NET 76

Portage de clients de services Web 79

RAD Studio pour .NET

iii

Page 4: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Développement d'applications Web avec ASP.NET 82

Présentation de ASP.NET 84

Présentation des contrôles DB Web CodeGear 87

Utilisation de contrôles DB Web dans les applications maître-détail 89

Présentation de l'API de navigation des contrôles DB Web 91

Présentation de l'expert des contrôles DB Web 92

Utilisation de fichiers XML avec des contrôles DB Web 98

Utilisation des vues de données 100

Déploiement d'applications ASP.NET 101

Utilisation des interfaces WebDataLink 102

Développement de services Web avec ASP.NET 104

Présentation des services Web ASP.NET 104

Pile de protocole de services Web 107

Gestion des services Web ASP.NET 109

Procédures 111Procédures de bases de données 112

Ajout d'une nouvelle connexion à l'explorateur de données 114

Ajout d'un dialogue Erreur de conciliation BDP à votre application BDP 114

Exploration d'une base de données dans l'explorateur de données 116

Connexion à AdoDbx Client 117

Création de projets de base de données dans l'explorateur de données 118

Création de mappages de tables 119

Exécution SQL dans l'explorateur de données 120

Gestion des erreurs dans le mappage de table 121

Migration de données entre des bases de données 122

Modification des connexions dans l'explorateur de données 123

Modification des connexions de bases de données 124

Construction d'une application de base de données résolvant plusieurs tables 130

Passage de paramètres dans une application de base de données 132

Utilisation de la prévisualisation d'adaptateur de données 134

Utilisation de l'éditeur de texte de commande 135

Utilisation du concepteur adaptateur de données 136

Utilisation du concepteur éditeur de connexion 136

Utilisation des ensembles de données standard 137

Utilisation d'ensembles de données typés 141

Connexion à une base de données à l'aide du framework de pilote dbExpress 143

Construction d'une application de base de données distribuée 144

RAD Studio pour .NET

iv

Page 5: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Procédures d'applications interopérables 148

Ajout d'une référence J2EE 148

Ajout d'une référence à un serveur COM 148

Procédures de modélisation 150

Exportation d'un diagramme de visualisation de code en image 150

Importation et exportation d'un modèle avec XMI (XML Metadata Interchange) 151

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code 152

Utilisation de la fenêtre Vue globale 153

Procédures VCL pour .NET 155

Construction d'applications Fiches VCL avec graphiques 158

Construction d'une application Fiches VCL.NET de base de données ADO.NET 158

Construction d'une application Fiches VCL 160

Création d'actions dans une application Fiches VCL 160

Construction d'une application Fiches VCL Hello World 162

Utilisation de ActionManager pour créer des actions dans une application Fiches VCL 163

Conception d'une application Fiches VCL de bases de données dbExpress.NET 164

Construction d'une application avec des composants XML 165

Modifications requises en raison du support 64 bits .NET 2.0 167

Création d'un nouveau composant VCL .NET 170

Affichage d'une image bitmap dans une application Fiches VCL 171

Dessin de rectangles et d'ellipses dans une application Fiches VCL 172

Dessin d'un rectangle arrondi dans une application Fiches VCL 173

Dessin de lignes droites dans une application Fiches VCL 173

Insertion d'une image bitmap dans un contrôle d'une application Fiches VCL 174

Importation de contrôles .NET dans VCL.NET 176

Procédures ASP.NET 178

Conception d'une application ASP .NET 181

Conception d'une application de bases de données ASP.NET 182

Développement d'une application ASP.NET avec des contrôles de base de données, Partie 1 185

Construction d'une application ASP.NET avec des contrôles de base de données, Partie 2 187

Construction d'une application ASP.NET avec des contrôles de base de données, Partie 3 188

Construction d'une application "Hello World" ASP.NET 189

Construction d'un plan de site ASP .NET 190

Création d'une application de porte-documents avec des contrôles DB Web 194

Construction d'une application avec les contrôles DB Web 195

Conversion d'éléments HTML en contrôles serveur 196

Création d'un fichier XML pour des contrôles DB Web 197

RAD Studio pour .NET

v

Page 6: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Création de métadonnées pour un ensemble de données 199

Création d'un répertoire virtuel 200

Ajout de valeurs agrégées avec DBWebAggregateControl 200

Débogage et mise à jour d'applications ASP.NET 201

Déploiement d'une application ASP.NET avec Blackfish SQL vers un système sans RAD Studio 202

Génération de messages HTTP dans ASP.NET 203

Liaison de colonnes dans un contrôle DBWebGrid 203

Définition de permissions pour l'utilisation de fichiers XML 204

Dépannage d'applications ASP.NET 205

Utilisation de l'expert Contrôle DB Web 208

Utilisation du gestionnaire de déploiement ASP.NET 208

Utilisation de l'éditeur de balise HTML 211

Gestion de contrôles utilisateur ASP.NET 213

Procédures de services Web 215

Accès à une application de services Web "Hello World" ASP.NET 215

Ajout de références Web dans des projets ASP.NET 217

Construction d'une application de services Web "Hello World" ASP.NET 219

Portage d'une application client de services Web Delphi pour Win32 vers Delphi pour .NET 220

Index e

RAD Studio pour .NET

vi

Page 7: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1 Concepts

Rubriques

Nom Description

Développement d'applications de bases de données avec ADO.NET ( see page 3)

ADO.NET présente un modèle de programmation cohérent pour exposer l'accès aux données dans le .NET Framework. Outre la gestion des composants de connexion MS SQL, Oracle et OLE DB inclus dans le .NET Framework, RAD Studio intègre les fournisseurs de données pour .NET (fournisseur AdoDbxClient). AdoDbx gère l'accès à MS SQL, Oracle, DB2 et Interbase. Les concepteurs de composants AdoDbx simplifient la génération et la configuration des composants AdoDbx. Si vous développez de nouvelles applications Fiches VCL pour le .NET Framework ou si vous migrez des applications Fiches VCL Win32 existantes vers le .NET Framework, RAD Studio assure une prise... suite ( see page 3)

Développement d'applications avec du code non managé ( see page 40) RAD Studio permet d'exploiter les fonctionnalités .NET supportant le code non managé. Si vous avez des composants COM ou ActiveX que vous souhaitez utiliser avec le .NET Framework, vous pouvez employer les possibilités de COM Interop .NET depuis RAD Studio lors de la construction de vos applications.

Modélisation ( see page 57)

Développement d'états pour les applications .NET ( see page 59) RAD Studio est livré avec Rave Reports de Nevrona. A l'aide des composants d'états, vous pouvez construire des états complets pour vos applications. Vous pouvez construire des solutions incluant des fonctionnalités de génération d'états, qui pourront être utilisées et personnalisées par vos clients.

Développement d'applications avec des composants VCL.NET ( see page 61) VCL.NET est un ensemble étendu des composants VCL qui permettent de construire rapidement des applications avancées dans Delphi. Avec VCL.NET, vous pouvez fournir vos applications et composants VCL Delphi aux utilisateurs de Microsoft .NET Framework. Grâce à RAD Studio, vous disposez des avantages du .NET Framework, mais aussi de la convivialité et de la puissance des outils Delphi de développement d'applications orientées composants. RAD Studio fournit différents types d'applications : vous pouvez créer des applications Fiche VCL.NET exécutables sur le .NET Framework, qui utilisent des composants et des contrôles VCL.NET ; vous pouvez créer des applications .NET qui utilisent les contrôles .NET... suite ( see page 61)

Développement d'applications Web avec ASP.NET ( see page 82) ASP.NET est le modèle de programmation qui permet de concevoir des applications Web en utilisant .NET Framework. Cette section fournit l'arrière-plan conceptuel de construction des applications ASP.NET avec RAD Studio. Outre la gestion des composants d'accès aux données du .NET Framework, RAD Studio inclut les contrôles DB Web. Les contrôles DB Web fonctionnent avec les fournisseurs .NET Framework et les fournisseurs de données Borland pour .NET (BDP.NET) pour accélérer le développement d'applications Web.

1 RAD Studio pour .NET

1

1

Page 8: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Développement de services Web avec ASP.NET ( see page 104) Les services web constituent une entité programmable qui fournit un élément de fonctionnalité particulier, tel que la logique d'une application. Grâce aux standards Internet, tels que XML et HTTP, les services web sont accessibles à un grand nombre de systèmes potentiellement différents. Les applications conçues avec des services Web ASP.NET peuvent être des applications autonomes ou des sous-composants d'applications web plus importantes, et elles peuvent proposer des composants application à des systèmes distribués en utilisant des messages à base de XML. RAD Studio offre plusieurs méthodes pour vous aider à concevoir, à déployer et à utiliser des applications avec des... suite ( see page 104)

RAD Studio pour .NET 1

2

1

Page 9: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.1 Développement d'applications de bases de données avec ADO.NET

ADO.NET présente un modèle de programmation cohérent pour exposer l'accès aux données dans le .NET Framework. Outre lagestion des composants de connexion MS SQL, Oracle et OLE DB inclus dans le .NET Framework, RAD Studio intègre lesfournisseurs de données pour .NET (fournisseur AdoDbxClient). AdoDbx gère l'accès à MS SQL, Oracle, DB2 et Interbase. Lesconcepteurs de composants AdoDbx simplifient la génération et la configuration des composants AdoDbx.

Si vous développez de nouvelles applications Fiches VCL pour le .NET Framework ou si vous migrez des applications FichesVCL Win32 existantes vers le .NET Framework, RAD Studio assure une prise en charge continue des technologies de bases dedonnées Delphi existantes, comme dbExpress et dbGo.

Cette section inclut des informations conceptuelles concernant l'utilisation de RAD Studio avec l'architecture ADO.NET, ainsique les technologies de base de données VCL pour .NET et comment construire un simple projet ADO.NET.

Rubriques

Nom Description

Présentation de AdoDbx Client ( see page 6) AdoDbx Client implémente un fournisseur ADO.NET 2.0 pour tous les pilotes dbExpress version 4 qui implémentent les dernières métadonnées étendues ajoutées à dbExpress 4. Tous les pilotes dbExpress livrés avec Delphi implémentent les nouvelles métadonnées étendues.AdoDbx Client est une implémentation des classes fournisseur ADO.NET 2.0. Le fournisseur ADO.NET est un ensemble de classes qui fournissent des services de base de données pour .NET. Il fournit un accès aux bases de données relationnelles, aux données d'application et XML. Vous pouvez l'utiliser pour développer des applications de base de données frontales, ainsi que des applications métier multi-niveaux.Pour de plus amples... suite ( see page 6)

Technologies de bases de données VCL pour .NET ( see page 7) Dans la plupart des cas, le fournisseur AdoDbxClient offre la meilleure solution de connectivité de base de données pour vos applications .NET. Toutefois, si vous développez de nouvelles applications Fiches VCL pour le .NET Framework ou si vous migrez des applications Win32 Fiches VCL existantes vers le .NET Framework, RAD Studio continue d'assurer la prise en charge des technologies Delphi existantes.RAD Studio permet d'effectuer une migration entre les technologies de bases de données Delphi strictement exécutées sur des clients Win32 et le .NET Framework. Outre la possibilité de construire de nouvelles applications de base de données avec ADO.NET, vous... suite ( see page 7)

Types de données AdoDbx.NET ( see page 11) Les types de données AdoDbx Client correspondent à des types logiques .NET. Selon la base de données, les types de données AdoDbx Client sont associés à des types de données natifs. Quand c'est possible, AdoDbx Client propose :

• Une correspondance des types de données cohérente entre bases de données.

• Des types de données logiques correspondant à des types logiques .NET.

Présentation de ADO.NET ( see page 14) ADO.NET est l'environnement de programmation .NET permettant de concevoir des applications de bases de données basées sur des formats de données natifs ou des données XML. ADO.NET est conçu comme un stockage de données dorsal pour tous les modèles de programmation Microsoft .NET, y compris les Web Forms et les services Web. Utilisez ADO.NET pour gérer les données dans .NET Framework. Remarque: BDP.NET est basé sur ADO.NET 1.1. AdoDbx Client est basé sur .NET 2.0. CodeGear propose des outils pour simplifier le développement rapide ADO.NET grâce aux fournisseurs de données AdoDbx Client et Borland pour .NET (BDP.NET). Si vous êtes... suite ( see page 14)

1.1 Développement d'applications de RAD Studio pour .NET

3

1

Page 10: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Présentation de la migration BDP ( see page 17) BDP (Borland Data Provider, Fournisseur de données Borland) étant en cours de dépréciation, n'utilisez pas BDP pour vos nouveaux développements. En revanche, utilisez AdoDbx Client. Cette rubrique décrit les différences et les équivalences entre BDP et AdoDbx Client.En conséquence de la dépréciation de BDP :

• BDP sera retiré du produit dans une future release.

• Il n'y aura pas d'autre développement BDP et seulement un effort de contrôle qualité (QA) minimal. Seuls les bogues critiques seront corrigés.

• Aucune documentation supplémentaire ne sera fournie et la documentation existante n'a pas encore été retirée.

BDP était basé sur ADO.NET 1.1. De nombreuses fonctionnalités... suite ( see page 17)

Présentation de Blackfish SQL ( see page 20) La conception et l'implémentation de Blackfish SQL met l'accent sur les performances de la base de données, l'évolubilité, la facilité d'emploi et une forte adhésion aux standards de l'industrie. Voici quelques fonctionnalités de Blackfish SQL :

• Compatibilité avec les standards de l'industrie

• Niveau d'entrée SQL-92

• Stockage Unicode des données caractère

• Support des clés basées sur Unicode pour le tri et l'indexation

• Pilotes dbExpress 4 pour Delphi Win32 et C++

• Fournisseurs ADO.NET 2.0 pour .NET

• JDBC pour Java

• Composants d'accès de données JavaBean pour Java

• Transactions distribuées XA/JTA pour Java

• Performances élevées et évolutivité pour les applications OLTP (demanding online transaction... suite ( see page 20)

Concepteurs de composants ADO.NET ( see page 22) Presque toutes les applications distribuées se ramènent à lire et actualiser des informations dans des bases de données. Les applications que vous développez en utilisant ADO.NET ont des exigences différentes pour manipuler les données. Vous pouvez, par exemple, développer une application qui affiche simplement des données dans une fiche. Ou vous pouvez développer une application qui propose le moyen de partager des informations avec une autre entreprise. Dans tous les cas, vous devez comprendre certains concepts fondamentaux sur l'approche des données dans ADO.NET.En utilisant ces concepteurs, vous pouvez travailler efficacement pour lire, exposer et modifier des données par l'intermédiaire... suite ( see page 22)

Déploiement d'applications de bases de données pour le .NET Framework ( see page 26)

Pour déployer des applications de bases de données avec RAD Studio, copiez les assemblages d'exécution et les DLL de pilotes pour le déploiement à un emplacement spécifié. Les sections suivantes indiquent le nom des assemblages et des DLL et l'emplacement où chacun doit être placé.

RAD Studio pour .NET 1.1 Développement d'applications de

4

1

Page 11: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Fournisseurs de données pour Microsoft .NET ( see page 27) En plus de la prise en charge des fournisseurs inclus dans le .NET Framework, RAD Studio inclut les fournisseurs AdoDbxClient pour Microsoft .NET. AdoDbx Client est une implémentation du .NET Provider et se connecte à un certain nombre de bases de données courantes. Cette rubrique comprend :

• Architecture de fournisseur de données

• Avantages de AdoDbx Client

• AdoDbx Client et les composants ADO.NET

• Fournisseurs AdoDbx Client pris en charge

• Types de données AdoDbx Client

• Interfaces AdoDbx Client

Présentation des procédures stockées ( see page 30) Toutes les bases de données relationnelles présentent certaines caractéristiques communes qui permettent aux applications de stocker et de manipuler les données. Une procédure stockée est un programme autonome écrit dans le langage propre au système de base de données utilisé. En général, une procédure stockée gère les tâches très répétitives sur les bases de données et est particulièrement utile pour les opérations qui s'appliquent à un grand nombre d'enregistrements ou qui utilisent des fonctions statistiques ou mathématiques. Les procédures stockées se trouvent généralement sur le serveur de bases de données.L'appel d'une procédure stockée est similaire à l'appel d'une commande... suite ( see page 30)

Framework dbExpress ( see page 31) Le framework dbExpress (framework DBX) est un ensemble de classes abstraites fournies dans l'unité DBXCommon. Les applications peuvent s'interfacer avec le framework de différentes façons : en utilisant le framework directement pour les applications natives et managées, et en utilisant les composants dbExpress VCL disposés en couches au sommet du framework pour les applications natives et managées.Bien que de nombreuses applications s'interfacent avec les pilotes dbExpress via les composants dbExpress VCL, le framework DBX offre une option utile et légère pour communiquer avec un pilote de base de données. Vous pouvez également créer un pilote de base de données pour... suite ( see page 31)

Compatibilité du framework dbExpress ( see page 33) Certains logiciels dbExpress développés avant le framework de pilote dbExpress (framework de pilote DBX) ont été modifiés pour fonctionner avec le framework de pilote DBX. A cause de ces modifications, certains problèmes de compatibilité se produisent.

Introduction à InterBase Express ( see page 34) InterBase Express (IBX) est un ensemble de composants d'accès aux données qui permet d'accéder à des données de bases de données InterBase. Les composants Administration InterBase, qui requièrent InterBase 6, sont décrits après les composants d'accès aux données InterBase.

1.1.1 Présentation de AdoDbx Client

AdoDbx Client implémente un fournisseur ADO.NET 2.0 pour tous les pilotes dbExpress version 4 qui implémentent lesdernières métadonnées étendues ajoutées à dbExpress 4. Tous les pilotes dbExpress livrés avec Delphi implémentent lesnouvelles métadonnées étendues.

AdoDbx Client est une implémentation des classes fournisseur ADO.NET 2.0. Le fournisseur ADO.NET est un ensemble declasses qui fournissent des services de base de données pour .NET. Il fournit un accès aux bases de données relationnelles,aux données d'application et XML. Vous pouvez l'utiliser pour développer des applications de base de données frontales, ainsique des applications métier multi-niveaux.

Pour de plus amples informations, voir .NET Framework Developer's Guide ADO.NET dans la documentation Microsoft.

Voici les classes clé de l'implémentation AdoDbx Client ADO.NET.

• TAdoDbxCommand. Représente une instruction SQL ou une procédure stockée à exécuter sur une source de données.

• TAdoDbxCommandBuilder. Génère des commandes monotables dans le cadre de l'opération de l'objet

1.1 Développement d'applications de RAD Studio pour .NET Présentation de AdoDbx Client

5

1

Page 12: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

TAdoDbxDataAdapter.

• TAdoDbxConnection. Représente une connexion avec une base de données.

• TAdoDbxDataAdapter. Fait office de pont entre un ensemble de données et la base de données sous-jacente.

• TAdoDbxDataReader. Classe permettant de lire les lignes en avant seulement à partir d'une source de données.

• TAdoDbxParameter. Représente un paramètre transmis vers ou depuis une commande.

• TAdoDbxParameterCollection. Collecte les TAdoDbxParameter dans un objet collection .NET pouvant être lu et manipulé.

• TAdoDbxProviderFactory. Classe de base pour l'implémentation des classes de source de données d'un fournisseur.

• TAdoDbxTransaction. Un groupe de commandes pour une connexion pouvant être validé ou annulé.

Voir aussi

Présentation de ADO.NET ( see page 14)

Guide ADO.NET du développeur .NET Framework (MSDN)

Connexion à AdoDbx Client ( see page 117)

Déploiement de AdoDbx Client

TAdoDbxCommand

TAdoDbxCommandBuilder

TAdoDbxConnection

TAdoDbxDataAdapter

TAdoDbxDataReader

TAdoDbxParameter

TAdoDbxParameterCollection

TAdoDbxProviderFactory

TAdoDbxTransaction

1.1.2 Technologies de bases de données VCL pour .NET

Dans la plupart des cas, le fournisseur AdoDbxClient offre la meilleure solution de connectivité de base de données pour vosapplications .NET. Toutefois, si vous développez de nouvelles applications Fiches VCL pour le .NET Framework ou si vousmigrez des applications Win32 Fiches VCL existantes vers le .NET Framework, RAD Studio continue d'assurer la prise encharge des technologies Delphi existantes.

RAD Studio permet d'effectuer une migration entre les technologies de bases de données Delphi strictement exécutées sur desclients Win32 et le .NET Framework. Outre la possibilité de construire de nouvelles applications de base de données avecADO.NET, vous pouvez faire migrer des applications existantes pour profiter des capacités .NET. Les technologies de bases dedonnées Delphi maintenant gérées par RAD Studio incluent :

• dbExpress.NET

• Client DataSnap .NET (DCOM)

• IBX.NET (InterBase pour .NET)

• ADO.NET

• dbGo

Technologies de bases de données VCL RAD Studio pour .NET 1.1 Développement d'applications de

6

1

Page 13: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Construction d'applications .NET avec dbExpress.NET

RAD Studio inclut une version .NET de dbExpress. Cet ensemble de composants fournit des fonctionnalités comparables àcelles des composants dbExpress pour Win32, mais mises à jour pour fonctionner sur des Fiches VCL dans le .NET Framework.dbExpress pour .NET assure la même prise en charge des clients légers et des ensembles de données unidirectionnels quedans les versions précédentes du produit.

Construction d'applications .NET avec le client DataSnap .NET (DCOM)

RAD Studio permet d'utiliser le client DataSnap (DCOM) pour la connexion aux bases de données dans les applications à troisniveaux.

Construction d'applications .NET avec IBX.NET

Outre l'adaptateur de données BDP.NET standard ou les fournisseurs ADO.NET du .NET Framework, RAD Studio vous permetd'accéder aux bases de données InterBase par le biais de contrôles InterBase Express. Les contrôles IBX.NET vous permettentd'accéder aux tables et ensembles de données, de vous connecter aux bases de données InterBase, etc.

Construction d'applications .NET avec le fournisseur AdoDbxClient

AdoDbx est un mécanisme d'accès aux données pouvant être partagé entre plusieurs applications. AdoDbx définit unepuissante bibliothèque d'appels API qui peuvent créer, restructurer, récupérer des données du serveur, mettre à jour etmanipuler des serveurs de bases de données locaux ou distants. Ado fournit une interface uniforme permettant d'accéder à unegrande variété de serveurs, en utilisant des pilotes pour se connecter aux différentes bases de données.

Vous pouvez connecter vos applications de bases de données RAD Studio à des bases de données prises en charge par leBDE, comme Paradox et dBase.

Construction d'applications .NET avec dbGo

RAD Studio inclut une version .NET de dbGo. Cet ensemble de composants fournit des fonctionnalités comparables à celles descomposants dbGo pour Win32, mais mises à jour pour fonctionner sur des Fiches VCL dans le .NET Framework. dbGo pour.NET assure la même prise en charge des modèles objets puissants et logiques que les versions précédentes du produit.

Rubriques

Nom Description

Présentation de la mise en pool des connexions BDP ( see page 8) Vous pouvez utiliser les options de mise en pool des connexions pour diminuer les temps de connexion. Il vous suffit d'utiliser une des connexions d'un pool existant. Lorsque vous utilisez BDP, toutes les connexions passent par le gestionnaire de pools BDP, même si la mise en pool n'est pas activée pour votre connexion. Pour chaque connexion, vous pouvez spécifier : La mise en pool (activée ou désactivée), les tailles maximale et minimale des pools, la possibilité d'augmenter les demandes de connexion selon la demande, ainsi que le délai de connexion en secondes (ou la durée de vie d'une connexion, en secondes).... suite ( see page 8)

Présentation des composants dbExpress ( see page 9) dbExpress est un ensemble de pilotes de bases de données légers qui permettent d'accéder rapidement aux serveurs de base de données SQL. Pour chaque base de données prise en charge, dbExpress fournit un pilote qui adapte le logiciel serveur à un ensemble d'interfaces dbExpress uniformes. Lorsque vous déployez une application de base de données qui utilise dbExpress, vous pouvez être amené à inclure une bibliothèque de liaison dynamique (le pilote propre au serveur) avec les fichiers d'application que vous créez. Par exemple, DbxClient est un pilote 100% Delphi et ne nécessite pas de DLL.dbExpress vous permet d'accéder aux bases... suite ( see page 9)

Présentation des composants dbGo ( see page 10) dbGo offre aux développeurs un modèle objet puissant et logique pour accéder par programme aux données, les éditer et les mettre à jour à partir d'une grande variété de sources de données par l'intermédiaire d'interfaces système Microsoft ADO. L'utilisation la plus courante de dbGo consiste à envoyer une requête à une ou plusieurs tables d'une base de données relationnelle, pour ensuite récupérer les résultats dans une application et permettre éventuellement aux utilisateurs de modifier les données et de sauvegarder leurs modifications.La couche ADO d'une application ADO comprend la dernière version de Microsoft ADO, un fournisseur OLE DB ou un... suite ( see page 10)

1.1 Développement d'applications de RAD Studio pour .NET Technologies de bases de données VCL

7

1

Page 14: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.1.2.1 Présentation de la mise en pool des connexions BDP Vous pouvez utiliser les options de mise en pool des connexions pour diminuer les temps de connexion. Il vous suffit d'utiliserune des connexions d'un pool existant. Lorsque vous utilisez BDP, toutes les connexions passent par le gestionnaire de poolsBDP, même si la mise en pool n'est pas activée pour votre connexion. Pour chaque connexion, vous pouvez spécifier : La miseen pool (activée ou désactivée), les tailles maximale et minimale des pools, la possibilité d'augmenter les demandes deconnexion selon la demande, ainsi que le délai de connexion en secondes (ou la durée de vie d'une connexion, en secondes).

Comme le montre le diagramme ci-dessus, le gestionnaire de pools BDP crée un pool par chaîne de connexion unique. Lesoptions de connexion disponibles sont les suivantes.

Options Fonction

MinPoolSize Spécifie le nombre minimal de connexions maintenu dans le pool de connexions.

MaxPoolSize Spécifie le nombre maximal de connexions du pool de connexions. Par défaut, 100 est le nombremaximal. Si GrowOnDemand a la valeur False et si MaxPoolSize est atteint, les demandes deconnexion suivantes lèvent une exception.

GrowOnDemand Spécifie si la nouvelle demande de connexion augmente selon la demande lorsque le pool atteint sataille maximale.

Les connexions ajoutées à la demande ne sont pas renvoyées au pool de connexions. Elles sontlibérées lors de leur fermeture par BdpConnection.Close().

ConnectionLifetime(Timeout)

Détermine la durée de vie d'une connexion faisant partie d'un pool. Une connexion renvoyée au poolvoit sa durée de vie vérifiée pour contrôler que le délai d'expiration n'a pas été atteint. S'il a été atteint,la connexion est libérée au lieu d'être renvoyée au pool. La valeur par défaut de ConnectionLifetime,exprimée en secondes, est 0.

1.1.2.2 Présentation des composants dbExpress dbExpress est un ensemble de pilotes de bases de données légers qui permettent d'accéder rapidement aux serveurs de basede données SQL. Pour chaque base de données prise en charge, dbExpress fournit un pilote qui adapte le logiciel serveur à unensemble d'interfaces dbExpress uniformes. Lorsque vous déployez une application de base de données qui utilise dbExpress,vous pouvez être amené à inclure une bibliothèque de liaison dynamique (le pilote propre au serveur) avec les fichiersd'application que vous créez. Par exemple, DbxClient est un pilote 100% Delphi et ne nécessite pas de DLL.

Technologies de bases de données VCL RAD Studio pour .NET 1.1 Développement d'applications de

8

1

Page 15: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

dbExpress vous permet d'accéder aux bases de données à l'aide d'ensembles de données unidirectionnels. Ceux-ci ont étéconçus pour un accès léger et rapide aux informations de la base, avec des temps système réduits. Comme les autresensembles de données, ils peuvent envoyer une commande SQL au serveur de la base de données et, si la commanderetourne un ensemble d'enregistrements, obtenir un lecteur pour accéder à ces enregistrements. Toutefois, les ensembles dedonnées unidirectionnels peuvent uniquement récupérer un lecteur unidirectionnel. Ils ne placent pas les données dans untampon de mémoire, ce qui les rend plus rapides et moins consommateurs de mémoire que les autres types d'ensembles dedonnées. Mais, parce qu'ils ne mettent pas les enregistrements dans un tampon, les ensembles de données unidirectionnelssont moins flexibles que les autres ensembles de données.

Les connexions, les tables, les vues et les procédures stockées dbExpress qui apparaissent dans une vue arborescente dedonnées prennent en charge les glisser-déposer avec les fiches VCL managées et natives.

Chaînes de connexion

Dans dbExpress 4, toutes les propriétés de connexion, y compris ConnectionString, sont transmises au pilote au moment de laconnexion.

La propriété ConnectionString de dbExpress permet de transmettre toutes les options de base de données et toutes lesinformations de connexion (base de données, nom de l'utilisateur, mot de passe) dans une seule et même chaîne de connexion.Cette fonction permet également d'insérer de nouvelles propriétés dans vos pilotes par modification d'interface, sans changer deversion.

Pour charger ConnectionProperties dans dbxconnections.ini pour la connexion en cours, cliquez avec le bouton droit sur laconnexion et sélectionnez l'élément de menu approprié. Ceci crée un élément Parameters (Parameters['ConnectionString'])contenant toutes les propriétés de connexion du fichier .ini. De cette manière, vous ajoutez de nouvelles propriétés au fichierdbxconnections.ini sans avoir à taper vous-même toute la chaîne.

Le menu contextuel SqlConnection propose également la possibilité de supprimer une chaîne de connexion chaque fois que lapropriété ConnectionString est définie.

Composants dbExpress

La section dbExpress de la palette d'outils contient les composants suivants, qui utilisent dbExpress pour accéder auxinformations d'une base de données :

Composant Fonction

TSQLConnection Encapsule une connexion dbExpress à un serveur de base de données

TSQLDataSet Représente n'importe quelles données disponibles via dbExpress ou permet d'envoyer des commandes àune base de données accessible via dbExpress.

TSQLQuery Un ensemble de données de type requête qui encapsule une instruction SQL et permet aux applicationsd'accéder aux enregistrements trouvés, s'il y en a.

TSQLTable Un ensemble de données de type table qui représente toutes les lignes et colonnes d'une table de base dedonnées

TSQLStoredProc Un ensemble de données de type procédure stockée qui exécute une procédure stockée définie sur unserveur de bases de données

TSQLMonitor Intercepte les messages transmis entre un composant connexion SQL et un serveur de base de données,et les enregistre dans une liste de chaînes

TSimpleDataSet Un ensemble de données client qui utilise un TSQLDataSet et un TDataSetProvider internes pourrécupérer des données et appliquer des mises à jour.

Voir aussi

Présentation de VCL pour .NET ( see page 76)

Portage d'applications VCL ( see page 74)

1.1 Développement d'applications de RAD Studio pour .NET Technologies de bases de données VCL

9

1

Page 16: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Déploiement d'applications de bases de données pour le .NET Framework

Conception d'une application Fiches VCL de bases de données dbExpress.NET ( see page 164)

Configuration d'une connexion TSQL

Utilisation de l'explorateur de données pour obtenir des informations de connexion

1.1.2.3 Présentation des composants dbGo dbGo offre aux développeurs un modèle objet puissant et logique pour accéder par programme aux données, les éditer et lesmettre à jour à partir d'une grande variété de sources de données par l'intermédiaire d'interfaces système Microsoft ADO.L'utilisation la plus courante de dbGo consiste à envoyer une requête à une ou plusieurs tables d'une base de donnéesrelationnelle, pour ensuite récupérer les résultats dans une application et permettre éventuellement aux utilisateurs de modifierles données et de sauvegarder leurs modifications.

La couche ADO d'une application ADO comprend la dernière version de Microsoft ADO, un fournisseur OLE DB ou un piloteODBC pour l'accès au stockage de données, le logiciel client propre au système de base de données utilisé (dans le cas desbases de données SQL), un système de base de données dorsal accessible à l'application (dans le cas des systèmes de basesde données SQL) et une base de données. Tous ces éléments doivent être accessibles à l'application ADO pour que celle-ci soittotalement opérationnelle. Microsoft Data Access Components (MDAC) 2.1 ou une version ultérieure contient ces élémentsnécessaires. RAD Studio prend en charge MDAC 2.8.

La section dbGo de la palette d'outils contient les composants suivants qui utilisent dbGo pour accéder aux informations d'unebase de données :

Composant Fonction

TADOConnection Encapsule une connexion dbGo à un serveur de base de données

TADODataSet Représente n'importe quelles données disponibles via dbGo ou envoie des commandes à une base dedonnées accessible via dbGo.

TADOQuery Un ensemble de données de type requête qui encapsule une instruction SQL et permet aux applicationsd'accéder aux enregistrements résultants, s'il y en a, à partir d'un stockage de données ADO.

TADOTable Un ensemble de données de type table qui représente toutes les lignes et colonnes d'une table de base dedonnées

TADOStoredProc Un ensemble de données de type procédure stockée qui exécute une procédure stockée définie sur unserveur de bases de données

TADOCommand Représente l'objet Command ADO, qui est utilisé pour l'émission de commandes sur un stockage dedonnées accessible via un fournisseur ADO

TADODataSet Représente un ensemble de données lu à partir d'un stockage de données ADO

TRDSConnection Expose la fonctionnalité de l'objet DataSpace RDS

Voir aussi

Présentation de VCL pour .NET ( see page 76)

Portage d'applications VCL ( see page 74)

Déploiement d'applications de bases de données pour le .NET Framework

Construction d'une application Fiches VCL de base de données ADO.NET ( see page 158)

Types de données AdoDbx.NET RAD Studio pour .NET 1.1 Développement d'applications de

10

1

Page 17: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.1.3 Types de données AdoDbx.NET

Les types de données AdoDbx Client correspondent à des types logiques .NET. Selon la base de données, les types dedonnées AdoDbx Client sont associés à des types de données natifs. Quand c'est possible, AdoDbx Client propose :

• Une correspondance des types de données cohérente entre bases de données.

• Des types de données logiques correspondant à des types logiques .NET.

AdoDbx et .NET Framework

La classe DataSet de ADO.NET utilise les types de données .NET Framework. Les types de données AdoDbx Clientcorrespondent logiquement à des types de données .NET pour les bases de données gérées. Lors de la conception, vouspouvez utiliser les types logiques AdoDbx Client qui sont associés aux types natifs appropriés.

Types de données

Le .NET Framework propose un grand nombre de types de données logiques. AdoDbx Client hérite des types de donnéeslogiques et propose une correspondance intégrée pour les bases de données gérées. AdoDbx Client gère la correspondance detypes de données logiques pour DB2, InterBase, MS SQL, MSDE et Oracle.

DB2

AdoDbx Client gère les correspondances de types DB2 suivantes.

Type DB2 Type BDP Sous-type BDP System.Type

CHAR String stFixed String

VARCHAR String ND String

SMALLINT Int16 ND Int16

BIGINT Int64 ND Int64

INTEGER Int32 ND Int32

DOUBLE Double ND Double

FLOAT Float ND Single

REAL Float ND Single

DATE Date ND DateTime

TIME Time ND DateTime

TIMESTAMP DateTime ND DateTime

NUMERIC Decimal ND Decimal

DECIMAL Decimal ND Decimal

BLOB Blob stBinary Byte[]

CLOB Blob stMemo Char[]

InterBase

AdoDbx Client gère les mappages de types InterBase suivants.

Type InterBase Type BDP Sous-type BDP System.Type

CHAR String stFixed String

VARCHAR String ND String

1.1 Développement d'applications de RAD Studio pour .NET Types de données AdoDbx.NET

11

1

Page 18: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

SMALLINT Int16 ND Int16

INTEGER Int32 ND Int32

FLOAT Float ND Single

DOUBLE Double ND Double

BLOB Sub_Type 0 Blob stBinary Byte[]

BLOB Sub_Type 1 Blob stMemo Char[]

TIMESTAMP DateTime ND DateTime

MS SQL et MSDE

AdoDbx Client gère les correspondances de types MS SQL et MSDE suivantes.

Type MSSQL Type BDP Sous-type BDP System.Type

BIGINT Int64 ND Int64

INT Int32 ND Int32

SMALLINT Int16 ND Int16

TINYINT Int16 ND Int16

BIT Boolean ND Boolean

DECIMAL Decimal ND Decimal

NUMERIC Decimal ND Decimal

MONEY Decimal ND Decimal

SMALLMONEY Decimal ND Decimal

FLOAT Double ND Double

REAL Float ND Single

DATETIME DateTime ND DateTime

SMALLDATETIME DateTime ND DateTime

CHAR String stFixed String

VARCHAR String ND String

TEXT Blob stMemo Char[]

BINARY VarBytes ND Byte[]

VARBINARY VarBytes ND Byte[]

IMAGE Blob stBinary Byte[]

TIMESTAMP VarBytes ND Byte[]

UNIQUEIDENTIFIER Guid ND Guid

Oracle

AdoDbx Client gère les correspondances de types Oracle suivantes.

Type Oracle Type BDP Sous-type BDP System.Type

CHAR String stFixed String

NCHAR String stFixed String

VARCHAR String ND String

Types de données AdoDbx.NET RAD Studio pour .NET 1.1 Développement d'applications de

12

1

Page 19: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

NVARCHAR String ND String

VARCHAR2 String ND String

NVARCHAR2 String ND String

NUMBER Decimal ND Decimal

DATE Date ND DateTime

BLOB Blob stHBinary Byte[]

CLOB Blob stHMemo Char[]

LONG Blob stMemo Char[]

LONG RAW Blob stBinary Byte[]

BFILE Blob stBFile Char[]

ROWID String ND String

Sybase

AdoDbx Client gère les mappages de types Sybase suivants.

Type Sybase Type BDP Sous-type BDP System.Type

CHAR String stFixed String

VARCHAR String ND String

INT Int32 ND Int32

SMALLINT Int16 ND Int16

TINYINT Int16 ND Int16

DOUBLE PRECISION Float ND Single

FLOAT Float ND Single

REAL Float ND Single

NUMERIC Decimal ND Decimal

DECIMAL Decimal ND Decimal

SMALLMONEY Decimal ND Decimal

MONEY Decimal ND Decimal

SMALLDATETIME DateTime ND DateTime

DATETIME DateTime ND DateTime

IMAGE Blob stBinary Byte[]

TEXT Blob stMemo Char[]

BIT Boolean ND Boolean

TIMESTAMP VarBytes ND Byte[]

BINARY Octets ND Byte[]

VARBINARY VarBytes ND Byte[]

SYSNAME String ND String

Voir aussi

Présentation de ADO.NET ( see page 14)

1.1 Développement d'applications de RAD Studio pour .NET Présentation de ADO.NET

13

1

Page 20: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.1.4 Présentation de ADO.NET

ADO.NET est l'environnement de programmation .NET permettant de concevoir des applications de bases de données baséessur des formats de données natifs ou des données XML. ADO.NET est conçu comme un stockage de données dorsal pour tousles modèles de programmation Microsoft .NET, y compris les Web Forms et les services Web. Utilisez ADO.NET pour gérer lesdonnées dans .NET Framework.

Remarque: BDP.NET est basé sur ADO.NET 1.1. AdoDbx Client est basé sur .NET 2.0.

CodeGear propose des outils pour simplifier le développement rapide ADO.NET grâce aux fournisseurs de données AdoDbxClient et Borland pour .NET (BDP.NET). Si vous êtes familier du développement rapide d'applications (RAD) et de laprogrammation orientée objet en utilisant les propriétés, les méthodes et les événements, vous serez en terrain connu avec lemodèle ADO.NET de conception d'applications. Si vous êtes un programmeur de base de données traditionnel, ADO.NETpropose des concepts familiers, comme les tables, les lignes et les colonnes avec une navigation relationnelle. Lesdéveloppeurs XML apprécieront de pouvoir parcourir les mêmes données avec des noeuds, des parents, des frères et desenfants.

Cette rubrique décrit les principaux composants de l'architecture ADO.NET, comment ADO.NET s'intègre avec d'autres modèlesde programmation dans le .NET Framework et les fonctionnalités clés de RAD Studio pour la prise en charge d'ADO.NET.

Cette rubrique présente :

• Architecture ADO.NET

• Interfaces utilisateur ADO.NET

• Espace de nommage BDP.NET

Architecture ADO.NET

Les deux principaux composants de l'architecture ADO.NET sont le fournisseur de données et l'ensemble de données. Lasource de données représente une base de données physique ou un fichier XML, le fournisseur de données assure lesconnexions et transmet des commandes, l'ensemble de données représente en mémoire une ou plusieurs sources de données.Pour plus d'informations sur le modèle général ADO.NET, voir la documentation du SDK Microsoft .NET Framework.

Source de données

La source de données est la base de données physique, locale ou distante, ou un fichier XML. Dans la programmation de basede données traditionnelle, le développeur manipule directement la source de données, ce qui nécessite souvent des interfacespropriétaires complexes. Avec ADO.NET, le développeur de base de données utilise un jeu de composants pour accéder à lasource de données, pour exposer les données et transmettre des commandes.

Fournisseurs de données

Les composants fournisseur de données assurent la connexion avec la base de données physique ou les fichiers XML en

Présentation de ADO.NET RAD Studio pour .NET 1.1 Développement d'applications de

14

1

Page 21: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

masquant les détails de l'implémentation. Les fournisseurs peuvent se connecter à une ou plusieurs sources de données,transmettre des commandes et exposer les données aux ensembles de données.

.NET Framework propose des fournisseurs pour MS SQL, OLE DB et Oracle. Outre la gestion des fournisseurs .NET, ce produitcomprend AdoDbx Client et BDP.NET. Ces fournisseurs de données se connectent à de nombreuses bases de données lesplus courantes du marché, en proposant un environnement de programmation cohérent. Pour plus d'informations, voir larubrique Fournisseurs de données Borland pour Microsoft .NET.

Ensemble de données

L'objet ensemble de données représente en mémoire les tables et les relations de une ou plusieurs sources de données.L'ensemble de données offre une zone de travail temporaire pour manipuler les données. Les applications ADO.NET manipulentles tables en mémoire, pas dans la base de données physique. L'ensemble de données offre davantage de flexibilité que lesconnexions directes avec les bases de données. A l'instar d'un objet ensemble de données typique géré par de nombreuxsystèmes de bases de données, l'ensemble de données peut contenir plusieurs tables de données, lesquelles sont desreprésentations de tables ou de vues provenant de nombreuses sources de données. L'ensemble de données travaille en modeasynchrone, non connecté, et transmet ultérieurement des commandes d'actualisation à la source de données via le fournisseur.

RAD Studio vous propose deux types d'ensembles de données : les ensembles de données standard et les ensembles dedonnées typés. Un ensemble de données standard est l'ensemble de données par défaut que vous obtenez quand vousdéfinissez implicitement un objet DataSet. Ce type d'ensembles de données est basé sur la disposition des colonnes de votresource de données, car elles sont renvoyées à l'exécution en fonction de votre instruction Select.

Les ensembles de données typés fournissent davantage de contrôle sur la disposition des données que vous récupérez d'unesource de données. Un ensemble de données typé dérive d'une classe DataSet. Il vous permet d'accéder aux tables et colonnespar nom plutôt que par les méthodes de collection. Cette fonctionnalité améliore la lisibilité, les caractéristiques d'achèvement ducode et l'application des types de données par rapport aux ensembles de données standard. Le compilateur détecte lesincompatibilités de type des ensembles de données typés lors de la compilation plutôt que pendant l'exécution. En créant unensemble de données typé, vous voyez que de nouveaux objets sont automatiquement créés et accessibles par l'intermédiairedu gestionnaire de projets. Vous voyez aussi deux fichiers nommés d'après votre ensemble de données. Un fichier est unfichier .xsd XML et l'autre est un fichier de code dans le langage que vous utilisez. Toutes les données concernant votreensemble de données, y compris celles sur les tables et colonnes provenant de la connexion de base de données, sontstockées dans le fichier .xsd. Le fichier de code du programme est créé sur la base du code XML du fichier .xsd. Pour modifierla structure de l'ensemble de données typé, vous pouvez modifier les éléments du fichier .xsd. Quand vous effectuez larecompilation, le fichier de code est régénéré à l'aide du XML modifié.

Pour plus d'informations sur les ensembles de données, voir la documentation du SDK de Microsoft .NET Framework.

Interfaces utilisateur ADO.NET

ADO.NET assure l'accès aux données pour divers modèles de programmation .NET.

Web Forms

En ASP.NET les Web Forms constituent une interface commode pour accéder à des bases de données via le Web. ASP.NETutilise ADO.NET pour assurer les fonctions d'accès aux données.

Les composants de connexion .NET, AdoDbx Client et BDP.NET facilitent l'intégration entre les Web Forms et ADO.NET. Lescontrôles DB Web gèrent à la fois les composants ADO.NET, AdoDbx Client et BDP.NET, accélérant ainsi le développementdes applications web.

Windows Forms

Windows Forms n'est plus supporté.

Espace de nommage AdoDbx Client

Les classes AdoDbx Client se trouvent sous l'espace de nommage Borland.Data.AdoDbxClientProvider.

1.1 Développement d'applications de RAD Studio pour .NET Présentation de ADO.NET

15

1

Page 22: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Espace de nommage BDP.NET

Les classes BDP.NET se trouvent sous les espaces de nommage Borland.Data.

Espace de nommage BDP.NET

Espace de nommage Description

Borland.Data.Common Contient des objets communs à tous les fournisseurs de données Borland, y compris les classesd'erreur et d'exception, les énumérations de type de données, les options de fournisseur et lesinterfaces pour concevoir vos propres classes commande, connexion et curseur.

Borland.Data.Provider Contient les classes BDP.NET essentielles comme BdpCommand, BdpConnection, BdpDataAdapteret d'autres qui permettent d'interagir avec des sources de données externes comme les serveurs debases de données Oracle, DB2, Interbase et MS SQL Server.

Borland.Data.Schema Contient les interfaces permettant de construire vos propres classes de manipulation de schéma debase de données ainsi que divers types et énumérateurs définissant des métadonnées.

Voir aussi

Déploiement des applications

Conception d'une application de bases de données ASP.NET ( see page 182)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 187)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 188)

Conception d'une application de bases de données ASP.NET ( see page 182)

Fournisseurs de données pour Microsoft .NET ( see page 27)

Types de données AdoDbx.NET ( see page 11)

Concepteurs de composants ADO.NET ( see page 22)

Création et utilisation des ensembles de données typés ( see page 141)

Création de mappages de tables ( see page 119)

Guide ADO.NET du développeur .NET Framework (MSDN)

1.1.5 Présentation de la migration BDP

BDP (Borland Data Provider, Fournisseur de données Borland) étant en cours de dépréciation, n'utilisez pas BDP pour vosnouveaux développements. En revanche, utilisez AdoDbx Client. Cette rubrique décrit les différences et les équivalences entreBDP et AdoDbx Client.

En conséquence de la dépréciation de BDP :

• BDP sera retiré du produit dans une future release.

• Il n'y aura pas d'autre développement BDP et seulement un effort de contrôle qualité (QA) minimal. Seuls les bogues critiques seront corrigés.

• Aucune documentation supplémentaire ne sera fournie et la documentation existante n'a pas encore été retirée.

BDP était basé sur ADO.NET 1.1. De nombreuses fonctionnalités différentes de BDP, comme l'indépendance du fournisseur et

Présentation de la migration BDP RAD Studio pour .NET 1.1 Développement d'applications de

16

1

Page 23: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

les métadonnées étendues, ont été ajoutées à ADO.NET 2 en utilisant différentes approches, incompatibles avec BDP. En outre, ADO.NET 2 utilise les classes de base abstraites et a déprécié les interfaces ADO.NET 1.1. Cela a rendu difficilement applicable l'extension de BDP à ADO.NET 2.0.

AdoDbx Client est basé sur ADO.NET 2.0 et fournit la plupart des capacités de BDP.

BDP est constitué de trois espaces de nommage :

Espace de nommage de BDP

Description

Borland.Data.Common Contient les objets communs à tout BDP.NET, y compris les classes d'erreur et d'exception, lesénumérations de type de données, les options de fournisseur et les interfaces pour concevoir vospropres classes commande, connexion et curseur.

Borland.Data.Provider Contient les classes BDP.NET essentielles comme BdpCommand, BdpConnection, BdpDataAdapter,BdpDataReader et d'autres qui permettent d'interagir avec des sources de données externes commeles serveurs de bases de données Oracle, DB2, Interbase et MS SQL Server.

Borland.Data.Schema Contient les interfaces permettant de construire vos propres classes de manipulation de schéma debase de données ainsi que divers types et énumérateurs définissant des métadonnées.

Ce document décrit la migration pour chacun de ces espaces de nommage.

Migration Borland.Data.Provider

Deux classes de cet espace de nommage fournissent la gestion distante des données et n'ont pas été dépréciées. Elles nenécessitent donc pas de migration, ce sont :

• DataHub

• DataSync

Classes correspondantes dans BDP et AdoDbx Client

La plupart des classes BDP de cet espace de nommage sont des implémentations des classes ADO.NET. Ces classes sontégalement implémentées dans AdoDbx Client. La plupart du code source utilisant ces classes devrait être converti en AdoDbxClient avec un effort minimal.

Le tableau suivant présente la correspondance entre les classes ADO.NET, BDP et AdoDbx Client :

ADO.NET BDP.NET Client AdoDbx

DbCommand BdpCommand TAdoDbxCommand

DbCommandBuilder BdpCommandBuilder TAdoDbxCommandBuilder

DbConnection BdpConnection TAdoDbxConnection

DbDataAdapter BdpDataAdapter TAdoDbxDataAdapter

DbDataReader BdpDataReader TAdoDbxDataReader

DbTransaction BdpTransaction TAdoDbxTransaction

La conversion des classes BDP de ce groupe est plutôt simple. Consultez la documentation pour voir si la méthode utilisée estprise en charge dans la classe AdoDbx Client correspondante. Si elle l'est, vous n'avez probablement rien à faire. Si la méthoden'est pas prise en charge, vous devez alors modifier votre code afin d'utiliser les méthodes prises en charge dans AdoDbx Clientou ADO.NET lui-même.

Par exemple, la classe BdpDataReader accède aux enregistrements de base de données. La plupart de ses méthodes d'accèsaux données ont des méthodes TAdoDbxDataReader correspondantes, comme décrit à la section ISQLCursor.BdpDataReader.GetSchemaTable peut être utilisée pour récupérer la métadonnée curseur en tant que DataTable.

1.1 Développement d'applications de RAD Studio pour .NET Présentation de la migration BDP

17

1

Page 24: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Reportez-vous à la section ISQLExtendedMetaData et ISQLMetaData pour obtenir la description d'un accès aux métadonnéespour AdoDbx Client.

Classes BDP sans classes AdoDbx Client correspondantes

La classe BdpCopyTable n'a pas de classe correspondante dans AdoDbx Client. Cette capacité n'est donc pas disponible dansAdoDbx Client.

Migration Borland.Data.Common

Cet espace de nommage a sept classes et trois interfaces.

BdpConnectionString

La classe TAdoDbxConnection a une propriété ConnectionString. Cette classe prend également en charge le pooling deconnexion.

BdpError et BdpErrorCollection

Comme toutes les erreurs sont gérées comme des exceptions dans la classe TAdoDbxException de AdoDbx Client, ces classesne sont donc pas nécessaires.

BdpException, BdpParameter et BdpParameterCollection

Ces classes sont des implémentations des classes ADO.NET. Ces classes sont également implémentées dans AdoDbx Client.La plupart du code source utilisant ces classes devrait être converti en AdoDbx Client avec un effort minimal.

La conversion des classes BDP de ce groupe est plutôt simple. Consultez la documentation pour voir si la méthode utilisée estprise en charge dans la classe AdoDbx Client correspondante. Si elle l'est, vous n'avez probablement rien à faire. Si la méthoden'est pas prise en charge, vous devez alors modifier votre code afin d'utiliser les méthodes prises en charge dans AdoDbx Clientou ADO.NET lui-même.

Le tableau suivant présente la correspondance entre les classes ADO.NET, BDP et AdoDbx Client :

ADO.NET BDP.NET Client AdoDbx

DbException BdpException TAdoDbxException

DbParameter BdpParameter TAdoDbxParameter

DbParameterCollection BdpParameterCollection TAdoDbxParameterCollection

DbResolver

DbResolver est une implémentation de l'interface ISQLResolver de l'espace de nommage Borland.Data.Schema, décrite plusloin dans cette rubrique.

ISQLCommand, IAQLConnection et ISQLCursor

Ces interfaces sont principalement utilisées par les concepteurs de pilotes et il n'y a pas d'équivalent AdoDbx Client. Vousdevrez réécrire le pilote à l'aide du framework dbExpress.

Migration Borland.Data.Schema

Cet espace de nommage contient cinq interfaces.

ISQLDataSource

La méthode GetProviders renvoie une liste des fournisseurs de données. Une capacité similaire est fournie parTAdoDbxProviderFactory.CreateDataSourceEnumerator, qui crée un énumérateur pour tous les fournisseurs. Il n'y a pas

Présentation de la migration BDP RAD Studio pour .NET 1.1 Développement d'applications de

18

1

Page 25: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

d'analogie pour les méthodes GetConnections et GetDbObjectTypes dans AdoDbx Client.

ISQLExtendedMetaData et ISQLMetaData

Utilisez la méthode GetSchema de TAdoDbxConnection pour obtenir une collection de métadonnées. Le paramètre Name deGetSchema spécifie le type de métadonnée à obtenir. Les noms standard supportés par DbConnection.GetSchema sont pris encharge dans AdoDbx Client.

En outre, vous pouvez spécifier une des constantes de nom dans TDBXMetaDataCollectionName pour obtenir une collection demétadonnées particulière. Vous pouvez ensuite utiliser la classe correspondante dans l'espace de nommageDBXMetaDataNames pour obtenir les informations de colonne que vous voulez pour cette collection de métadonnées.

Par exemple, pour obtenir le code source de procédure d'une base de données, utilisez la constante ProcedureSources pourobtenir un DataTable avec les informations de source de procédure. Utilisez les classes TDBXProcedureSourcesColumns etTDBXProcedureSourcesIndex de DBXMetaDataNames avec le DataTable renvoyé pour accéder aux informations de source deprocédure par nom ou ordinal.

ISQLResolver

Cette classe résout les commandes SQL.

L'analogie la plus proche est la classe TAdoDbxDataAdapter pour les méthodes ISQLResolver. Ce tableau présente lespropriétés qui correspondent aux méthodes.

ISQLResolver TAdoDbxDataAdapter

Méthode GetDeleteSQL Propriété DeleteCommand

Méthode GetInsertSQL Propriété InsertCommand

GetSelectSQL Propriété SelectCommand

GetUpdateSQL Propriété UpdateCommand

Pour les propriétés ISQLResolver, les analogies les plus proches sont les propriétés que TAdoDbxCommandBuilder hérite de laclasse ADO.NET DbCommandBuilder et une propriété TAdoDbxDataReader.

ISQLResolver Client AdoDbx

Propriété QuotePrefix Propriété TAdoDbxCommandBuilder.QuotePrefix

Propriété QuoteSuffix Propriété TAdoDbxCommandBuilder.QuoteSuffix

Propriété Row Propriété TAdoDbxDataReader.Item

ISQLSchemaCreate

Cette interface vous permet de créer un schéma de base de données dans votre propre fournisseur. Le client AdoDbx n'offrepas cette capacité.

Voir aussi

Présentation de ADO.NET ( see page 14)

Guide ADO.NET du développeur .NET Framework (MSDN)

TAdoDbxCommand

TAdoDbxCommandBuilder

TAdoDbxConnection

1.1 Développement d'applications de RAD Studio pour .NET Présentation de la migration BDP

19

1

Page 26: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

TAdoDbxDataAdapter

TAdoDbxDataReader

TAdoDbxException

TAdoDbxParameter

TAdoDbxParameterCollection

TAdoDbxProviderFactory

TAdoDbxTransaction

TDBXMetaDataCollectionName

1.1.6 Présentation de Blackfish SQL

La conception et l'implémentation de Blackfish SQL met l'accent sur les performances de la base de données, l'évolubilité, lafacilité d'emploi et une forte adhésion aux standards de l'industrie. Voici quelques fonctionnalités de Blackfish SQL :

• Compatibilité avec les standards de l'industrie

• Niveau d'entrée SQL-92

• Stockage Unicode des données caractère

• Support des clés basées sur Unicode pour le tri et l'indexation

• Pilotes dbExpress 4 pour Delphi Win32 et C++

• Fournisseurs ADO.NET 2.0 pour .NET

• JDBC pour Java

• Composants d'accès de données JavaBean pour Java

• Transactions distribuées XA/JTA pour Java

• Performances élevées et évolutivité pour les applications OLTP (demanding online transaction processing) et DSS (decision support system)

• Déclencheurs et procédures stockées Delphi, C# et VB.NET pour Windows

• Déclencheurs et procédures stockées Java

• Administration zéro, assemblage unique et déploiement jar unique

• Basculement automatique et sauvegarde incrémentielle des bases de données

Blackfish SQL DataStore

Blackfish SQL est le nom du produit, ses outils et le format de fichier. Dans ce produit, un package datastore comprend uneclasse DataStore, ainsi que plusieurs classes supplémentaires ayant DataStore dans leur nom. ish SQL Blackfish SQL pourWindows et Blackfish SQL pour Java sont très compatibles entre eux. Le format de fichier de base de données a unecompatibilité binaire entre Blackfish SQL pour Windows et Blackfish SQL pour Java. De plus, les serveurs et les clients de basesde données sont interchangeables. Les clients Windows peuvent se connecter aux serveurs Java, et les clients Java peuvent seconnecter aux serveurs Windows.

Puisque l'implémentation de Blackfish SQL pour Windows est plus récente, certaines fonctionnalités Blackfish SQL pour Java nesont pas encore supportées. Les fonctionnalités suivantes ne sont pas supportées :

• Interpréteur en ligne de commande ISQL SQL

• Fonctionnalités à haute disponibilité, dont le basculement automatique et la sauvegarde incrémentielle

Présentation de Blackfish SQL RAD Studio pour .NET 1.1 Développement d'applications de

20

1

Page 27: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Outils graphiques pour les fonctionnalités administratives

• Accès aux flux d'objets et de fichiers

• Suivi et résolution des opérations de suppression, de mise à jour et d'insertion de niveau ligne

• Accès au répertoire système de fichiers Blackfish SQL

Connectivité Blackfish SQL

Cette section offre un aperçu des pilotes de connexion fournis respectivement pour Blackfish SQL pour Windows et BlackfishSQL pour Java. Pour obtenir des instructions sur l'utilisation des pilotes pour la connexion à une base de données BlackfishSQL, voir le , Guide du développeur Blackfish SQL.

Connectivité Blackfish SQL pour Windows

Blackfish SQL pour Windows fournit les pilotes de connexion suivants :

• DBXClient : C'est un pilote de base de données dbExpress 4 Win32 permettant aux applications Delphi Win32 et C++ de se connecter à un serveur distant Blackfish SQL pour Windows ou Blackfish SQL pour Java.

• Fournisseur ADO.NET 2.0 local : C'est un pilote de code 100% managé permettant aux applications .NET de se connecter à un serveur local Blackfish SQL pour Windows. Le pilote ADO.NET local s'exécute dans le même processus que le noyau de base de données BlackFishSQL, afin d'en augmenter les performances.

• Fournisseur ADO.NET 2.0 distant : C'est un pilote de code 100% managé permettant aux applications .NET d'acquérir une connexion distante au serveur Blackfish SQL pour Windows ou Blackfish SQL pour Java.

Connectivité Blackfish SQL pour Java

Blackfish SQL pour Java fournit les pilotes de connexion JDBC suivants :

• Pilote JDBC local : C'est un pilote de code 100% managé permettant aux applications Java de se connecter à un serveur local Blackfish SQL pour Java. Le pilote JDBC local s'exécute dans le même processus que le noyau de base de données BlackFishSQL, afin d'en augmenter les performances.

• Pilote JDBC distant : C'est un pilote de code 100% managé permettant aux applications Java d'acquérir une connexion distante au serveur Blackfish SQL pour Windows ou Blackfish SQL pour Java.

Voir aussi

Le Guide du développeur Blackfish SQL

ConnectionProperties

DataStoreErrorCode

1.1.7 Concepteurs de composants ADO.NET

Presque toutes les applications distribuées se ramènent à lire et actualiser des informations dans des bases de données. Lesapplications que vous développez en utilisant ADO.NET ont des exigences différentes pour manipuler les données. Vouspouvez, par exemple, développer une application qui affiche simplement des données dans une fiche. Ou vous pouvezdévelopper une application qui propose le moyen de partager des informations avec une autre entreprise. Dans tous les cas,vous devez comprendre certains concepts fondamentaux sur l'approche des données dans ADO.NET.

En utilisant ces concepteurs, vous pouvez travailler efficacement pour lire, exposer et modifier des données par l'intermédiaired'objets de schémas propres au serveur de base de données comme les tables, les vues et les index. Ces concepteurs vouspermettent d'utiliser ces objets de schéma pour vous connecter à différentes bases de données courantes et d'effectuer desopérations de bases de données d'une manière cohérente et fiable.

1.1 Développement d'applications de RAD Studio pour .NET Concepteurs de composants ADO.NET

21

1

Page 28: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Cette rubrique comprend :

• Relations de concepteur de composant

• Editeur de connexions

• Editeur de texte de commande

• Boîte de dialogue Procédure stockée

• Génération d'ensembles de données

• Configuration d'adaptateur de données

• Explorateur de données

Relations de concepteur de composant

ANCIENNE IMAGE

NOUVELLE IMAGE

Les principaux éléments des concepteurs de composants de bases de données sont les suivants :

• L'éditeur de connexion permet de définir une connexion dynamique à une source de données

• La fenêtre Editeur de texte de commande permet de construire du texte de commande pour des composants de commandes.

• La boîte de dialogue de configuration de l'adaptateur de données permet de configurer des commandes pour un adaptateur de données.

• La boîte de dialogue Procédure stockée permet de visualiser et d'indiquer des valeurs pour les paramètres Input ou InputOutput à utiliser avec les composants de commandes.

• La boîte de dialogue de génération d'un ensemble de données est utilisée pour construire des ensembles de données personnalisés.

• L'explorateur de données vous permet de parcourir les objets de schémas spécifiques aux serveurs de bases de données et d'utiliser le glisser-déplacer pour remplir automatiquement de données une source de données de votre projet Delphi pour .NET.

Editeur de connexions

L'éditeur de connexion gère les chaînes de connexion et les options de connexion propres aux bases de données. Au moyende l'éditeur de connexions, vous pouvez ajouter, retirer, supprimer, renommer et tester vos connexions de bases de données.Les modifications apportées aux informations de connexion sont enregistrées dans le fichier ADoDbxConnections.xml, oùelles sont accessibles dès que vous devez créer un nouvel objet de connexion. Lorsque vous avez choisi une connexionparticulière, l'éditeur de connexions génère la chaîne de connexion ainsi que toutes les options de connexion, puis les affecterespectivement aux propriétés ConnectionString et ConnectionOptions.

Affichez la boîte de dialogue Editeur de connexions en faisant glisser le composant TAdoDbxConnection de la palette d'outilsvers la fiche, puis en cliquant sur le verbe du concepteur de composants dans le bas de l'inspecteur d'objets.

Concepteurs de composants ADO.NET RAD Studio pour .NET 1.1 Développement d'applications de

22

1

Page 29: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Editeur de texte de commande

L'éditeur de texte de commande peut être utilisé pour construire le texte de commande pour les composants commande quipossèdent une propriété CommandText. Un contrôle d'édition multiligne de l'éditeur vous permet d'éditer manuellement lacommande ou de construire le texte de la commande en sélectionnant des tables ou des colonnes. Affichez la boîte de dialogueEditeur de texte de commande en faisant glisser le composant TAdoDbxCommand de la palette d'outils vers la fiche, puis encliquant sur le verbe du concepteur dans le bas de l'inspecteur d'objets.

L'éditeur de texte de commande est une version simplifiée d'un concepteur SQL capable de générer du code SQL pour unetable unique. Les objets de bases de données sont filtrés par la propriété SchemaName définie dans ISQLSchemaCreate etseules les tables faisant partie de ce schéma sont utilisées. Si aucune propriété SchemaName n'est listée, tous les objetsdisponibles pour l'utilisateur de la connexion en cours sont listés. Le paramètre QuoteObjects de la propriété ConnectionOptionsdétermine si les objets sont délimités par le caractère guillemet spécifique aux bases de données. Par exemple, ceci estimportant lors de la récupération de tables à partir de bases de données qui autorisent les espaces dans les noms de tables.

Pour remplir les boîtes listes Tables et Colonnes avec des éléments ou construire des instructions SQL, vous devez avoir définiune connexion TAdoDbxConnection active. Sinon, les données ne sont pas récupérables. L'éditeur de texte de commandevous permet de choisir des noms de colonne et de table dans la liste des colonnes et des tables disponibles. A l'aide de cesinformations, l'éditeur génère une instruction SQL. Pour générer l'instruction SQL, l'éditeur utilise une instance de la classeTAdoDbxCommandBuilder. Lorsque vous demandez le SQL optimisé, l'éditeur utilise les informations d'index pour générer laclause WHERE pour les instructions SELECT, UPDATE et DELETE ; sinon, la clause WHERE est constituée par les colonnesnon BLOB et les colonnes autorisant les recherches.

Lorsque l'instruction SQL est générée, la propriété TAdoDbxCommand. CommandText est définie sur l'instruction SQL générée.

Boîte de dialogue Procédure stockée

La boîte de dialogue Procédure stockée est utilisée pour visualiser et entrer des paramètres Input et InputOutput pour uneprocédure stockée et pour exécuter cette procédure. Affichez la boîte de dialogue Procédure stockée en faisant glisser uncomposant TAdoDbxCommand de la palette d'outils vers la fiche, en réglant la propriété CommandType du composantTAdoDbxCommand sur StoredProcedure, puis en cliquant sur le verbe du concepteur Editeur de texte de commande dans lapartie inférieure de l'inspecteur d'objet.

La boîte de dialogue Procédure stockée vous permet de sélectionner une procédure stockée à partir d'une liste des procéduresstockées disponibles, qui est déterminée par le TAdoDbxConnection spécifié dans la propriété Connection pour le composantTAdoDbxCommand. Lorsque vous sélectionnez une procédure stockée, la boîte de dialogue affiche les paramètres associés àla procédure stockée et les métadonnées des paramètres pour le paramètre sélectionné. Vous pouvez spécifier des valeurspour les paramètres Input ou InputOutput et exécuter la procédure stockée. Si la procédure stockée renvoie des résultats,comme des paramètres Output, des paramètres InputOutput, des valeurs de retour, un (ou plusieurs) curseur(s) de retour, ilssont tous remplis dans un DataGrid en bas de la boîte de dialogue lorsque la procédure stockée est exécutée. Aprèsl'initialisation des propriétés CommandText et Parameters pour TAdoDbxCommand, la procédure stockée peut être exécutéelors de l'exécution au moyen d'un seul appel à la méthode ExecuteReader or ExecuteNonQuery.

Génération d'ensembles de données

Le concepteur Génération d'un ensemble de données est utilisé pour construire un ensemble de données. L'utilisation de cetoutil a pour résultat un typage strict, un code plus clair et la possibilité d'utiliser l'achèvement de code. Un ensemble de donnéesdérive d'abord de la classe de base DataSet puis utilise les informations d'un fichier schéma XML (un fichier .xsd) pour générerune nouvelle classe. Les informations du schéma (tables, colonnes, etc.) sont générées et compilées dans cette nouvelle classedataset comme un ensemble de propriétés et d'objets "first-class". Affichez cette boîte de dialogue en faisant glisser uncomposant TAdoDbxDataAdapter de la palette d'outils vers la fiche, puis en cliquant sur le verbe du concepteur de composantsdans le bas de l'inspecteur d'objet. Si ce composant n'est pas affiché, choisissez Composants Composants .NET installéspour l'ajouter à la palette d'outils.

1.1 Développement d'applications de RAD Studio pour .NET Concepteurs de composants ADO.NET

23

1

Page 30: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Configuration d'adaptateur de données

Le concepteur de configuration de l'adaptateur de données est utilisé pour générer les instructions SQL SELECT, INSERT,UPDATE et DELETE. Après une génération SQL réussie, le concepteur Configuration de l'adaptateur de données crée denouveaux objets TAdoDbxCommand et les ajoute aux propriétés TAdoDbxDataAdapterSelectCommand, DeleteCommand,InsertCommand et UpdateCommand.

Après une génération réussie d'une instruction SELECT de SQL, vous pouvez prévisualiser les données et générer un nouveauDataSet. Vous pouvez également utiliser un DataSet existant pour remplir un nouveau DataTable. Si vous créez un nouveauDataSet, il sera ajouté automatiquement à l'hôte du concepteur. Vous pouvez également générer des DataSet typés.

Les adaptateurs de données font partie intégrante des fournisseurs ADO.NET managés. Essentiellement, les adaptateurs sontutilisés pour échanger des données entre une source de données et un ensemble de données. Cela veut dire lire les donnéesdepuis une base de données dans un ensemble de données, et écrire dans la base de données les données modifiées dansl'ensemble de données. Un adaptateur de données peut déplacer les données entre toute source et un ensemble de données.Affichez la boîte de dialogue de configuration de l'adaptateur de données en faisant glisser un composantTAdoDbxDataAdapter de la palette d'outils vers la fiche, puis en cliquant sur le verbe du concepteur de composants dans lebas de l'inspecteur d'objets.

Explorateur de données

L'explorateur de données est un navigateur de base de données hiérarchique et un outil d'édition. L'explorateur de donnéesest intégré dans l'EDI et peut également être exécuté comme un exécutable autonome. Pour accéder à l'explorateur dedonnées de l'EDI, choisissez Voir Explorateur de données. Utilisez les menus contextuels de l'explorateur de donnéespour effectuer les tâches suivantes :

• Gérer les connexions de base de données — ajouter une nouvelle connexion, modifier, supprimer ou renommer vos connexions existantes

• Parcourir la structure de la base de données et les données, étendre et ouvrir les noeuds des fournisseurs pour parcourir les objets de schémas propres aux serveurs de bases de données, notamment les tables, les vues, les définitions de procédures stockées et les index

• Ajouter et modifier des tables — spécifier la structure des données pour une nouvelle table, ajouter ou supprimer des colonnes et modifier les informations de colonnes pour une table existante

• Visualiser et tester les paramètres de procédures stockées — spécifier les valeurs pour les paramètres Input ou InputOutput et exécuter la procédure stockée sélectionnée

• Migrer des données — migrer le schéma des tables et les données d'une ou plusieurs tables d'un fournisseur vers un autre

• Glisser et déplacer des objets de schémas sur des fiches pour simplifier le développement des applications, glisser des tables ou des procédures stockées sur la fiche de votre application pour le .NET Framework afin d'ajouter des composants de connexion et de générer automatiquement des chaînes de connexion

L'explorateur de données fournit une connectivité à plusieurs bases de données standard et peut être étendu pour se connecter à d'autres bases de données courantes. L'explorateur de données utilise l'interface ISQLDataSource pour obtenir la liste des fournisseurs disponibles, des connexions de bases de données et des objets schéma qui sont pris en charge par les divers fournisseurs. La liste des fournisseurs disponibles est persistante dans le fichier TAdoDbxDataSources.xml et les connexions disponibles sont persistantes dans le fichier TAdoDbxConnections.xml. Lorsque vous avez choisi un fournisseur, l'interface ISQLMetadata est utilisée pour récupérer les métadonnées et afficher une vue arborescente en lecture seule des objets de bases de données. L'implémentation en cours fournit une liste des tables, vues et procédures stockées pour toutes les bases de données prises en charge par AdoDbx Client.

L'explorateur de données vous permet de créer de nouvelles tables, de modifier ou déplacer des tables existantes, de migrer des données à partir de plusieurs tables d'un fournisseur vers un autre et de copier et coller des tables individuelles dans les bases de données ADO prises en charge. Pour toutes ces opérations, l'explorateur de données appelle l'implémentation ISQLSchemaCreate du fournisseur.

De plus, l'explorateur de données peut être utilisé pour faire glisser des données depuis une source de données vers n'importe quel projet RAD Studio pour le .NET Framework. Faire glisser une table sur une fiche ajoute les composants TAdoDbxConnection et TAdoDbxDataAdapter à votre application et configure automatiquement le TAdoDbxDataAdapter pour

Concepteurs de composants ADO.NET RAD Studio pour .NET 1.1 Développement d'applications de

24

1

Page 31: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

la table donnée. Faire glisser une procédure stockée sur une fiche ajoute les composants TAdoDbxConnection et TAdoDbxCommand à votre application, et affecte la valeur StoredProcedure à la propriété CommandType de l'objet TAdoDbxCommand.

Voir aussi

Présentation de ADO.NET ( see page 14)

Types de données AdoDbx.NET ( see page 11)

Utilisation du concepteur de texte de commande ( see page 135)

Utilisation du concepteur éditeur de connexion ( see page 136)

Utilisation du concepteur adaptateur de données ( see page 136)

Utilisation de la prévisualisation d'adaptateur de données ( see page 134)

Utilisation du concepteur d'ensemble de données ( see page 141)

Migration de données entre des bases de données ( see page 122)

Création de mappages de tables ( see page 119)

1.1.8 Déploiement d'applications de bases de données pour le .NET Framework

Pour déployer des applications de bases de données avec RAD Studio, copiez les assemblages d'exécution et les DLL depilotes pour le déploiement à un emplacement spécifié. Les sections suivantes indiquent le nom des assemblages et des DLL etl'emplacement où chacun doit être placé.

Déploiement des applications ADO.NET 2.0

Pour de plus amples informations, voir le fichier source Borland.Data.AdoDbxClientProvider.pas.

Déploiement d'applications BDP.NET

Copiez les assemblages d'exécution de bases de données spécifiques à l'emplacement suivant :

Assemblages managés Fournisseur de données Emplacement

Borland.Data.Common.dll Tous GAC

Borland.Data.Provider.dll Tous GAC

Borland.Data.DB2.dll DB2 GAC

Borland.Data.Interbase.dll Interbase GAC

Borland.Data.Mssql.dll MS SQL/MSDE GAC

Borland.Data.Oracle.dll Oracle GAC

Borland.Data.Msacc.dll MS Access GAC

Borland.Data.Sybase.dll Sybase GAC

Remarque: Si vous déployez une application de base de données distribuée utilisant les composants distants BDP.NET, telsque DataHub, DataSync, RemoteConnection et RemoteServer, vous devez installer Borland.Data.DataSync.dll

dans le GAC. Copiez les DLL des pilotes de bases de données non managées à l'emplacement suivant :

1.1 Développement d'applications de RAD Studio pour .NET Déploiement d'applications de bases de

25

1

Page 32: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

DLL Fournisseur de données Emplacement

bdpint20.dll Interbase chemin de recherche

bdpdb220.dll DB2 chemin de recherche

bdpmss20.dll MS SQL/MSDE chemin de recherche

bdpora20.dll Oracle chemin de recherche

bdpmsa20.dll MS Access chemin de recherche

bdpsyb20.dll Sybase chemin de recherche

Déploiement d'applications dbExpress pour .NET

Copiez les assemblages d'exécution de bases de données spécifiques à l'emplacement suivant :

Assemblages managés Fournisseur de données Emplacement

Borland.VclDbExpress.dll Tous GAC

Borland.VclDbCtrls.dll Tous GAC

Borland.VclDbxCds.dll Requis par les applications de bases de données quiutilisent des ensembles de données client

GAC

Borland.Common.Driver.dll Tous GAC

Vous pouvez déployer les pilotes dbExpress.NET et les DLL associés avec votre exécutable. Copiez les DLL des pilotes debases de données non managées à l'emplacement suivant :

DLL Fournisseur de données Emplacement

dbxINT30.dll InterBase 2007, 7.5.1, 7.1*, 7.0*, 6.5* chemin de recherche

dbxASA30.dll Adaptive Sybase Anywhere 9, 8* chemin de recherche

dbxDB230.dll DB2 UDB 8.x, 7.x* chemin de recherche

dbxINF30.dll Informix 9.x chemin de recherche

dbxMSS30.dll MSSQL 2005, 2000 chemin de recherche

dbxMYSA30.dll MySQL 4.0.24 chemin de recherche

dbxMYS30.dll MySQL 5.0.27, 4.1.22* chemin de recherche

dbxora30.dll Oracle 10g, 9.2.0*, 9.1.0* chemin de recherche

dbxASE30.dll Sybase 12.5 chemin de recherche

Midas.dll Requis par les applications de bases de données quiutilisent des ensembles de données client

chemin de recherche

Remarque: * Le pilote n'est pas totalement certifié pour cette version de la base de données.

Déploiement d'applications dbGo pour .NET

Il n'est pas nécessaire de déployer des assemblages d'exécution ou des pilotes de base de données pour les composants dbGoutilisés dans des applications VCL.NET. Microsoft Data Access Components (MDAC) version 2.1 ou une version ultérieure estnécessaire pour exécuter des applications avec des composants dbGo en dehors de l'EDI. Cela s'applique aux applications VCLWin32, ainsi qu'aux applications VCL.NET. RAD Studio prend en charge MDAC 2.8.

Déploiement d'applications BDE pour .NET

Durant son déploiement, vous devez inclure le BDE avec votre application. Bien que cela augmente la taille de l'application et lacomplexité du déploiement, le BDE peut être partagé avec d'autres applications BDE et assurer un support plus large pour la

Déploiement d'applications de bases de RAD Studio pour .NET 1.1 Développement d'applications de

26

1

Page 33: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

manipulation des bases de données. Même s'il est possible d'utiliser directement l'API du BDE dans votre application, lescomposants de la section BDE de la palette d'outils regroupent la plupart de ces fonctionnalités.

Voir aussi

Présentation Borland du déploiement d'applications

Présentation Microsoft du déploiement d'applications

1.1.9 Fournisseurs de données pour Microsoft .NET

En plus de la prise en charge des fournisseurs inclus dans le .NET Framework, RAD Studio inclut les fournisseurs AdoDbxClientpour Microsoft .NET. AdoDbx Client est une implémentation du .NET Provider et se connecte à un certain nombre de bases dedonnées courantes.

Cette rubrique comprend :

• Architecture de fournisseur de données

• Avantages de AdoDbx Client

• AdoDbx Client et les composants ADO.NET

• Fournisseurs AdoDbx Client pris en charge

• Types de données AdoDbx Client

• Interfaces AdoDbx Client

Architecture de fournisseur de données

RAD Studio prend en charge les fournisseurs .NET Framework et les fournisseurs AdoDbx Client.

AdoDbx.NET propose une architecture performante pour accéder à des sources de données sans passer par une couche COMInterop.

L'architecture expose un ensemble d'interfaces pour l'intégration des tiers. Vous pouvez implémenter ces interfaces pour votrepropre base de données dans le but de fournir des outils de conception et l'intégration de l'accès aux données d'exécution ausein de l'EDI de CodeGear. Les composants gérés par AdoDbx.NET communiquent avec ces interfaces pour accomplir toutesles fonctionnalités d'accès aux données de base. Ces interfaces étaient implémentées pour encapsuler les bibliothèques clientnatives spécifiques aux bases de données par le biais des services Platform Invoke (P/Invoke). Selon la disponibilité des clientsde bases de données gérés, vous pouvez implémenter un fournisseur intégralement géré sous AdoDbx.NET.

1.1 Développement d'applications de RAD Studio pour .NET Fournisseurs de données pour Microsoft

27

1

Page 34: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

L'implémentation propre à la base de données est encapsulée dans un assemblage et le nom complet de l'assemblage esttransmis au composant AdoDbxConnection en tant que partie de la chaîne de connexion. Selon l'entrée d'assemblage dans lapropriété ConnectionString, AdoDbx.NET charge dynamiquement le fournisseur propre à la base de données et utilisel'implémentation pour ISQLConnection, ISQLCommand et ISQLCursor. Ceci permet aux applications de permuter d'une base dedonnées à une autre en modifiant seulement la propriété ConnectionString pour pointer sur un autre fournisseur.

Avantages de AdoDbx.NET

AdoDbx.NET propose de nombreux avantages :

• Un modèle de programmation unifié applicable à plusieurs plates-formes de bases de données

• Une architecture d'accès aux données très performante

• Une architecture ouverte, prenant facilement en charge des bases de données supplémentaires

• Un code portable écrit une seule fois et permettant la connexion avec toutes les bases de données gérées.

• Lorsque c'est applicable, un mappage de types de données cohérent entre bases de données.

• Des types de données logiques mappés sur les types .NET natifs.

• A la différence d'OLE DB, pas de nécessité d'une couche COM Interop.

• La possibilité de consulter des données dynamiques pendant la conception de votre application.

• L'extension d'ADO.NET dans le but d'offrir des interfaces pour les services de métadonnées, la création de schémas et la migration de données.

• Un ensemble complet de concepteurs de composants et d'outils pour accélérer le développement d'applications de bases de données.

RAD Studio étend .NET pour gérer d'autres plates-formes de bases de données, en proposant une architecture de connexion et des types de données cohérents.

Composants AdoDbx.NET et ADO.NET

L'ensemble de données est une représentation mémoire d'une ou de plusieurs tables de données (DataTable). Chaque table dedonnées d'un ensemble de données est constitué de lignes (DataRow) et de colonnes (DataColumn) de données. L'ensemblede données est généré comme résultat d'une requête SQL que vous procurez au fournisseur. Vous pouvez naviguer dansl'ensemble de données comme vous le feriez dans n'importe quelle table relationnelle standard. Les fournisseurs AdoDbx.NETencapsulent les détails de l'implémentation de chaque type de base de données, vous permettant toujours de personnaliser vosinstructions SQL et de gérer les ensembles de résultats avec une souplesse totale.

AdoDbx.NET offre un certain nombre de composants de conception que vous pouvez placer dans un Windows Form ou un WebForm. Un ensemble de concepteurs est également fourni pour vous aider à construire vos connexions de données, ensemblesde données, relations et autres éléments.

Les composants primaires les plus utiles, tout particulièrement si vous décidez d'implémenter le fournisseur propre à votre basede données, sont les suivants :

• AdoDbxConnection — établit une connexion de base de données

• AdoDbxCommand — inclut un ensemble de méthodes et de propriétés pour l'exécution du code SQL et des procédures stockées

• AdoDbxDataReader — récupère les données

• AdoDbxParameter — prend en charge la liaison des paramètres d'exécution

• AdoDbxTransaction — prend en charge le contrôle des transactions

• AdoDbxDataAdapter — fournit et résout les données

• ISQLMetaData — récupère les métadonnées

• ISQLSchemaCreate — inclut des méthodes pour la création, le glissement et la modification des objets de bases de données

Pour plus d'informations, cliquez sur le lien de chaque composant, ou cherchez les composants dans la documentation de

Fournisseurs de données pour Microsoft RAD Studio pour .NET 1.1 Développement d'applications de

28

1

Page 35: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

référence de l'API de cette aide.

Fournisseurs AdoDbx.NET pris en charge

AdoDbx.NET comporte des fournisseurs pour un certain nombre de bases de données les plus courantes du marché. Elles sontprésentées dans le tableau suivant, avec leurs espaces de nommage correspondants.

Base de données Espace de nommage

InterBase Borland.Data.Interbase

Oracle Borland.Data.Oracle

IBM DB2 Borland.Data.Db2

Microsoft SQL Server Borland.Data.Mssql

Microsoft Access Borland.Data.Msacc

Sybase Borland.Data.Sybase

Les composants AdoDbx.NET, l'accès aux métadonnées et les concepteurs sont définis sous les espaces de nommagesuivants :

• Borland.Data.AdoDbxClientProvider

• Borland.Data.Common

• Borland.Data.Schema

• Borland.Data.Design

Types de données AdoDbx.NET

AdoDbx.NET mappe les types de données SQL en types de données .NET Framework, vous évitant ainsi l'apprentissage d'unsystème de types spécifiques aux bases de données. Chaque tentative a été effectuée pour implémenter des mappages detypes cohérents à travers les types de bases de données, vous permettant ainsi d'écrire un ensemble de sources que vouspouvez exécuter sur de multiples bases de données. Vous pouvez obtenir un effet semblable avec les fournisseurs de données.NET Framework en communiquant directement avec leurs interfaces et en utilisant des ancêtres non typés. Toutefois, si vousutilisez des accesseurs fortement typés, votre application devient moins portable. AdoDbx.NET ne prend pas en charge lesaccesseurs typés spécifiques aux bases de données. Pour plus d'informations, voir la rubrique Types de données AdoDbx.NET.

Interfaces AdoDbx.NET

Vous pouvez étendre AdoDbx.NET pour gérer d'autres SGBD en implémentant un sous-ensemble de l'interface de fournisseur.NET. AdoDbx.NET généralise l'essentiel des fonctionnalités nécessaires pour implémenter les fournisseurs de données. Si le.NET Framework vous donne la possibilité de créer des fournisseurs de données spécifiques pour chaque source de données,CodeGear a simplifié la tâche en offrant un ensemble de fonctionnalités généralisées. Au lieu de construire des fournisseursdistincts, avec les objets correspondants DataAdapters, DataReaders, Connection et les autres objets nécessaires, vous pouvezimplémenter un ensemble d'interfaces AdoDbx.NET pour construire vos propres compléments source de données dans lefournisseur client AdoDbx.

Concevoir un complément est une tâche beaucoup plus aisée que de construire entièrement un nouveau fournisseur. Vousconstruisez un assemblage contenant l'espace de nommage de votre fournisseur, ainsi que les classes qui encapsulent lesfonctionnalités propres au fournisseur. L'essentiel des fonctionnalités nécessaires pour se connecter, exécuter des commandeset récupérer des données dans vos sources de données sont déjà définies dans les interfaces du fournisseur client AdoDbx.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants AdoDbx.NET ( see page 22)

Types de données AdoDbx.NET ( see page 11)

1.1 Développement d'applications de RAD Studio pour .NET Présentation des procédures stockées

29

1

Page 36: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.1.10 Présentation des procédures stockées

Toutes les bases de données relationnelles présentent certaines caractéristiques communes qui permettent aux applications destocker et de manipuler les données. Une procédure stockée est un programme autonome écrit dans le langage propre ausystème de base de données utilisé. En général, une procédure stockée gère les tâches très répétitives sur les bases dedonnées et est particulièrement utile pour les opérations qui s'appliquent à un grand nombre d'enregistrements ou qui utilisentdes fonctions statistiques ou mathématiques. Les procédures stockées se trouvent généralement sur le serveur de bases dedonnées.

L'appel d'une procédure stockée est similaire à l'appel d'une commande SQL et RAD Studio prend en charge l'utilisation desprocédures stockées de la même façon qu'il prend en charge la modification et l'utilisation du texte de commande SQL.

Les procédures stockées peuvent améliorer vos applications de bases de données de l'une des façons suivantes : en améliorantles performances, la sécurité et la fiabilité de vos applications.

• Performances — les procédures stockées peuvent améliorer les performances d'une application de base de données en tirant parti de la puissance et la vitesse de traitement généralement supérieures du serveur et en réduisant le trafic réseau en déplaçant le traitement sur le serveur. De plus, le SQL compilé utilisé dans une procédure stockée s'exécute généralement plus rapidement que le texte d'une commande SQL standard.

• Sécurité — en créant une couche entre les clients et la base de données, les procédures stockées peuvent améliorer la sécurité de vos données. Vous n'avez pas besoin d'accorder de permissions de bases de données à des utilisateurs individuels. A la place, vous pouvez accorder aux utilisateurs la permission d'exécuter une procédure stockée indépendamment des permissions de tables sous-jacentes.

• Fiabilité — les procédures stockées aident à centraliser le code, ce qui facilite l'isolation et la résolution des problèmes. De plus, les procédures stockées vous permettent de déplacer la logique métier propre à la base de données dans la base de données, et de la rendre ainsi accessible à tous les clients indépendamment du langage utilisé.

Lorsque vous utilisez AdoDbx Client, l'éditeur de texte de commande et l'explorateur de données offrent tous deux la possibilité de visualiser les paramètres de vos procédures stockées, de spécifier les paramètres d'entrée et d'exécuter vos procédures stockées pendant la conception de votre application.

Voir aussi

Concepteurs de composants ADO.NET ( see page 22)

Fournisseurs pour Microsoft .NET ( see page 27)

1.1.11 Framework dbExpress

Le framework dbExpress (framework DBX) est un ensemble de classes abstraites fournies dans l'unité DBXCommon. Lesapplications peuvent s'interfacer avec le framework de différentes façons : en utilisant le framework directement pour lesapplications natives et managées, et en utilisant les composants dbExpress VCL disposés en couches au sommet du frameworkpour les applications natives et managées.

Bien que de nombreuses applications s'interfacent avec les pilotes dbExpress via les composants dbExpress VCL, le frameworkDBX offre une option utile et légère pour communiquer avec un pilote de base de données. Vous pouvez également créer unpilote de base de données pour dbExpress en étendant les classes de base abstraites DBXCommon du framework. Leframework DBX fournit les fonctionnalités de pilote de base de données les plus courantes pour une application de base dedonnées orientée "ensemble", ainsi qu'une interface simple.

Voici quelques fonctionnalités clés du framework DBX :

Framework dbExpress RAD Studio pour .NET 1.1 Développement d'applications de

30

1

Page 37: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Le framework de pilote est écrit entièrement en langage Delphi et permet aux pilotes d'être écrits en Delphi.

• Il utilise l'accès aux données fortement typées au lieu des pointeurs. Par exemple, il utilise les types chaîne à la place des pointeurs vers des chaînes.

• Le framework de pilote est à source unique. Cela signifie qu'une copie unique du source peut être compilée avec les compilateurs DCC32 natif et DCCIL managés.

• Le framework a seulement des classes de base abstraites qui sont utilisées pour les pilotes, les connexions, les commandes, les lecteurs, et ainsi de suite.

• Le framework utilise la gestion des erreurs basée sur les exceptions, plutôt que le renvoi de codes d'erreur.

Capacités

IL existe deux catégories de pilotes qui étendent les classes dans DBXCommon : DBXDynaLink et DBXDirect. Ces pilotesdiffèrent les uns des autres dans la façon dont ils sont chargés et par les capacités qu'ils fournissent à une application. Cescapacités sont détaillées par la suite.

Vous pouvez également étendre le framework DBX pour écrire des pilotes de délégation qui fournissent une couchesupplémentaire entre l'application et le pilote réel. Les pilotes délégués sont utiles pour le pooling de connexion, le profilage depilote, le traçage et l'audit. Une autre application possible de délégation de pilote est la création d'un délégué de pilote adaptéaux threads. Un tel délégué peut fournir un accès synchronisé de thread à toutes les méthodes publiques.

La sécurité de thread absolue est laissée aux applications utilisant dbExpress. Toutefois, certains problèmes de sécurité dethread sont mieux gérés par le framework dbExpress. Les opérations de sécurité de thread dbExpress incluent le chargement etle déchargement des pilotes, ainsi que la création de connexions. Comme mentionné plus tôt, un pilote délégué peut être créépour rendre l'interface publique entière de dbExpress adaptée aux threads si nécessaire.

Un pilote dbExpress 4 peut lier statiquement ou dynamiquement des pilotes construits en tant que packages Delphi. La meilleurefaçon de lier un package de pilote est simplement de l'inclure la clause "uses". Le chargeur de pilote charge également lespackages spécifiés dans un fichier config ou ini à l'aide de la méthode LoadPackage. Cela permet un chargement dynamiquedes pilotes qui ne sont jamais spécifiés dans une clause uses d'une des unités de l'application. Notez que l'approcheLoadPackage peut seulement être employée pour les applications construites pour utiliser des packages.

Les auteurs de pilotes dbExpress 4 doivent examiner les sections d'initialisation des unités DBXDynalink et DBXTrace dans lecode source fourni avec dbExpress. Ces sections se recensent elles-mêmes avec une unité singleton appelée le ClassRegistry.Le ClassRegistry est utilisé par le chargeur de pilote dbExpress 4 pour instancier les classes chargeur de pilote par le nom (unechaîne). Le ClassRegistry est un mécanisme léger et simple pour le recensement et l'instanciation d'une classe par le nom.

Pilotes DBXDynalink

DBXDynalink est utilisé pour les pilotes dbExpress 3 existants, ainsi que pour les nouveaux pilotes. Il est compilé comme unpackage Delphi natif ou un assemblage .NET managé. DBXDynalink charge les pilotes dbExpress natifs qui implémentent uneinterface "native" plus primitive appelée DBXExports. L'interface DBXExports est une petite collection de méthodes d'exportationsimples. Le source de DBXExports est inclus avec dbExpress. DBXExports fournit une API plus fortement typée que l'interfaceCOM de dbExpress 3. Cela permet l'ajout des méthodes dans les générations de produits futures sans casser la compatibilitéavec les anciennes implémentations de l'interface DBXExports.

DBXAdapter est un pilote compatible dbExpress 4 qui adapte l'interface DBXExports à l'ancienne interface COM dbExpress 3.Les nouveaux pilotes natifs peuvent être écrits en implémentant directement DBXExports.

Puisque l'interface DBXExports a été conçue pour être implémentée au moyen d'un langage natif (Delphi ou C++), elle utiliseune gestion d'erreurs basée sur les exceptions plus primitive. DBXDynalink mappe les codes d'erreur en exceptionDBXCommon.

L'unité DBXDynalink contient un pilote dbExpress 4. Ce pilote délègue les pilotes non-Delphi qui implémentent l'interfaced'exportation simple DBXDynalinkExport. DBXTrace est un pilote délégué utilisé pour le traçage. La bibliothèque VCLDbExpress utilise DBXCommon, DBXDynalink et DbxTrace comme pilotes "par défaut". Toutefois, cela peut être changé pourles applications liées statiquement sans modifier le code source dbExpress VCL (SQLExpr.pas). SQLExpr.pas utilise l'unité

1.1 Développement d'applications de RAD Studio pour .NET Framework dbExpress

31

1

Page 38: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

DBXDefaultDrivers. L'unité DBXDefaultDrivers contient seulement une clause uses. La clause uses de DBXDefaultDriverscontient DBXCommon, DBXDynalink et DBXTrace. DBXCommon doit toujours être utilisé. Toutefois, une application liéestatiquement peut retirer DBXTrace et remplacer DBXDynalink par un pilote différent.

Pilotes DBXDirect

Un pilote DBXDirect est un pilote implémenté en étendant les classes de base abstraites DBXCommon. Ces classes sont écritesen Delphi pour les implémentations natives. Pour les implémentations managées, elles peuvent être écrites au moyen d'unlangage compatible CLR tel que Delphi, C# ou Visual Basic.NET.

Strictement parlant, tous les pilotes de framework DBX sont une forme de pilote DBXDirect. Toutefois, DBXDynalink etDBXRemote fournissent une liaison plus "indirecte" aux implémentations de pilotes.

Voir aussi

Compatibilité du framework de pilote de base de données dbExpress ( see page 33)

Déploiement d'applications de bases de données dbExpress

1.1.12 Compatibilité du framework dbExpress

Certains logiciels dbExpress développés avant le framework de pilote dbExpress (framework de pilote DBX) ont été modifiéspour fonctionner avec le framework de pilote DBX. A cause de ces modifications, certains problèmes de compatibilité seproduisent.

Général

Les pilotes dbExpress 2.5 ne peuvent pas être utilisés avec le framework DBX.

Le framework dbExpress n'offre pas une compatibilité à 100% avec dbExpress 3.

Les pilotes dbExpress 3 peuvent être utilisés avec le framework DBX. Le chargeur du framework de pilote DBX détecteautomatiquement les pilotes dbExpress 3 et utilise le pilote DBXAdapter (dbxadapter30.dll) afin qu'un pilote dbExpress 3ressemble à un pilote dbExpress 4.

Voici la liste des problèmes de compatibilité connus :

• Liaison de pilotes statique. Vous ne pouvez pas lier de façon statique des pilotes dbExpress dans un exécutable.

• SqlExpr.TSQLConnection fournissait un accès protégé au membre Connection qui était de type TISQLConnection seulement dans la version native de SqlExpr.pas. Cela a été omis dans la version managée en raison de la complexité de l'utilisation de PInvoke dans la version managée de la VCL dbExpress. SqlExpr.TSQLConnection fournit maintenant à la place un accès protégé à un TDBXConnection. Cette connexion protégée est accessible aux applications natives et managées.

• L'événement du contrôle des traces est légèrement différent car il est basé sur le framework de pilote DBX.

• Le pilote DBXadapter peut adapter les pilotes dbExpress 3 à dbExpress 4, mais pas les pilotes dbExpress 2.5.

Problèmes VCL

La plupart des applications utilisant des composants VCL dbExpress devraient fonctionner sans modification. Toutefois, desmodifications localisées sont apportées aux composants VCL en raison de la VCL s'interfaçant maintenant sur le framework depilote DBX orienté objet au lieu de l'interface de pilote dbExpress 3 basée sur COM C-like.

En outre, l'API a été légèrement modifiée pour les deux composants VCL suivants : TSQLConnection et TSQLDataSet.Certaines structures de données ont également été modifiées. Vous trouverez ci-après un résumé des changements de l'API.

Remarque: A cause des modifications apportées à l'API, vous devez recompiler SqlExpr.pas qui est livré avec le produit.L'unité DBXpress a été dépréciée.

• TSQLConnection. La méthode Commit a été dépréciée en faveur de la nouvelle méthode CommitFreeAndNil. La méthode

Compatibilité du framework dbExpress RAD Studio pour .NET 1.1 Développement d'applications de

32

1

Page 39: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Rollback a été dépréciée en faveur des nouvelles méthodes RollbackFreeAndNil et RollbackIncompleteFreeAndNil. La méthode SetTraceCallbackEvent a été remplacée par SetTraceEvent. La méthode StartTransaction a été dépréciée en faveur de la nouvelle méthode BeginTransaction. La propriété MetaData contient une instance de la nouvelle classe TDBXDatabaseMetaData au lieu de TISQLMetaData. La propriété SQLConnection a été remplacée par DBXConnection, qui contient une instance de la nouvelle classe TDBXConnection. La propriété TraceCallbackEvent contient maintenant un TDBXTraceEvent.

• TSQLDataSet. La nouvelle propriété DbxCommandType a été ajoutée. Elle contient une des chaînes constante de la classe TDBXCommandTypes.

• Structures de données. TTransactionItem a été dépréciée et remplacée par la nouvelle classe TDBXTransaction. TSQLDriverOption, TSQLConnectionOption, TSQLCommandOption, TSQLCursorOption, TSQLMetaDataOption et TSQLObjectType sont obsolètes. TSTMTParamType a été remplacée par la classe TDBXParameterDirections. TSQLTraceFlag a été remplacée par TDBXTraceFlags. SQLTRACEDesc a été remplacée par TDBXTraceInfo.

Voir aussi

Framework dbExpress

Déploiement du framework dbExpress

1.1.13 Introduction à InterBase Express

InterBase Express (IBX) est un ensemble de composants d'accès aux données qui permet d'accéder à des données de basesde données InterBase. Les composants Administration InterBase, qui requièrent InterBase 6, sont décrits après les composantsd'accès aux données InterBase.

Composants IBX

Les composants suivants sont situés sur l'onglet InterBase de la palette des composants.

Icône Nom du composant

Description

TIBTable Un composant ensemble de données qui encapsule une table debase de données.

TIBQuery Exécute une instruction SQL InterBase.

TIBStoredProc Encapsule une procédure stockée sur un serveur de base dedonnées.

TIBDatabase Encapsule une connexion à une base de données InterBase.

TIBTransaction Fournit un contrôle discret des transactions sur une ou plusieursconnexions de base de données dans une application de base dedonnées.

TIBUpdateSQL Fournit un objet pour mettre à jour des ensembles de données enlecture seule lorsque les mises à jour en mémoire cache sontactivées.

TIBDataSet Exécute des instructions SQL InterBase.

TIBSQL Fournit un objet pour l'exécution d'une instruction SQL InterBaseavec une charge système minimale.

TIBDatabaseInfo Renvoie des informations sur la base de données liée.

TIBSQLMonitor Suit le SQL dynamique passé au serveur InterBase.

TIBExtract Récupère des métadonnées à partir d'un serveur InterBase.

1.1 Développement d'applications de RAD Studio pour .NET Introduction à InterBase Express

33

1

Page 40: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

TIBCustomDataSet La classe de base de tous les ensembles de donnéesreprésentant les données lues à l'aide d'InterBase Express.

Bien que leurs noms soient similaires à ceux des composants BDE, les composants IBX sont quelque peu différents. Lessections ci-dessous présentent ces différences pour les composants ayant un équivalent BDE.

Il n'existe pas de migration simple d'applications BDE vers des applications IBX. Vous devrez généralement remplacer lescomposants BDE par les composants IBX comparables, puis recompiler vos applications. Toutefois, la vitesse gagnée et lespuissantes fonctionnalités InterBase auxquelles vous pouvez alors accéder justifient pleinement la migration.

IBDatabase

Utilisez un composant TIBDatabase pour établir des connexions à des bases de données susceptibles d'impliquer une ouplusieurs transactions simultanées. A la différence de BDE, IBX possède un composant transaction distinct qui permet deséparer les transactions des connexions de base de données.

Pour définir une connexion de base de données :

1. Déposez un composant IBDatabase sur une fiche ou un module de données.

2. Initialisez la propriété DatabaseName. Pour une connexion locale, il s'agit du lecteur, du chemin et du nom du fichier de la base de données. Initialisez la propriété Connected à true.

3. Entrez un nom d'utilisateur et un mot de passe corrects puis cliquez sur OK pour établir la connexion à la base de données.

Avertissement: Astuce : Vous pouvez stocker le nom de l'utilisateur et son mot de passe dans la propriété Params du composant IBDatabase en initialisant la propriété LoginPrompt à false après l'ouverture de la session. Par exemple, après avoir ouvert une session en tant qu'administrateur système et avoir initialisé la propriété LoginPrompt à false, vous pourrez voir les informations suivantes en éditant la propriété Params :

user_name=sysdbapassword=masterkey

IBTransaction

A la différence de Borland Database Engine, IBX contrôle les transactions avec un composant séparé, TIBTransaction. Cettefonctionnalité puissante vous permet de séparer les transactions des connexions de base de données pour pouvoir bénéficier dumécanisme de validation à deux phases d'InterBase (les transactions s'étendant sur plusieurs connexions) et de plusieurstransactions simultanées utilisant la même connexion.

Utilisez un composant IBTransaction pour gérer les contextes de transactions, qui peuvent mettre en jeu une ou plusieursconnexions de base de données. Dans la plupart des cas, un modèle simple avec une base de données et une transaction feral'affaire.

Pour définir une transaction :

1. Définissez une connexion IBDatabase comme décrit ci-dessus.

2. Déposez un composant IBTransaction sur la fiche ou le module de données.

3. Affectez à la propriété DefaultDatabase le nom de votre composant IBDatabase.

4. Initialisez la propriété Active à true pour démarrer la transaction.

Composants ensemble de données IBX

Il existe plusieurs composants ensembles de données parmi lesquels vous pouvez faire votre choix avec IBX ; chacun possède ses caractéristiques propres et est adapté à des tâches particulières :

IBTable

Utilisez un composant TIBTable pour définir un ensemble de données dynamique sur une table ou une vue sans avoir à entrer d'instructions SQL.

Introduction à InterBase Express RAD Studio pour .NET 1.1 Développement d'applications de

34

1

Page 41: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Les composants IBTable sont faciles à configurer :

1. Ajoutez un composant IBTable à votre fiche ou votre module de données.

2. Spécifiez les composants base de données et transaction associés.

3. Spécifiez le nom de la relation à partir de la liste déroulante TableName.

4. Initialisez la propriété Active à true.

IBQuery

Utilisez un composant TIBQuery pour exécuter n'importe quelle instruction DSQL InterBase, restreindre votre ensemble de résultats à certaines colonnes et certaines lignes, utiliser des fonctions d'agrégation et effectuer des jointures entre plusieurs tables.

Les composants IBQuery fournissent un ensemble de données en lecture seule et s'adaptent bien à l'environnement client-serveur d'InterBase. Pour définir un composant IBQuery :

1. Définissez une connexion IBDatabase comme décrit ci-dessus.

2. Définissez une connexion IBTransaction comme décrit ci-dessus.

3. Ajoutez un composant IBQuery à votre fiche ou votre module de données.

4. Spécifiez les composants base de données et transaction associés.

5. Entrez dans l'éditeur de listes de chaînes une instruction SQL valide pour la propriété SQL du composant IBQuery.

6. Initialisez la propriété Active à true.

IBDataSet

Utilisez un composant TIBDataSet pour exécuter n'importe quelle instruction DSQL InterBase, restreindre votre ensemble de résultats à certaines colonnes et certaines lignes, utiliser des fonctions d'agrégation et effectuer des jointures entre plusieurs tables. Les composants IBDataSet sont similaires aux composants IBQuery, mis à part qu'ils prennent en charge les ensembles de données dynamiques sans nécessiter un composant IBUpdateSQL.

L'exemple suivant fournit un ensemble de données dynamique pour la table COUNTRY dans employee.gdb :

1. Définissez une connexion IBDatabase comme décrit ci-dessus.

2. Spécifiez les composants base de données et transaction associés.

3. Ajoutez un composant IBDataset à votre fiche ou votre module de données.

4. Entrez des instructions SQL pour les propriétés suivantes : SelectSQL, RefreshSQL, ModifySQL, DeleteSQL, InsertSQL. Consultez le tableau suivant pour des exemples d'instructions SQL.

5. Initialisez la propriété Active à true.

Exemples d'instructions SQL

Propriété Instruction SQL

SelectSQL SELECT Country, Currency FROM Country

RefreshSQL SELECT Country, Currency FROM Country WHERE Country = :Country

ModifySQL UPDATE Country SET Country = :Country, Currency = :Currency WHERE Country =:Old_Country

DeleteSQL DELETE FROM Country WHERE Country = :Old_Country

InsertSQL INSERT INTO Country (Country, Currency) VALUES (:Country, :Currency)

Remarque: Remarque : Les paramètres et les champs transmis aux fonctions sont sensibles à la casse dans le dialecte 3.Par exemple,

FieldByName(EmpNo)

1.1 Développement d'applications de RAD Studio pour .NET Introduction à InterBase Express

35

1

Page 42: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ne renvoie rien dans le dialecte 3 si le champ est spécifié sous la forme 'EMPNO'.

IBStoredProc

Utilisez TIBStoredProc pour les procédures exécutables InterBase : les procédures qui renvoient au plus une ligned'informations. Pour les procédures stockées renvoyant plus d'une ligne de données ou les procédures "Select", utilisez descomposants IBQuery ou IBDataSet.

IBSQL

Utilisez un composant TIBSQL pour les opérations qui doivent être rapides et légères. Des opérations telles que la définition dedonnées et la copie de données d'une base de données vers une autre sont bien adaptées aux composants IBSQL.

Dans l'exemple suivant, un composant IBSQL est utilisé pour renvoyer la valeur suivante à partir d'un générateur :

1. Définissez une connexion IBDatabase comme décrit ci-dessus.

2. Positionnez un composant IBSQL sur la fiche ou le module de données et affectez le nom de la base de données à sa propriété Database.

3. Ajoutez une instruction SQL dans l'éditeur de listes de chaînes pour la propriété SQL, par exemple :

SELECT GEN_ID(MyGenerator, 1) FROM RDB$DATABASE

IBUpdateSQL

Utilisez un composant TIBUpdateSQL pour mettre à jour des ensembles de données en lecture seule. Vous pouvez mettre àjour une sortie IBQuery avec un composant IBUpdateSQL :

1. Définissez un composant IBQuery comme décrit ci-dessus.

2. Ajoutez un composant IBUpdateSQL à votre fiche ou votre module de données.

3. Entrez des instructions SQL pour les propriétés suivantes : DeleteSQL, InsertSQL, ModifySQL et RefreshSQL.

4. Affectez le nom du composant IBUpdateSQLà la propriété UpdateObject du composant IBQuery.

5. Initialisez la propriété Active du composant IBQuery à true.

IBSQLMonitor

Utilisez un composant TIBSQLMonitor pour développer des outils de diagnostic permettant de surveiller les communications entre votre application et le serveur InterBase. Quand les propriétés TraceFlags d'un composant IBDatabase sont activées, les composants IBSQLMonitor actifs peuvent surveiller l'activité de la connexion et envoyer le résultat vers un fichier ou un contrôle.

Un bon exemple consisterait à créer une application séparée avec un composant IBSQLMonitor et un contrôle Memo. Lancez cette deuxième application, puis dans l'application principale, activez les propriétés TraceFlags du composant IBDatabase. Travaillez avec l'application principale et observez le contrôle Memo de la deuxième application se remplir de données.

IBDatabaseInfo

Utilisez un composant TIBDatabaseInfo pour lire des informations sur une base de données particulière, comme son intervalle de nettoyage, sa version ODS et les noms des utilisateurs actuellement connectés à cette base de données.

Par exemple, pour définir un composant IBDatabaseInfo affichant les utilisateurs actuellement connectés à la base de données, procédez comme suit :

1. Définissez une connexion IBDatabase comme décrit ci-dessus.

2. Placez un composant IBDatabaseInfo sur la fiche ou le module de données et affectez à sa propriété Database le nom de la base de données.

3. Placez un composant Memo sur la fiche.

4. Placez un composant Timer sur la fiche et définissez son intervalle.

5. Double-cliquez sur le champ de l'événement OnTimer du composant Timer et entrez un code de la forme :

Memo1.Text := IBDatabaseInfo.UserNames.Text; // Exemple DelphiMemo1->Text = IBDatabaseInfo->UserNames->Text; // Exemple C++

Introduction à InterBase Express RAD Studio pour .NET 1.1 Développement d'applications de

36

1

Page 43: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

IBEvents

Utilisez un composant IBEvents pour demander la notification et traiter de manière asynchrone les événements transmis par unserveur InterBase.

Pour définir un composant IBEvents :

1. Définissez une connexion IBDatabase comme décrit ci-dessus.

2. Positionnez un composant IBEvents sur la fiche ou le module de données et affectez le nom de la base de données à sa propriété Database.

3. Entrez des événements dans l'éditeur de listes de chaînes de la propriété Events, par exemple : IBEvents.Events.Add('EVENT_NAME'); (pour Delphi) ou IBEvents->Events->Add("EVENT_NAME"); (pour C++).

4. 4. Initialisez la propriété Registered à true.

Composants Administration InterBase

Si vous avez installé InterBase 6, vous pouvez utiliser les composants Administration InterBase 6, qui vous permettent d'accéder aux puissants appels à l'API des services InterBase.

Les composants suivants sont situés sur l'onglet d'administration d'InterBase de l'EDI :

TIBConfigService

TIBBackupService

TIBRestoreService

TIBValidationService

TIBStatisticalService

TIBLogService

TIBSecurityService

TIBLicensingService

TIBServerProperties

TIBInstall

TIBUnInstall

Remarque : Pour utiliser ces fonctionnalités, vous devez installer InterBase 6.

IBConfigService

Utilisez un objet TIBConfigService pour configurer les paramètres d'une base de données, y compris les tampons de pages, lemode asynchrone, l'espace de réserve et l'intervalle de balayage.

IBBackupService

Utilisez un objet TIBBackupService pour effectuer une copie de sauvegarde de votre base de données. Cet objet vous permetde définir des paramètres tels que le facteur de blocage, le nom du fichier de sauvegarde et les options de sauvegarde de labase de données.

IBRestoreService

Utilisez un objet TIBRestoreService pour restaurer votre base de données. Cet objet vous permet de définir des options tellesque les tampons de pages, la taille des pages et les options de restauration de la base de données.

IBValidationService

Utilisez un objet TIBValidationService pour valider votre base de données et réconcilier vos transactions de base de données.

1.1 Développement d'applications de RAD Studio pour .NET Introduction à InterBase Express

37

1

Page 44: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Cet objet vous permet de définir l'action de transaction par défaut, de renvoyer des informations sur les transactions limbo et dedéfinir d'autres options de validation de la base de données.

IBStatisticalService

Utilisez un objet TIBStatisticalService pour afficher les statistiques sur la base de données, par exemple les pages de données,le journal de la base de données, les pages d'en-tête, les pages d'index et les relations système.

IBLogService

Utilisez un objet TIBLogService pour créer un fichier journal.

IBSecurityService

Utilisez un objet TIBSecurityService pour gérer l'accès des utilisateurs au serveur InterBase. Cet objet vous permet de créer, desupprimer et de modifier des comptes utilisateur, d'afficher tous les utilisateurs et de définir des groupes de travail en utilisantdes rôles SQL.

IBLicensingService

Utilisez un composant TIBLicensingService pour ajouter ou supprimer des certificats d'activation logiciels InterBase.

IBServerProperties

Utilisez un composant TIBServerProperties pour renvoyer des informations sur le serveur, y compris les paramètres deconfiguration, les informations relatives à la version et à la licence.

IBInstall

Utilisez un composant TIBInstall pour définir un composant d'installation InterBase, y compris les répertoires d'installation sourceet de destination et les composants à installer.

IBUnInstall

Utilisez un composant TIBUnInstall pour définir un composant de désinstallation.

Introduction à InterBase Express RAD Studio pour .NET 1.1 Développement d'applications de

38

1

Page 45: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.2 Développement d'applications avec du code non managé

RAD Studio permet d'exploiter les fonctionnalités .NET supportant le code non managé.

Si vous avez des composants COM ou ActiveX que vous souhaitez utiliser avec le .NET Framework, vous pouvez employer lespossibilités de COM Interop .NET depuis RAD Studio lors de la construction de vos applications.

Rubriques

Nom Description

Utilisation de l'interopérabilité COM dans les applications managées ( see page 40)

COM Interop est un service .NET qui permet une interopérabilité transparente entre code managé et code non managé. Le service COM Interop est un intermédiaire dans les deux sens : ll vous permet de réutiliser des serveurs COM ou des contrôles ActiveX existants dans de nouvelles applications .NET mais aussi d'exposer des composants .NET dans d'anciennes applications non managées.L'EDI RAD Studio offre des outils qui vous aideront à intégrer vos serveurs COM et contrôles ActiveX existants à des applications managées. Depuis l'EDI, vous pouvez ajouter à votre projet des références à des DLL non managées puis parcourir les types qu'elles... suite ( see page 40)

Utilisation de DrInterop ( see page 45) L'outil en ligne de commande drinterop examine un assemblage et vous aide à le préparer à être utilisé avec COM/Interop par tout un jeu de messages de diagnostic.L'outil drinterop se trouve dans le répertoire bin d'installation du produit. Pour l'appeler, tapez

Déploiement des applications Interop COM ( see page 46) Il faut garder deux choses importantes à l'esprit lors de l'utilisation de composants non managés. Tout d'abord, n'oubliez pas qu'un assemblage d'interopérabilité ne remplace pas le serveur COM ; il lui sert de proxy, de substitut. Les assemblages d'interopérabilité générés par tlbimp et RAD Studio ne sont pas une transformation du code non managé du composant en code managé. Chaque fichier nécessité par le composant dans un environnement de déploiement non managé, doit également être déployé dans un environnement managé, en plus des assemblages d'interopérabilité. Deuxièmement, les services d'interopérabilité du .NET Framework n'annulent pas la nécessité de recenser le serveur... suite ( see page 46)

Utilisation de Platform Invoke avec Delphi pour .NET ( see page 46) Cette rubrique décrit les techniques de base de l'utilisation des APIs non managées. Certaines erreurs et certains pièges courants sont signalés, et des informations de référence rapide pour la conversion des types de données Delphi sont fournies. Cette rubrique ne tente pas de présenter les fondements de platform invoke ou du marshaling de données. Reportez-vous aux liens présents à la fin de cette rubrique pour plus d'informations sur platform invoke et le marshaling. Une compréhension des attributs et de la manière dont ils s'utilisent est aussi fortement recommandée avant de lire ce document.L'API Win32 est utilisée pour plusieurs exemples.... suite ( see page 46)

Interfaces de bibliothèques virtuelles ( see page 54) Cette rubrique explique comment utiliser une fonctionnalité de Delphi appelée Interfaces de bibliothèques virtuelles. Les Interfaces de bibliothèques virtuelles vous permettent de découvrir, de charger et d'appeler du code non managé à l'exécution, sans utiliser l'attribut DllImport.

1.2.1 Utilisation de l'interopérabilité COM dans les applications managées

COM Interop est un service .NET qui permet une interopérabilité transparente entre code managé et code non managé. Leservice COM Interop est un intermédiaire dans les deux sens : ll vous permet de réutiliser des serveurs COM ou des contrôlesActiveX existants dans de nouvelles applications .NET mais aussi d'exposer des composants .NET dans d'anciennes

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de l'interopérabilité COM dans

39

1

Page 46: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

applications non managées.

L'EDI RAD Studio offre des outils qui vous aideront à intégrer vos serveurs COM et contrôles ActiveX existants à desapplications managées. Depuis l'EDI, vous pouvez ajouter à votre projet des références à des DLL non managées puis parcourirles types qu'elles contiennent comme pour les assemblages managés. Vous pouvez ajouter des contrôles ActiveX à la paletted'outils, puis les déposer dans vos fiches comme vous le feriez avec tous les composants .NET.

Cette présentation aborde les sujets suivants :

• Introduction à la terminologie COM Interop. Si vous êtes déjà familiarisé avec ces concepts, vous pouvez passer directement à la section sur les fonctionnalités et outils de l'EDI RAD Studio pour COM/Interop.

• Introduction à certains des outils du Kit de développement .NET Framework SDK relatifs à COM/Interop.

• Utilisation d'assemblages COM Interop dans l'EDI.

Présentation de COM Interop

Une interopérabilité transparente est obtenue via l'utilisation d'objets de remplacement appelé RCW (Runtime CallableWrappers). RCW est en fait une couche de communication entre votre application managée et le vrai serveur COM non managé.

Terminologie de l'interopérabilité COM

Le .NET Framework contient un grand nombre de termes et d'acronymes en trois lettres. Cette section vous aide à comprendrela terminologue que vous rencontrerez en consultant d'autres documents traitant de COM Interop.

Métadonnées

Dans le contexte de .NET et COM, les métadonnées sont les informations de type. Dans COM, les informations de type peuventêtre stockées de diverses manières. Par exemple, un fichier en-tête C++ est un conteneur spécifique à ce langage pour desinformations de type. Une bibliothèque de types est également un conteneur pour des informations de type, mais étant au formatbinaire, les bibliothèques de types sont indépendantes du langage. A la différence du modèle de développement COM danslequel les bibliothèques de types ne sont pas obligatoires, des métadonnées indépendantes du langage sont obligatoires danstous les assemblages .NET. Chaque assemblage est auto-descriptif, ses métadonnées contiennent des informations de typecomplètes, y compris pour les types privés et les membres de classe privés.

Attributs personnalisés

Les développeurs balisent fréquemment des entités de programme (comme les classes ou leurs méthodes) avec des attributsdescriptifs comme static, private, protected ou public. Dans le .NET Framework, vous pouvez baliser toute entité, y compris lesclasses, les propriétés, les méthodes et même les assemblages avec des attributs dont vous définissez la forme et le sens. Lesattributs sont exprimés dans le code source et sont traités par le compilateur. A la fin du processus de construction, les attributspersonnalisés sont émis dans l'assemblage généré comme toutes les autres métadonnées.

Réflexion

Caractéristique unique du .NET Framework, les informations de type ne sont pas perdues lors du processus de compilation. A laplace, toutes les métadonnées, y compris les attributs personnalisés sont envoyés par le compilateur dans l'assemblage finalgénéré. Les métadonnées sont disponibles à l'exécution via les services Reflection .NET. Le Kit de développement .NETFramework SDK propose un outil de réflexion, nommé ildasm, qui permet au développeur d'ouvrir tout assemblage .NET etd'inspecter les types qui y sont déclarés. De tels outils de réflexion permettent souvent au programmeur de voir directement lecode IL généré par le compilateur. L'EDI RAD Studio contient son propre outil intégré de réflexion, sous la forme de l'outil

Utilisation de l'interopérabilité COM dans RAD Studio pour .NET 1.2 Développement d'applications avec du

40

1

Page 47: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

d'exploration des métadonnées qui apparaît lorsque vous ouvrez un assemblage .NET.

Global Assembly Cache (GAC)

Dans COM, les composants peuvent être déployés n'importe où sur la machine de l'utilisateur. Généralement, le scriptd'installation d'un composant stocke son emplacement dans le registre système. Des outils en ligne de commande commeregsvr32 et tregsvr peuvent également ajouter ou retirer des composants COM du registre. Le recensement des composants estnécessaire en programmation COM, même si les composants ne sont pas conçus pour être partagés par plusieurs applications.

Le modèle de programmation .NET simplifie radicalement le déploiement des applications et des composants. Dans laplate-forme .NET, les composants non partagés sont déployés directement dans le répertoire local d'installation de l'application ;le recensement n'est pas nécessaire. Par ailleurs, un composant non partagé peut être déployé dans un répertoire spécifié dansle fichier de configuration de l'application. Ici encore, le recensement n'est pas nécessaire dans ce scénario de déploiement.

Les composants partagés sont déployés dans un emplacement spécial, le Global Assembly Cache (cache d'assemblage global)ou GAC. Le GAC est une évolution du registre système (bien qu'utilisant un mécanisme complètement différent et n'étantaucunement associé au registre). Le GAC existe dans le système de fichiers dans un répertoire nommé \Windows\Assembly. Le.NET Framework gère le déploiement simultané ou "côte à côte" de différentes versions d'un même composant. Quand vousvisualisez le dossier Global Assembly Cache en utilisant l'Explorateur Windows, vous examinez en fait le GAC via une extensionspéciale du shell. L'extension du shell affiche tous les assemblages qui ont été installés dans le GAC, avec des informations surla version, la culture et la clé publique.

Il y a trois manières d'installer un composant .NET dans le GAC. Vous pouvez premièrement utiliser l'outil en ligne decommande du Kit de développement nommé gacutil, qui est décrit plus bas. Un autre moyen d'installer un composant dans leGAC est de vous placer sur le répertoire \Windows\Assembly en utilisant l'Explorateur Windows et d'y déposer simplementl'assemblage dans le panneau liste des dossiers. Vous pouvez enfin utiliser l'outil de configuration .NET, accessible depuis lePanneau de configuration Windows.

Noms forts

Le concept de nom fort est similaire à celui de l'identificateur global unique sur 128 bits (GUID) en programmation COM. UnGUID est un nom dont l'unicité globale est garantie. Chaque assemblage .NET a un nom simple, constitué d'une chaîne detexte, un numéro de version et des informations facultatives sur la culture. Pour les assemblages partagés installés dans leGAC, le nom simple seul ne suffit pas à garantir l'unicité de l'identification de l'assemblage. Pour générer un nom globalementunique, une clé d'encryptage avec des composants public et privé est utilisée pour générer une signature numérique. Lasignature est alors appliquée à l'assemblage en utilisant le lieur d'assemblage du Kit de développement .NET Framework SDK(al.exe) ou en utilisant les attributs de l'assemblage dans le code source.

RCW (Runtime Callable Wrappers) et CCW (COM Callable Wrappers)

L'accès à un composant, que ce soit un composant .NET ou un serveur COM, est largement transparent. C'est-à-dire que sivous utilisez un serveur COM dans une application .NET, le serveur COM ressemble aux autres composants .NET. De même,un composant .NET exposé à une application non managée via COM Interop, ressemble à un serveur COM. Cette transparenceest obtenue par des objets proxy ou wrapper agissant "derrière le décor".

Quand vous utilisez un objet COM dans une application managée, le CLR (Common Language Runtime) crée un RCW qui estl'interface entre code managé et code non managé. La complexité du transfert des données du comptage de références estgérée par le RCW. En fait, le RCW n'expose même pas les interfaces IUnknown et IDispatch.

Quand vous utilisez un objet .NET dans une application non managée, le système crée un substitut appelé CCW (COM CallableWrapper).

Assemblage d'interopérabilité primaire

Dans le modèle de programmation COM, une fois qu'un GUID est attribué à un type, le GUID désigne toujours ce typespécifique, peu importe où apparaît le type. Par exemple, une même interface peut être définie dans plusieurs bibliothèques,

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de l'interopérabilité COM dans

41

1

Page 48: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

mais chaque bibliothèque de types distincte doit définir l'interface avec le même GUID, la duplication n'est donc pas unproblème. Mais si vous générez des assemblages d'interopérabilité COM pour ces types distincts, un nouvel assemblage distinctest créé pour chaque bibliothèque de types. Chacun de ces assemblages distincts contient des types distincts (du point de vuedu CLR). Les noms forts et la nature auto-descriptive des assemblages .NET fonctionnent à votre détriment dans ce cas. Onobtient ici un GAC rempli d'assemblages d'interopérabilité contenant tous des RCW pour la même bibliothèque de types. Pire,pour le CLR chaque assemblage contient des types distincts et incompatibles, car chacun d'eux a un nom fort différent.

Pour éviter cette prolifération d'assemblages et des incompatibilités potentielles de types, l'architecture vous permet de spécifierun assemblage comme l'assemblage primaire d'interopérabilité d'une bibliothèque de types. Un assemblage primaired'interopérabilité est toujours signé avec un nom fort, par l'éditeur d'origine de la bibliothèque de types.

Outils COM Interop du Kit de développement .NET Framework SDK

Certaines fonctionnalités proposées par les outils du Kit de développement .NET Framework SDK sont exposées parl'environnement de développement. Cette section n'est pas conçue pour proposer une référence complète de ces outils, elle estjuste conçue comme un point de départ pour une exploration plus poussée du Kit de développement .NET Framework SDK, etafin de vous aider à mieux comprendre l'intégration de la technologie COM dans l'EDI.

Importation et exportation de bibliothèques de types

Tlbimp est un outil en ligne de commande que vous pouvez utiliser pour générer un assemblage .NET à partir d'unebibliothèque de types. Tlbimp agit directement sur une bibliothèque de types ou sur une DLL non managée qui contient unebibliothèque de types comme ressource incorporée. Comprenez bien que l'assemblage généré par tlbimp ne contient que lecode du RCW pas celui de l'objet COM d'origine. Il est donc toujours nécessaire de déployer et de recenser l'objet COM sur lamachine de l'utilisateur final. L'assemblage contient également les types décrits dans la bibliothèque de types, exprimés sousforme de métadonnées. Tlbimp utilise un commutateur de la ligne de commande pour générer un assemblage primaired'interopérabilité.

Le Kit de développement .NET Framework SDK contient un autre outil en ligne de commande, nommé tlbexp, qui permet decréer une bibliothèque de types pour un assemblage .NET. La bibliothèque de types ainsi générée peut servir à exposer lecomposant .NET comme serveur COM, utilisable dans une application non managée.

Importation de bibliothèque de contrôles ActiveX

Aximp est un outil en ligne de commande permettant de générer l'assemblage encapsulant un contrôle ActiveX. Cetassemblage est nécessaire pour pouvoir utiliser le contrôle ActiveX dans un Windows Form. Un utilitaire spécial est nécessaire,car un Windows Form ne peut accueillir que des contrôles dérivés de la classe System.Windows.Forms.Control, et l'utilitairetlbimp ne crée pas un wrapper dérivé de cette classe.

L'outil aximp génère à la fois les assemblages d'interopérabilité (comme pour tlbimp cela inclut des assemblages dépendants)et l'assemblage wrapper ActiveX. Comme tlbimp, aximp a des commutateurs de ligne de commande pour signer lesassemblages générés avec un nom fort. A la différence de tlbimp, aximp ne peut générer un assemblage primaired'interopérabilité.

Génération de noms forts

Si vous déployez un composant .NET dans le GAC, vous devez signer votre assemblage avec une clé de nom fort. Celas'effectue en utilisant l'outil en ligne de commande sn du Kit de développement .NET Framework SDK. Un assemblage est signéavec un nom fort de l'une des trois manières suivantes :

• En spécifiant le nom du fichier clé de nom fort dans la ligne de commande du lieur d'assemblage (al).

• En balisant l'assemblage avec l'attribut AssemblyKeyFile.

• En utilisant une technique nommée "signature retardée".

Si la signature retardée est utilisée, lors de la construction l'assemblage est signé avec la partie clé publique du fichier clé. Avant de distribuer l'assemblage, l'outil sn est utilisé à nouveau pour signer l'assemblage avec la clé privée.

Utilisation de l'interopérabilité COM dans RAD Studio pour .NET 1.2 Développement d'applications avec du

42

1

Page 49: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Déploiement d'un composant .NET dans le Global Assembly Cache

L'utilitaire gacutil du Kit de développement .NET Framework SDK est un programme en ligne de commande utilisé pourinstaller, supprimer et afficher les composants du GAC. La commande gacutil est utilisable dans des scripts d'installation oudans des fichiers batch. La commande gacutil gère l'installation ou la suppression d'assemblages partagés avec ou sansutilisation du décompte des références. Il est recommandé d'utiliser les commutateurs de commande sans décompte desréférences uniquement lors du développement. Les scripts d'installation qui utilisent gacutil pour installer des composantspartagés doivent toujours utiliser les commutateurs de ligne de commande avec décompte des références.

Utilisation d'assemblages COM Interop dans l'EDI

Toutes les fonctionnalités offertes par les outils en ligne de commande du Kit de développement .NET Framework SDK sont enfait exposées par la bibliothèque de classes .NET Framework. L'EDI RAD Studio utilise également les classes .NET pourexposer des fonctionnalités d'interopérabilité. L'EDI offre cependant davantage que les outils en ligne de commande ce quisimplifie davantage l'interopérabilité avec des composants non managés.

Bibliothèques de types et assemblages d'interopérabilité

L'EDI démarre la création d'assemblages d'interopérabilité via le gestionnaire de projet. Quand vous ajoutez dans votre projetune référence à une DLL, vous pouvez sélectionner des bibliothèques de types recensées et des DLL non managées, ou vouspouvez choisir un composant non managé.

L'EDI crée un assemblage d'interopérabilité pour chaque bibliothèque de types ou DLL importée. Les assemblages sontnommés Interop.NomBibliothèque.dll, où NomBibliothèque est le nom de la bibliothèque de types. Le nom de la bibliothèque estcelui spécifié dans l'instruction library du code source IDL, le nom de fichier de l'assemblage généré peut dont être différent decelui de la DLL ou de la bibliothèque de types d'origine. Chaque assemblage d'interopérabilité (et tous ses assemblagesdépendants) sont ajoutés à votre projet comme assemblages référencés. Les types contenus dans l'assemblaged'interopérabilité sont ajoutés à un espace de nommage portant le même nom que la bibliothèque de types ; ici encore, il estdérivé de l'instruction library du code source IDL.

Si l'assemblage que vous référencez a un assemblage d'interopérabilité primaire, l'EDI le reconnaît et évite de générer unnouvel assemblage d'interopérabilité. Dans ce cas, l'EDI ajoute une référence à l'assemblage d'interopérabilité primaire dans leGAC, et il ne copie pas l'assemblage dans le répertoire local de votre projet.

Importation de contrôles ActiveX

Pour utiliser un contrôle ActiveX dans votre application managée, vous devez commencer par ajouter le contrôle à la paletted'outils. Cela crée à la fois un assemblage d'interopérabilité et un assemblage ActiveX avec une classe wrapper dérivée deSystem.Windows.Forms.AxHost. L'assemblage wrapper ActiveX est nommé AxInterop.NomBibliothèque.dll, oùNomBibliothèque est le nom de la bibliothèque de types. Si vous faites glisser le contrôle depuis la palette dans un WindowsForm, cela ajoute automatiquement à votre projet des références aux deux assemblages.

Une fois dans la fiche, le contrôle ActiveX peut être traité comme tous les autres composants .NET. Vous pouvez sélectionner lecontrôle et définir ses propriétés et ses gestionnaires d'événements dans l'inspecteur d'objets. Le wrapper du contrôle ActiveXexpose les propriétés de la classe Windows.Forms.Control, et les propriétés exposées par le contrôle ActiveX sont regroupéesdans la catégorie Divers.

Assemblages d'interopérabilité et gestionnaire de projet

Les assemblages d'interopérabilité (y compris les assemblages wrapper de contrôle ActiveX) générés par l'EDI sont conservésdans un dossier séparé nommé COMImports, sous votre projet. Chaque assemblage généré a sa propriété "Copie Locale"définie, ce qui signifie que lors de la construction du projet, l'assemblage est copié dans le dossier où est conservée la cible deconstruction finale du projet. Les exceptions à cette règle sont les assemblages primaires d'interopérabilité, qui sont déployésdans le GAC. Quand vous ajoutez une référence à un assemblage primaire d'interopérabilité, l'EDI ne copie pas l'assemblagedans le dossier COMImports. L'assemblage reste affiché dans le gestionnaire de projet, mais si vous cliquez avec le bouton

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de l'interopérabilité COM dans

43

1

Page 50: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

droit pour afficher ses propriétés, vous remarquerez que le paramètre "Copie locale" est désactivé.

La liste des assemblages référencés (y compris ceux qui ne sont pas des assemblages d'interopérabilité) est un attribut de votreprojet. Si le dossier COMImports (ou l'un des assemblages d'interopérabilité contenus dedans) n'existe pas lors de l'ouvertured'un projet, l'EDI tente de les recréer. Si l'EDI ne peut recréer un assemblage d'interopérabilité, il est toujours affiché commeassemblage référencé dans le gestionnaire de projet ; l'EDI met en évidence un tel assemblage afin de vous indiquer qu'iln'existe pas actuellement (ou qu'il n'est pas recensé) sur la machine.

Voir aussi

Ajout d'une référence à un serveur COM ( see page 148)

Ajout d'un contrôle ActiveX à la palette des outils

Utilisation de Platform Invoke avec Delphi ( see page 46)

Interfaces de bibliothèques virtuelles ( see page 54)

1.2.2 Utilisation de DrInterop

L'outil en ligne de commande drinterop examine un assemblage et vous aide à le préparer à être utilisé avec COM/Interoppar tout un jeu de messages de diagnostic.

L'outil drinterop se trouve dans le répertoire bin d'installation du produit. Pour l'appeler, tapez

drinterop assembly

Message Cause

L'attribut ComVisible de l'assemblage a la valeurtrue alors qu'il devrait avoir la valeur false.

L'attribut [assembly:ComVisible(bool)] a la valeur true ou estabsent.

Les assemblages doivent être masqués au COM pour réduire lesencombrements de registre.

Donnez à l'attribut ComVisible la valeur false et exposez lesclasses et les interfaces de manière sélective.

L'assemblage, la classe ou l'interface est exposé àCOM mais ne contient pas l'attribut Guid.

L'attribut ComVisible de l'assemblage, la classe ou l'interface a lavaleur true mais ne contient pas d'attribut Guid.

Il faut générer et enregistrer une bibliothèque de typespour assemblage.

Ce message est généré quand une bibliothèque de types estintrouvable dans le répertoire de l'assemblage.

L'assemblage ne contient pas l'attributTypeLibVersion.

L'assemblage ne contient pas l'attribut [assembly:TypeLibVersion(x,y)].

Par défaut, la génération des numéros de version des bibliothèquesde types n'utilise que les deux premiers numéros de la version del'assemblage. L'utilisation de l'attribut TypeLibVersion peut aider àéviter les problèmes dans les cas où deux assemblages produiraientla même bibliothèque de types parce que les deux premiers chiffresde leurs numéros de version respectifs seraient identiques.

Utilisation de DrInterop RAD Studio pour .NET 1.2 Développement d'applications avec du

44

1

Page 51: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour réduire la taille du registre, ajoutez l'attribut[ClassInterface(ClassInterfaceType.None)]à la classe.

La classe ne contient pas l'attribut ClassInterface.

Par défaut, chaque classe entraîne la création de l'interfacecorrespondante, où le nom de la classe est précédé d'un caractèrede soulignement. Aucune méthode n'est associée à cette interface.

Pour réduire la taille et l'encombrement du registre, ajoutez l'attribut[ClassInterface(ClassInterfaceType.None)] à la classe.

Remarque: L'outil drinterop

n'imprime aucun message s'il ne trouve aucune des conditions ci-dessus.

1.2.3 Déploiement des applications Interop COM

Il faut garder deux choses importantes à l'esprit lors de l'utilisation de composants non managés. Tout d'abord, n'oubliez pasqu'un assemblage d'interopérabilité ne remplace pas le serveur COM ; il lui sert de proxy, de substitut. Les assemblagesd'interopérabilité générés par tlbimp et RAD Studio ne sont pas une transformation du code non managé du composant encode managé. Chaque fichier nécessité par le composant dans un environnement de déploiement non managé, doit égalementêtre déployé dans un environnement managé, en plus des assemblages d'interopérabilité. Deuxièmement, les servicesd'interopérabilité du .NET Framework n'annulent pas la nécessité de recenser le serveur COM sur la machine de l'utilisateurfinal. Sachez que l'obligation de recensement vaut également lors du développement de votre application managée.

Comme pour tous les autres assemblages .NET, un assemblage d'interopérabilité peut être déployé avec l'exécutable managédans le dossier d'installation ou il peut être déployé dans le GAC. Si vous déployez l'assemblage d'interopérabilité dans le GAC,vous devez lui donner un nom fort lors du développement. Les assemblages primaires d'interopérabilité sont toujours déployésdans le GAC ; mais ce n'est pas parce qu'un assemblage est déployé dans le GAC que cela en fait automatiquement unassemblage primaire d'interopérabilité. Un assemblage primaire d'interopérabilité est conçu comme assemblage primaired'interopérabilité en utilisant l'option de ligne de commande /primary de l'utilitaire tlbimp. Actuellement l'EDI n'a pas de gestionintégrée de la création d'assemblages primaires d'interopérabilité. Les serveurs COM non managés peuvent être déployésn'importe où sur la machine de l'utilisateur final, mais comme indiqué précédemment, vous devez toujours recenser lescomposants non managés lors de l'installation de votre application.

Voir aussi

Présentation CodeGear du déploiement d'applications

Présentation Microsoft du déploiement d'applications

1.2.4 Utilisation de Platform Invoke avec Delphi pour .NET

Cette rubrique décrit les techniques de base de l'utilisation des APIs non managées. Certaines erreurs et certains piègescourants sont signalés, et des informations de référence rapide pour la conversion des types de données Delphi sont fournies.Cette rubrique ne tente pas de présenter les fondements de platform invoke ou du marshaling de données. Reportez-vous auxliens présents à la fin de cette rubrique pour plus d'informations sur platform invoke et le marshaling. Une compréhension desattributs et de la manière dont ils s'utilisent est aussi fortement recommandée avant de lire ce document.

L'API Win32 est utilisée pour plusieurs exemples. Pour plus de détails sur les fonctions d'API mentionnées, consultez ladocumentation du SDK Windows Platform.

Cette section aborde les sujets suivants :

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de Platform Invoke avec Delphi

45

1

Page 52: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Appel de fonctions non managées

• Structures

• Fonctions de callback

• Transmission de références d'objets

• Utilisation d'interfaces COM

Appel de fonctions non managées

Pour l'appel de fonctions non managées, il est nécessaire de créer une déclaration managée de la fonction qui représentera lestypes non managés. Les fonctions acceptent souvent des pointeurs sur des données qui peuvent être de types variables. C'est,par exemple, le cas d'une fonction de l'API Win32 SystemParametersInfo qui est déclarée comme suit :

BOOL SystemParametersInfo( UINT uiAction, // paramètre système à lire ou à écrire UINT uiParam, // dépend de l'action à entreprendre PVOID pvParam, // dépend de l'action à entreprendre UINT fWinIni // option de mise à jour du profil utilisateur);

Selon la valeur de uiAction, pvParam peut être une structure parmi plusieurs dizaines de structures différentes ou de typesde données simples. Comme il n'est pas possible de représenter cela au moyen d'une déclaration managée unique, il estnécessaire de déclarer plusieurs versions surchargées de la fonction (voir Borland.Vcl.Windows.pas), où chaque surchargecouvre un cas particulier. Le paramètre pvParam peut aussi recevoir la déclaration générique IntPtr. La charge du marshalingrepose ainsi sur l'appelant au lieu de reposer sur le marshaler intégré. Notez que les types de données utilisés dans unedéclaration managée d'une fonction non managée doivent être de types pris en charge par le marshaler par défaut. Sinon,l'appelant doit déclarer le paramètre IntPtr et prendre la responsabilité du marshaling des données.

Types de données

La plupart des types de données n'ont pas besoin d'être modifiés, à l'exception des types pointeurs et chaînes. Le tableausuivant montre des types de données couramment utilisés, ainsi que la manière de les convertir pour du code managé :

Type de données non managé Type de données managé

Paramètre d'entrée Paramètre de sortie

Pointeur sur chaîne (PChar) String StringBuilder

Paramètre/tampon non typé TBytes TBytes

Pointeur sur structure (PRect) const TRect var TRect

Pointeur sur type simple (PByte) const Byte var Byte

Pointeur sur tableau (PInteger) array of Integer array of Integer

Pointeur sur type pointeur (^PInteger) IntPtr IntPtr

IntPtr peut aussi représenter tous les types pointeurs et chaînes, auquel cas vous devez effectuer manuellement le marshallingdes données en utilisant la classe Marshal. Avec les fonctions recevant un tampon de texte, la solution la plus simple consiste àutiliser la classe StringBuilder. L'exemple suivant montre comment utiliser un StringBuilder pour recevoir un tampon de texte :

function GetText(Window: HWND; BufSize: Integer = 1024): string;var Buffer: StringBuilder;begin Buffer := StringBuilder.Create(BufSize); GetWindowText(Window, Buffer, Buffer.Capacity); Result := Buffer.ToString;end;

La classe StringBuilder est automatiquement marshalée en tampon non managé et inversement. Dans certains cas, il peut être

Utilisation de Platform Invoke avec Delphi RAD Studio pour .NET 1.2 Développement d'applications avec du

46

1

Page 53: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

pratique ou possible d'utiliser un StringBuilder. Les exemples suivants montrent comment marshaler des données et lire deschaînes en utilisant SendMessage :

procedure SetText(Window: HWND; Text: string);var Buffer: IntPtr;begin Buffer := Marshal.StringToHGlobalAuto(Text); try Result := SendMessage(Window, WM_SETTEXT, 0, Buffer); finally Marshal.FreeHGlobal(Buffer); end;end;

Un tampon non managé est alloué, et la chaîne y est copiée au moyen d'un appel à StringToHGlobalAuto. Le tampon doitêtre libéré lorsqu'il n'est plus nécessaire. Pour marshaler un pointeur sur une structure, utilisez la méthode Marshal.StructureToPtr afin de copier le contenu de la structure dans le tampon mémoire non managé.

L'exemple suivant montre comment recevoir un tampon de texte et marshaler les données dans une chaîne :

function GetText(Window: HWND; BufSize: Integer = 1024): string;var Buffer: IntPtr;begin Buffer := Marshal.AllocHGlobal(BufSize * Marshal.SystemDefaultCharSize); try SendMessage(Window, WM_GETTEXT, BufSize, Buffer); Result := Marshal.PtrToStringAuto(Buffer); finally Marshal.FreeHGlobal(Buffer); end;end;

Il importe de s'assurer que le tampon soit d'une taille suffisante, et l'utilisation de la méthode SystemDefaultCharSize garantiraque le tampon peut contenir BufSize caractères sur n'importe quel système.

Techniques avancées

Lors de l'utilisation d'API non managées, il est courant de transmettre des paramètres, soit comme pointeurs, soit avec la valeurNULL. Etant donné que les traductions d'API managées n'utilisent pas les types pointeurs, il peut être nécessaire de créer uneversion surchargée supplémentaire de la fonction, avec le paramètre pouvant valoir NULL déclaré IntPtr.

Cas spéciaux

Il existe des cas où une classe StringBuilder et même la classe Marshal seront incapables de traiter correctement les donnéesqui doivent être transmises à une fonction non managée. C'est par exemple le cas lorsque la chaîne que vous devez transmettreou recevoir contient plusieurs chaînes séparées par des caractères NULL. Etant donné que le marshaler par défaut considérerale premier NULL comme fin de la chaîne, les données seront tronquées (cela s'applique également aux méthodesStringToHGlobalXXX et PtrToStringXXX). Dans cette situation, des TBytes peuvent être utilisés (avec les fonctionsPlatformStringOf et PlatformBytesOf de Borland.Delphi.System pour convertir le tableau d'octets vers/à partir d'unechaîne). Notez que ces fonctions utilitaires n'ajoutent et ne suppriment pas de caractères NULL de terminaison.

Lors de l'utilisation d'interfaces COM, l'énumération UnmanagedType (utilisée par la classe MarshalAsAttribute) a une valeurspéciale, LPStruct. Cette valeur n'est valide qu'avec une classe System.Guid, provoquant la conversion par le marshaler duparamètre en une structure Win32 GUID. La fonction CoCreateInstance déclarée dans Delphi 7 sous la forme :

function CoCreateInstance([MarshalAs(UnmanagedType.LPStruct)] clsid: TCLSID; [MarshalAs(UnmanagedType.IUnknown)] unkOuter: TObject; dwClsContext: Longint; [MarshalAs(UnmanagedType.LPStruct)] iid: TIID; [MarshalAs(UnmanagedType.Interface)] out pv): HResult;

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de Platform Invoke avec Delphi

47

1

Page 54: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Il s'agit actuellement de la seule utilisation documentée de UnmanagedType.LPStruct.

Structures

La différence la plus importante entre l'appel de fonctions non managées et la transmission de structures à des fonctions nonmanagées réside dans le fait que le marshaler par défaut présente des restrictions majeures lors de l'utilisation de structures. Laplus importante d'entre elles est que les tableaux dynamiques, les tableaux de structures et la classe StringBuilder ne peuventpas être utilisés dans les structures. Dans ces situations, IntPtr est nécessaire (même si dans certains cas il est possibled'utiliser string couplé à différents attributs de marshaling pour les chaînes).

Types de données

Le tableau suivant montre des types de données couramment utilisés, ainsi que la manière de les "traduire" pour du codemanagé :

Type de données non managé Type de données managé

Paramètre d'entrée Paramètre de sortie

Pointeur sur chaîne (PChar) String IntPtr

Tableau de caractères (array[a..b] of Char) String String

Tableau de type valeur (array[a..b] of Byte) array[a..b] ofByte

array[a..b] ofByte

Tableau dynamique (array[0..0] of type) IntPtr IntPtr

Tableau de struct (array[1..2] of TRect) IntPtr ou flatten IntPtr ou flatten

Pointeur sur structure (PRect) IntPtr IntPtr

Pointeur sur type simple (PByte) IntPtr IntPtr

Pointeur sur tableau (PInteger) IntPtr IntPtr

Pointeur sur type pointeur (^PInteger) IntPtr IntPtr

Lors de l'utilisation de tableaux et de chaînes dans les structures, l'attribut MarshalAs permet de décrire des informationssupplémentaires sur le type de données pour le marshaler par défaut. Un enregistrement déclaré dans Delphi 7, par exemple :

type TMyRecord = record IntBuffer: array[0..31] of Integer; CharBuffer: array[0..127] of Char; lpszInput: LPTSTR; lpszOutput: LPTSTR; end;

serait déclaré comme suit dans RAD Studio :

type [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] TMyRecord = record [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] IntBuffer: array[0..31] of Integer; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] CharBuffer: string; [MarshalAs(UnmanagedType.LPTStr)] lpszInput: string; lpszOutput: IntPtr; end;

Les déclarations ci-dessus supposent que les chaînes contiennent des TChar dépendants de la plate-forme (tels qu'ils sontcouramment utilisés par l'API Win32). Il importe de noter que pour recevoir un texte dans lpszOutput, il est nécessaired'appeler la méthode Marshal. AllocHGlobal avant de transmettre la structure à une fonction d'API.

Utilisation de Platform Invoke avec Delphi RAD Studio pour .NET 1.2 Développement d'applications avec du

48

1

Page 55: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Une structure peut contenir des structures, mais pas de pointeurs sur des structures. Dans ces situations, il est nécessaire dedéclarer un IntPtr et d'utiliser la méthode Marshal. StructureToPtr pour transférer les données de la structure managée vers lamémoire non managée. Notez que StructureToPtr n'alloue pas la mémoire nécessaire (cette opération doit être effectuéeséparément). Assurez-vous d'utiliser Marshal. SizeOf pour déterminer la quantité de mémoire nécessaire, car la méthode SizeOfde Delphi n'a pas connaissance de l'attribut MarshalAs (dans l'exemple ci-dessus, CharBuffer occuperait 4 octets avec laméthode SizeOf de Delphi alors qu'il devrait en fait occuper 128 octets sur un système à un octet). Les exemples suivantsmontrent comment envoyer des messages qui transmettent des pointeurs à une structure :

procedure SetRect(Handle: HWND; const Rect: TRect);var Buffer: IntPtr;begin Buffer := Marshal.AllocHGlobal(Marshal.SizeOf(TypeOf(TRect))); try Marshal.StructureToPtr(TObject(Rect), Buffer, False); SendMessage(Handle, EM_SETRECT, 0, Buffer); finally Marshal.DestroyStructure(Buffer, TypeOf(TRect)); end;end; procedure GetRect(Handle: HWND; var Rect: TRect);var Buffer: IntPtr;begin Buffer := Marshal.AllocHGlobal(Marshal.SizeOf(TypeOf(TRect))); try SendMessage(Handle, EM_GETRECT, 0, Buffer); Rect := TRect(Marshal.PtrToStructure(Buffer, TypeOf(TRect))); finally Marshal.DestroyStructure(Buffer, TypeOf(TRect)); end;end;

Il est important d'appeler DestroyStructure plutôt que FreeHGlobal si la structure contient des champs avec lesquels la couchede marshaling doit libérer des tampons supplémentaires (voir la documentation de DestroyStructure pour plus de détails).

Rubriques avancées

En utilisant des API non managées, il n'est pas rare de devoir convertir un tableau d'octets en structure (ou de récupérer un ouplusieurs champs d'une structure contenue dans un tableau d'octets) ou vice versa. Bien que la classe Marshal contienne uneméthode permettant d'obtenir le décalage d'un champ donné, elle est extrêmement lente et devrait être évitée dans la plupartdes situations. Des tests de performances informels montrent que pour une structure avec huit ou neuf champs numériques, ilest beaucoup plus rapide d'allouer un bloc de mémoire non managée, de copier le tableau d'octets dans la mémoire nonmanagée puis d'appeler PtrToStructure plutôt que de trouver la position d'un champ seulement en utilisant Marshal. OffsetOfpuis de convertir les données à l'aide de la classe BitConverter. Borland.Vcl.WinUtils contient des fonctions utilitaires poureffectuer des conversions entre tableaux d'octets et structures (voir StructureToBytes et BytesToStructure).

Cas spéciaux

Il existe des cas où un traitement personnalisé est nécessaire, comme par exemple l'envoi d'un message avec un pointeur surun tableau d'entiers. Pour de telles situations, la classe Marshal fournit des méthodes pour copier directement les données dansle tampon non managé, à des décalages spécifiés (pour vous permettre de construire un tableau de type de donnéespersonnalisé après avoir alloué un tampon). L'exemple suivant montre comment envoyer un message où LParam est unpointeur sur un tableau d'Integer :

function SendArrayMessage(Handle: HWND; Msg: UINT; WParam: WPARAM; LParam: TIntegerDynArray): LRESULT; var Buffer: IntPtr;begin

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de Platform Invoke avec Delphi

49

1

Page 56: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Buffer := Marshal.AllocHGlobal(Length(LParam) * SizeOf(Integer)); try Marshal.Copy(LParam, 0, Buffer, Length(LParam)); Result := SendMessage(Handle, Msg, WParam, Buffer); finally Marshal.FreeHGlobal(Buffer); end;end;

Fonctions de callback

Lors de la transmission d'un pointeur de fonction managée à une API non managée, il est nécessaire de maintenir une référencesur le délégué, faute de quoi il sera éliminé par le nettoyage de la mémoire. Si vous transmettez directement un pointeur à votrefonction managée, un délégué temporaire sera créé, et dès qu'il sortira de la portée (à la fin de MyFunction dans l'exempleci-après), il sera soumis au nettoyage de la mémoire. Considérez le code Delphi 7 suivant :

function MyFunction: Integer;begin ... RegisterCallback(@MyCallback); ...end;

Pour fonctionner dans un environnement managé, ce code devra prendre la forme suivante :

const MyCallbackDelegate: TFNMyCallback = @MyCallback; function MyFunction: Integer;begin ... RegisterCallback(MyCallbackDelegate); ...end;

Cela garantira que le callback pourra être appelé dès lors que MyCallbackDelegate sera dans la portée.

Types de données

Les mêmes règles s'appliquent aux callbacks comme à toute autre fonction d'API non managée.

Cas spéciaux

Tout paramètre utilisé dans un processus asynchrone doit être déclaré IntPtr. Le marshaler libérera la mémoire qu'il a allouéepour les types non managés au retour de l'appel de la fonction. Si vous utilisez un IntPtr, il est de votre responsabilité de libérertout espace mémoire alloué.

Transmission de références d'objets

Lorsque vous utilisez, par exemple, l'API Windows, des références d'objets sont quelquefois transmises à l'API pour êtrestockées puis retransmises à l'application pour le traitement habituellement associé à un événement donné. Cela peut toujourss'effectuer dans .NET, mais il est nécessaire d'accorder une attention spéciale au fait qu'une référence soit conservée sur tousles objets (sinon, ils pourront être et seront éliminés par le nettoyage de la mémoire).

Types de données

Types de données non managés Type de données managé

Fournir des données Recevoir desdonnées

Pointeur (référence d'objet, données utilisateur) GCHandle GCHandle

Utilisation de Platform Invoke avec Delphi RAD Studio pour .NET 1.2 Développement d'applications avec du

50

1

Page 57: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

GCHandle offre le principal moyen pour transmettre les références d'un objet sur le code non managé et faire en sorte que lenettoyage de la mémoire n'ait pas lieu. Un GCHandle doit être alloué, puis libéré par la suite lorsqu'il n'est plus nécessaire. Ilexiste plusieurs types de GCHandle, GCHandleType.Normal étant le plus utile lorsqu'un client non managé conserve la seuleréférence. Pour transmettre un GCHandle à une fonction d'API après son allocation, transtypez-le en IntPtr (puis éventuellementen LongInt, selon la déclaration non managée). Le IntPtr peut être par la suite retranstypé en GCHandle. Notez que IsAllocateddoit être appelée avant d'accéder à la propriété Target, comme illustré ci-dessous :

procedure MyProcedure;var Ptr: IntPtr; Handle: GCHandle; begin ... if Ptr <> nil then begin Handle := GCHandle(Ptr); if Handle.IsAllocated then DoSomething(Handle.Target); end; ...end;

Techniques avancées

L'utilisation d'un GCHandle, même si elle est relativement simple, est plutôt coûteuse en termes de performances. Elle ouvreégalement la porte à des pertes de ressources si les handles ne sont pas libérés correctement. Si des références d'objets sontmaintenues dans le code managé, il est possible de transmettre à l'API non managée un index unique, par exemple le code dehachage renvoyé par la méthode GetHashCode, à la place d'une référence d'objet. Il est possible de maintenir une table dehachage du côté managé pour faciliter la lecture d'une instance d'objet à partir d'une valeur de hachage si nécessaire. Voustrouverez un exemple d'utilisation de cette technique dans la classe TTreeNodes (dans Borland.Vcl.ComCtrls).

Utilisation d'interfaces COM

Lors de l'utilisation d'interfaces COM, une approche similaire est entreprise lors de l'utilisation d'API non managées. L'interfacedoit être déclarée au moyen d'attributs personnalisés pour décrire l'interface de type et le GUID. Les méthodes sont ensuitedéclarées en utilisant la même approche que pour les API non managées. L'exemple suivant utilise l'interface IAutoComplete,définie comme suit dans Delphi 7 :

IAutoComplete = interface(IUnknown) ['{00bb2762-6a77-11d0-a535-00c04fd7d062}'] function Init(hwndEdit: HWND; punkACL: IUnknown; pwszRegKeyPath: LPCWSTR; pwszQuickComplete: LPCWSTR): HRESULT; stdcall; function Enable(fEnable: BOOL): HRESULT; stdcall;end;

Dans RAD Studio, elle est déclarée comme suit :

[ComImport, GuidAttribute('00BB2762-6A77-11D0-A535-00C04FD7D062'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]IAutoComplete = interface function Init(hwndEdit: HWND; punkACL: IEnumString; pwszRegKeyPath: IntPtr; pwszQuickComplete: IntPtr): HRESULT; function Enable(fEnable: BOOL): HRESULT;end;

Notez les attributs personnalisés utilisés pour décrire le GUID et le type d'interface. Il est aussi essentiel d'utiliser la classeComImportAttribute. Il convient de noter plusieurs points importants lors de l'importation d'interfaces COM. Il n'est pasnécessaire d'implémenter les méthodes IUnknown/IDispatch, et l'héritage n'est pas pris en charge.

1.2 Développement d'applications avec du RAD Studio pour .NET Utilisation de Platform Invoke avec Delphi

51

1

Page 58: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Types de données

Les mêmes règles que pour les fonctions non managées s'appliquent à la plupart des types de données, avec les ajoutssuivants :

Type de données non managé Type de données managé

Fournir des données Recevoir des données

GUID System.Guid System.Guid

IUnknown TObject TObject

IDispatch TObject TObject

Interface TObject TObject

Variant TObject TObject

SafeArray (of type) array of <type> array of <type>

BSTR String String

L'utilisation de l'attribut personnalisé MarshalAsAttribute est nécessaire pour certaines utilisations ci-dessus de TObject, enspécifiant le type non managé exact (tel que UnmanagedType.IUnknown, UnmanagedType.IDispatch ouUnmanagedType.Interface). C'est également vrai de certains types de tableaux. Parmi les exemples de spécification explicite dutype non managé figure la méthode Next de l'interface IEnumString. L'API Win32 déclare Next comme suit :

HRESULT Next( ULONG celt, LPOLESTR * rgelt, ULONG * pceltFetched );

Dans RAD Studio, la déclaration serait :

function Next(celt: Longint; [out, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 0)] rgelt: array of string; out pceltFetched: Longint): Integer;

Techniques avancées

Lors de l'utilisation de safearrays, la couche marshal convertit automatiquement (par exemple) un tableau d'octets en typesafearray correspondant. La couche marshal est très sensible aux différences de types lors de la conversion de safearrays. Si letype du safearray ne correspond pas exactement au type du tableau managé, une exception est déclenchée. Certainssafearrays Win32 ne définissent pas le type du safearray correctement à la création du tableau, ce qui conduit à une différencede types dans la couche marshal lors d'une utilisation à partir de .NET. Les solutions consistent soit à faire en sorte que lesafearray soit créé correctement, soit à outrepasser la conversion automatique de la couche marshal. La deuxième solution peutêtre risquée (mais elle sera peut-être la seule solution possible si vous n'avez pas la possibilité de changer le serveur COMfournissant les données). Considérez la déclaration suivante :

function AS_GetRecords(const ProviderName: WideString; Count: Integer; out RecsOut: Integer; Options: Integer; const CommandText: WideString; var Params: OleVariant; var OwnerData: OleVariant): OleVariant;

Si la valeur renvoyée est toujours un safearray (qui ne décrit pas son type correctement) enveloppé dans un variant, nouspouvons changer la déclaration comme suit :

type TSafeByteArrayData = packed record

Utilisation de Platform Invoke avec Delphi RAD Studio pour .NET 1.2 Développement d'applications avec du

52

1

Page 59: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

VType: Word; Reserved1: Word; Reserved2: Word; Reserved3: Word; VArray: IntPtr; { Pointeur sur le SafeArray réel } end; function AS_GetRecords(const ProviderName: WideString; Count: Integer; out RecsOut: Integer; Options: Integer; const CommandText: WideString; var Params: OleVariant; var OwnerData: OleVariant): TSafeByteArrayData;

Sachant qu'un OleVariant est un enregistrement, l'enregistrement TSafeByteArrayData peut être extrait du TVarData de Delphi 7(comme dans le cas où le type de données est varArray). L'enregistrement permettra d'accéder au pointeur brut sur le safearray,à partir duquel des données pourront être extraites. En utilisant une structure à la place d'un OleVariant, la couche marshal netentera pas d'interpréter le type de données du tableau. Vous aurez toutefois la charge d'extraire les données du safearray réel.

Cas spéciaux

Bien qu'il soit préférable d'utiliser Activator.CreateInstance lors de la création d'une instance, celle-ci n'est pas totalementcompatible avec CoCreateInstanceEx. Lors de l'utilisation de serveurs distants, CreateInstance tentera toujours d'invoquer leserveur localement, avant de tenter d'invoquer le serveur sur la machine distante. Le seul contournement actuellement connuconsiste à utiliser CoCreateInstanceEx.

Comme l'héritage n'est pas pris en charge, une interface descendante doit déclarer les méthodes de l'ancêtre. Voici l'interfaceIAutoComplete2, qui étend IAutoComplete.

[ComImport, GuidAttribute('EAC04BC0-3791-11d2-BB95-0060977B464C'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]IAutoComplete2 = interface(IAutoComplete) // Méthodes IAutoComplete function Init(hwndEdit: HWND; punkACL: IEnumString; pwszRegKeyPath: IntPtr; pwszQuickComplete: IntPtr): HRESULT; function Enable(fEnable: BOOL): HRESULT; // function SetOptions(dwFlag: DWORD): HRESULT; function GetOptions(var dwFlag: DWORD): HRESULT;end;

Voir aussi

Marshaling de données avec Platform Invoke

Utilisation de l'interopérabilité COM dans les applications managées ( see page 40)

Interfaces de bibliothèques virtuelles ( see page 54)

1.2.5 Interfaces de bibliothèques virtuelles

Cette rubrique explique comment utiliser une fonctionnalité de Delphi appelée Interfaces de bibliothèques virtuelles. LesInterfaces de bibliothèques virtuelles vous permettent de découvrir, de charger et d'appeler du code non managé à l'exécution,sans utiliser l'attribut DllImport.

PInvoke standard

Pour appeler une fonction non managée à partir d'un code managé, vous devez utiliser un service .NET appelé Platform Invokeou PInvoke. Le service Platform Invoke nécessite de déclarer dans le code source un prototype pour chaque fonction nonmanagée que vous souhaitez appeler. Vous pouvez effectuer cette opération dans une classe .NET existante ou créer uneclasse totalement nouvelle pour organiser les prototypes. Vous devez également baliser chaque déclaration de prototype nonmanagé au moyen de l'attribut DllImport.

1.2 Développement d'applications avec du RAD Studio pour .NET Interfaces de bibliothèques virtuelles

53

1

Page 60: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

L'attribut DllImport nécessite de spécifier le nom de la DLL dans laquelle la fonction non managée réside. Comme leprototype non géré est balisé avec l'attribut DllImport au moment de la compilation, la recherche dynamique de DLL et leursfonctions non managées exportées est difficile. De plus, si la fonction non managée n'est pas réellement exportée à partir de laDLL nommée dans l'attribut DllImport, une erreur d'exécution se produira. Pour éviter une erreur d'exécution, vous devezutiliser LoadLibrary pour charger la DLL exacte requise, puis appeler GetProcAddress pour vérifier l'existence de lafonction non managée. Malgré cela, vous ne pourrez pas appeler la fonction directement en utilisant le pointeur renvoyé parGetProcAddress. A la place, vous devrez passer le pointeur à une fonction dans une autre DLL non managée. Cette fonctionutilisera alors le pointeur pour effectuer l'appel.

Utilisation de Interfaces de bibliothèques virtuelles

Les Interfaces de bibliothèques virtuelles doivent encore utiliser le service Platform Invoke pour appeler du code non managé.Toutefois, au lieu d'utiliser l'attribut DllImport, les Interfaces de bibliothèques virtuelles créent une interface sur la DLL nonmanagée à l'exécution, en utilisant des méthodes de l'espace de nommage .NET System.Reflection.Emit.

L'utilisation des Interfaces de bibliothèques virtuelles nécessite d'effectuer les trois opérations suivantes :

• Ajouter Borland.Vcl.Win32 à la clause uses.

• Déclarer une interface contenant les fonctions exportées et non managées que vous souhaitez appeler.

• Appeler la fonction Supports pour vérifier que la DLL non managée existe et que les fonctions dans la déclaration d'interface sont vraiment exportées.

Si la fonction Supports renvoie True, la DLL prend en charge toutes les fonctions nommées dans la déclaration de l'interface, et vous savez donc que leur appel est sans danger. Dans la déclaration de l'interface, il n'est pas nécessaire d'utiliser l'attribut DllImport sur les prototypes.

Par exemple, si vous disposez d'une DLL appelée MyFunctions.dll, contenant les fonctions exportées suivantes :

function AFunction : Boolean;function AnotherFunction : Boolean;

Pour appeler ces fonctions à partir d'un code managé, ajoutez l'unité Borland.Vcl.Win32 à la clause uses et déclarez uneinterface dans Delphi :

uses Borland.Vcl.Win32, ...;...typeIMyFunctions = interface['Votre GUID'] // Pas vraiment nécessaire, mais conseilléfunction AFunction : Boolean;function AnotherFunction : Boolean;end;

La signature de la fonction Supports est :

function Supports(ModuleName: string; Source: System.Type; var Instance) : Boolean;

Pour appeler les fonctions non managées, appelez d'abord Supports pour charger la DLL, puis créez l'interface sur la DLL :

varMyFunctions : IMyFunctions;begin if Supports("MyFunctions.dll", IMyFunctions, MyFunctions) then if MyFunctions.AFunction then begin ... end; end;end;

Les Interfaces de bibliothèques virtuelles ont les mêmes limitations en matière de types de paramètres natifs compatibles et deleur mappage sur des types .NET. En outre, toutes les fonctions non managées sont censées utiliser la convention d'appelstdcall.

Interfaces de bibliothèques virtuelles RAD Studio pour .NET 1.2 Développement d'applications avec du

54

1

Page 61: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Utilisation de l'interopérabilité COM dans les applications managées ( see page 40)

Utilisation de Platform Invoke avec Delphi ( see page 46)

1.2 Développement d'applications avec du RAD Studio pour .NET Interfaces de bibliothèques virtuelles

55

1

Page 62: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.3 Modélisation Rubriques

Nom Description

Présentation de la visualisation de code ( see page 57) La fonctionnalité de visualisation de code est disponible à la fois dans les versions Entreprise et Architecte de RAD Studio. Tous les autres outils de modélisation et informations relatives à la modélisation ne s'appliquent qu'à la version Architecte de RAD Studio.

1.3.1 Présentation de la visualisation de code

La fonctionnalité de visualisation de code est disponible à la fois dans les versions Entreprise et Architecte de RAD Studio. Tousles autres outils de modélisation et informations relatives à la modélisation ne s'appliquent qu'à la version Architecte de RADStudio.

Diagrammes de structure statique UML et de visualisation du code

Le diagramme de visualisation de code RAD Studio présente une représentation graphique du code source qui reflètedirectement le code source même. Quand vous modifiez le code source, la représentation graphique du diagramme estactualisée automatiquement. Le diagramme visualisation du code correspond à un diagramme de structure statique UML. Unevue structurelle de votre projet se concentre sur les packages UML, les types de données, comme les classes ou les interfaces,et leurs attributs, propriétés et opérations. Un diagramme de structure statique montre également les relations existant entre cesentités.

Cette section explique la relation entre le code source et le diagramme de visualisation de code.

Remarque: La visualisation de code et les outils de modélisation UML intégrés sont deux caractéristiques séparées etdistinctes de RAD Studio. La visualisation de code désigne la possibilité d'analyser un ensemble arbitraire de codes source et defaire correspondre les déclarations de ce code à une notation UML. Le diagramme résultant est "dynamique", en ce sens qu'ilreflète toujours l'état actuel du code source, mais vous ne pouvez pas apporter directement de modifications au diagramme devisualisation de code. Les outils UML pilotés par modèle de RAD Studio vont au-delà en permettant de concevoir l'applicationdans l'espace du diagramme. Même si ces deux fonctionnalités du logiciel sont basées sur les technologies de CodeGearTogether, elles utilisent des mécanismes sous-jacents différents pour produire et manipuler le diagramme. La surface deconception du modèle intégré est conçue autour des fonctionnalités à la conception de l'architecture CodeGear ECO (EnterpriseCore Objects). Ce document couvre seulement la visualisation du code. Pour de plus amples informations sur la constructiondes applications avec ECO framework et l'utilisation des experts et des outils de modélisation avec les applications ECO, voirl'aide en ligne ECO distincte.

Relation entre code source et visualisation du code

Les outils de visualisation de code RAD Studio utilisent la notation et les conventions UML pour représenter graphiquement leséléments déclarés dans le code source. Le diagramme de visualisation de code vous montre les relations logiques, en termesUML la structure statique, des classes, interfaces et des autres types définis dans votre projet. L'EDI crée le diagramme devisualisation de code en associant certaines constructions du code source (comme les déclarations de classes et lesimplémentations d'interfaces) à leur équivalent UML, qui sont alors affichés dans le diagramme.

Organisation de niveau supérieur : projets, packages UML et espaces de nommage .NET

A la base, la visualisation de code est constituée par le travail conjoint de deux parties de l'EDI : la fenêtre Vue modèle et lediagramme visualisation de code. La fenêtre Vue modèle illustre la structure logique de vos projets sous la forme d'une

Présentation de la visualisation de code RAD Studio pour .NET 1.3 Modélisation

56

1

Page 63: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

arborescence, par opposition à la vue, organisée autour des fichiers, de la fenêtre gestionnaire de projet. Chaque projet d'ungroupe de projets est un noeud de niveau supérieur dans l'arborescence de la Vue modèle.

Imbriqués dans chaque noeud d'arborescence projet, il y a des packages UML. Chaque package UML correspond à unedéclaration d'espace de nommage .NET dans votre code source (les espaces de nommage .NET peuvent correspondre àplusieurs fichiers source). Il est possible de développer un package UML pour afficher les types déclarés dedans.

Héritage et implémentation des interfaces

Le terme UML désignant la relation entre une classe qui hérite d'une autre classe est le mot généralisation. Quand l'EDI voit unerelation d'héritage dans le code source, il crée un lien de généralisation dans le noeud classe enfant de l'arborescence de la Vuemodèle. Dans le diagramme de visualisation de code, le lien de généralisation est affiché en utilisant la notation UMLstandard, une ligne continue avec une pointe vide orientée vers la superclasse.

Le terme UML pour l'implémentation d'interface est réalisation. Comme pour l'héritage, l'EDI crée un lien de réalisation quandune déclaration de classe implémentant une interface est détectée. Le lien de réalisation apparaît dans la classed'implémentation dans l'arborescence Vue modèle et dans le diagramme sous la forme d'un trait pointillé avec une pointe videorientée vers l'interface. Il y a un lien de réalisation pour chaque interface implémentée par la classe.

Associations

En UML, une association est un lien de navigation produit quand une classe contient une référence vers une autre classe (parexemple sous la forme d'un attribut ou d'une propriété). La visualisation de code crée des liens d'association quand une classecontient un attribut ou une propriété qui est d'un type de données non primitif. Dans le diagramme, le lien d'association existeentre la classe contenant le membre non primitif et le type de données de ce membre.

Membres de classe : attributs, opérations, propriétés et types imbriqués

La visualisation de code peut également associer la déclaration des membres de classe et d'interface à leur équivalent UML.Dans les éléments du diagramme de visualisation de code, les membres sont regroupés en quatre catégories distinctes :

• Champs : contiennent les déclarations de champs. Le type et l'éventuelle affectation d'une valeur par défaut sont illustrés dans le diagramme.

• Méthodes: contiennent les déclarations de méthodes. La visibilité, la portée et la valeur de retour sont indiquées.

• Propriétés : Contiennent les déclarations de propriétés Delphi. Le type de la propriété est affiché.

• Classes : Contiennent les déclarations de type classe imbriquées.

La syntaxe UML standard est utilisée pour afficher les déclarations UML des attributs, des opérations et des propriétés. Chacune des quatre catégories peut être séparément développée ou réduite pour afficher ou masquer les membres qu'elle contient.

Voir aussi

Fonctionnalités UML dans Delphi pour .NET (SKU Architecte uniquement)

Présentation des outils de modélisation intégrés (SKU Architecte uniquement)

Importation et exportation d'un modèle avec XMI (SKU Architecte uniquement) ( see page 151)

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code ( see page 152)

Utilisation de la fenêtre Vue globale ( see page 153)

1.3 Modélisation RAD Studio pour .NET Présentation de la visualisation de code

57

1

Page 64: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.4 Développement d'états pour les applications .NET

RAD Studio est livré avec Rave Reports de Nevrona. A l'aide des composants d'états, vous pouvez construire des étatscomplets pour vos applications. Vous pouvez construire des solutions incluant des fonctionnalités de génération d'états, quipourront être utilisées et personnalisées par vos clients.

Rubriques

Nom Description

Utilisation de Rave Reports dans RAD Studio ( see page 59) L'environnement RAD Studio gère l'intégration d'objets états dans vos applications. Cette intégration vous permet de créer un état en utilisant le concepteur Rave Reports, ou d'ajouter directement des composants ActiveX Rave Reports sur vos fiches Web dans le concepteur RAD Studio. Les utilisateurs de votre application peuvent créer et afficher leurs propres états ou afficher des états existants. L'intégration de RAD Studio avec Rave Reports vous permet de :

• Inclure de nouveaux objets état dans les projets.

• Ajouter des objets ActiveX Rave Reports sur des fiches Web.

1.4.1 Utilisation de Rave Reports dans RAD Studio

L'environnement RAD Studio gère l'intégration d'objets états dans vos applications. Cette intégration vous permet de créer unétat en utilisant le concepteur Rave Reports, ou d'ajouter directement des composants ActiveX Rave Reports sur vos fiches Webdans le concepteur RAD Studio. Les utilisateurs de votre application peuvent créer et afficher leurs propres états ou afficherdes états existants. L'intégration de RAD Studio avec Rave Reports vous permet de :

• Inclure de nouveaux objets état dans les projets.

• Ajouter des objets ActiveX Rave Reports sur des fiches Web.

Création de nouveaux états dans RAD Studio

Vous pouvez inclure des états Rave dans RAD Studio exactement comme vous le feriez avec d'autres composants tiers. L'étatest stocké comme objet Rave Report distinct. Vous pouvez référencer l'état dans d'autres applications ayant besoin d'appeler oude générer cet état. Lorsque vous créez une nouvelle application, vous pouvez inclure l'objet état en y ajoutant une référencedans le gestionnaire de projets. Rave Reports offre aussi la capacité de connecter votre objet état à une source de données,ce qui permet à votre application de construire l'état dynamiquement sur la base d'informations de base de données actuelles.

Utilisation de composants ActiveX Rave Reports

Vous pouvez ajouter n'importe quel objet ActiveX Rave Reports à vos applications. La palette d'outils de RAD Studio proposeune liste de tous les objets ActiveX disponibles. Lors de la conception, faites glisser les objets voulus sur une Windows Form ouune Web Form. Renseignez les propriétés appropriées et modifiez le code dans l'éditeur de code. Il peut être nécessaire deréinitialiser vos composants .NET et de sélectionner les composants ActiveX dans la boîte de dialogue Composants .NETinstallés.

Voir aussi

Méthode de conception d'un état

Utilisation de Rave Reports dans RAD RAD Studio pour .NET 1.4 Développement d'états pour les

58

1

Page 65: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.5 Développement d'applications avec des composants VCL.NET

VCL.NET est un ensemble étendu des composants VCL qui permettent de construire rapidement des applications avancéesdans Delphi. Avec VCL.NET, vous pouvez fournir vos applications et composants VCL Delphi aux utilisateurs de Microsoft .NETFramework. Grâce à RAD Studio, vous disposez des avantages du .NET Framework, mais aussi de la convivialité et de lapuissance des outils Delphi de développement d'applications orientées composants.

RAD Studio fournit différents types d'applications : vous pouvez créer des applications Fiche VCL.NET exécutables sur le .NETFramework, qui utilisent des composants et des contrôles VCL.NET ; vous pouvez créer des applications .NET qui utilisent lescontrôles .NET Framework et .NET sous-jacents tout en proposant du code RAD Studio sous-jacent ; vous pouvez créer depuissantes applications ASP.NET qui utilisent les contrôles .NET Framework, ASP.NET sous-jacents et offrent aussi du codeRAD Studio sous-jacent. Les rubriques suivantes fournissent de plus amples informations sur les nouvelles fonctionnalitésVCL.NET prises en charge dans RAD Studio.

Rubriques

Nom Description

Modifications requises en raison du support 64 bits .NET 2.0 ( see page 62) Des changements ont été apportés afin de prendre en charge .NET 2.0 64 bits. Ces changements peuvent nécessiter des modifications de code mineures afin que les applications existantes fonctionnent correctement. Voir Modifications requises en raison du support 64 bits .NET 2.0 ( see page 167) pour obtenir des informations détaillées sur les modifications spécifiques requises.

Problèmes de langage au sujet du portage d'applications VCL vers RAD Studio ( see page 63)

La VCL de RAD Studio a été créée avec la compatibilité ascendante pour objectif principal. Cependant, il y a certaines fonctions pour lesquelles l'environnement managé de .NET impose des différences dans la façon dont les applications VCL doivent travailler. Ce document décrit la plupart de ces différences, et indique certaines des étapes que vous devrez entreprendre pour porter une application VCL vers l'environnement .NET.Ce document n'a pas pour but de décrire les nouvelles extensions du langage Delphi. Il se limite à la façon dont le code Delphi existant est mappé avec le nouveau langage RAD Studio et le framework... suite ( see page 63)

Portage d'applications VCL ( see page 74) Lors du portage d'applications VCL de Delphi 7 vers RAD Studio, vous devez prendre en compte certains problèmes. En plus des éléments de base du langage à remplacer ou à modifier, vous devez suivre certaines stratégies pour être sûr de porter vos applications totalement et d'une manière fiable.Cette rubrique comprend les éléments suivants :

• Problèmes généraux de langage

• Renommage des packages

• Nouvelles fonctionnalités du langage

• Portage des applications client de services Web

Présentation de VCL pour .NET ( see page 76) La VCL pour .NET est l'infrastructure de programmation pour la construction d'applications RAD Studio à l'aide de composants VCL. RAD Studio et VCL pour .NET ont été conçus pour aider les utilisateurs à exploiter la puissance de Delphi lors de l'écriture de nouvelles applications, ainsi que pour migrer des applications Win32 existantes vers le .NET Framework.Ces technologies permettent à un développeur Delphi de migrer vers .NET, en utilisant ses compétences Delphi et une grande partie de son code source Delphi existant. RAD Studio prend en charge le développement Microsoft .NET Framework avec le langage Delphi et la VCL pour... suite ( see page 76)

1.5 Développement d'applications avec RAD Studio pour .NET

59

1

Page 66: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Portage de clients de services Web ( see page 79) Les services Web RAD Studio utilisent le .NET Framework comme couche de services. En conséquence, toutes les applications existantes qui sont clientes de services Web Delphi 7 ou antérieures doivent être modifiées pour utiliser le .NET Framework. Cette rubrique comprend :

• Modifications et ajouts à vos applications

• Remarques d'implémentation

1.5.1 Modifications requises en raison du support 64 bits .NET 2.0

Des changements ont été apportés afin de prendre en charge .NET 2.0 64 bits. Ces changements peuvent nécessiter desmodifications de code mineures afin que les applications existantes fonctionnent correctement. Voir Modifications requises enraison du support 64 bits .NET 2.0 ( see page 167) pour obtenir des informations détaillées sur les modifications spécifiquesrequises.

Modifications en raison du support 64 bits

Ce document décrit les modifications requises pour les applications VCL.NET existantes afin d'assurer leur bon fonctionnementavec les modifications effectuées pour le support .NET 2.0 64 bits.

Pour fournir un support d'exécutable unique, à source unique, pour les deux plates-formes 32 bits et 64 bits, les types de handlesont passés de LongWord à IntPtr. IntPtr est un type integer de la taille d'un pointeur sur la plate-forme sous-jacente, quiest implémenté comme une structure dans .NET. Il ne supporte pas les opérations d'affectation, de comparaison etarithmétiques généralement effectuées sur les handles de la VCL. Pour fournir une compatibilité descendante, une assistanced'enregistrement a été créée pour supporter les opérations les plus courantes à travers la surcharge des opérateurs.

La plupart du code ne nécessite pas de modification pour s'exécuter sur les deux plates-formes x86 et x64, mais certains casrequièrent des modifications mineures.

Avertissement: Ces modifications sont nécessaires en raison des changements apportés pour la prise en charge dessystèmes 64 bits. Elles doivent être effectuées pour les applications conçues pour les systèmes 32 bits et 64 bits.

Patterns de code modifiés

Les patterns de code sont sujets à modification dans les zones suivantes :

• Instructions case

• Transtypage en enumérations

• Utilisation de handles avec des ensembles

• Indexation dans les tableaux

• Adoption d'une taille de handle spécifique

• Transtypage en enumérations

Déclarations de l'API Windows

Un certain nombre de déclarations ont été modifiées pour supporter correctement les exécutables uniques pour les deuxplates-formes x86 et x64. Dans la plupart de ces cas, le type d'un paramètre de fonction ou d'un champ de structure a étémodifié, et le compilateur fournit des informations permettant de corriger facilement le code affecté. Les modifications où lacorrection est moins évidente sont les changements de types des fonctions callback et les modifications des enregistrementsVariant. Dans ces situations, la liste des enregistrements et des callbacks affectés a été fournie dans Modifications requises enraison du support 64 bits .NET 2.0 ( see page 167).

Modifications requises en raison du RAD Studio pour .NET 1.5 Développement d'applications avec

60

1

Page 67: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Callbacks modifiés

Les paramètres de quelques callbacks ont été modifiés, ainsi chacune de leurs occurrences doit être modifiée.

Enregistrements Variant modifiés

Les enregistrements Variant sont implémentés dans Delphi.NET comme des enregistrements avec des dispositions de champsexplicites (à l'inverse des dispositions séquentielles représentant la valeur par défaut de .NET Framework). Cela permet àplusieurs champs d'être "superposés" au même offset de champ, ce qui provoque des déclarations incorrectes lors del'exécution sur les plates-formes 64 bits quand la structure contient un champ de taille variable (comme IntPtr). Lesenregistrements Variant avec de tels champs ont été modifiés afin de contenir un seul cas "variant". Les champs restants ont étéchangés en propriétés pour obtenir une compatibilité descendante. Dans la plupart des cas, le code source n'est pas affecté parces modifications. Toutefois, le passage d'un champ en tant que paramètre var qui est maintenant déclaré comme unepropriété ne nécessite pas de changement de code.

Voir aussi

Modifications requises en raison du support 64 bits .NET 2.0 ( see page 167)

1.5.2 Problèmes de langage au sujet du portage d'applications VCL vers RAD Studio

La VCL de RAD Studio a été créée avec la compatibilité ascendante pour objectif principal. Cependant, il y a certaines fonctionspour lesquelles l'environnement managé de .NET impose des différences dans la façon dont les applications VCL doiventtravailler. Ce document décrit la plupart de ces différences, et indique certaines des étapes que vous devrez entreprendre pourporter une application VCL vers l'environnement .NET.

Ce document n'a pas pour but de décrire les nouvelles extensions du langage Delphi. Il se limite à la façon dont le code Delphiexistant est mappé avec le nouveau langage RAD Studio et le framework VCL. Ce document contient par contre des liens avecdes rubriques spécifiques du guide du langage Delphi, où les nouvelles fonctions du langage sont expliquées en détail.

Cette rubrique couvre les sujets suivants :

• Migration des types de pointeurs

• Migration des types Char et string

• Création et destruction d'objets

• Appel de l'API Win32

• Migration des variants

• Utilisation des ressources

• Modification de OnCompare

Migration des types de pointeurs

Les types de pointeurs ne se conforment pas à CLS, et ne sont pas considérés comme "sûrs" dans le contexte del'environnement d'exécution de langage courant .NET. Le portage de VCL a, par conséquent, éliminé les pointeurs, en lesremplaçant par des solutions appropriées telles que des tableaux dynamiques, des indices pointant sur un tableau ou unechaîne, des références de classes, etc. Lors du portage d'une application VCL, l'une des premières étapes consiste à localiserles endroits où vous avez utilisé des types de pointeurs et à les remplacer comme il convient.

1.5 Développement d'applications avec RAD Studio pour .NET Problèmes de langage au sujet du portage

61

1

Page 68: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pointeurs non typés

Les pointeurs non typés sont considérés comme du code non sûr. Si votre code inclut des pointeurs non typés, l'utilitaire .NETPEVerify échouera dans sa vérification. Un code qui ne peut pas être vérifié en ce qui concerne la sécurité des types nepourra pas être exécuté dans un environnement sécurisé, tel qu'un serveur Web, un serveur de bases de données SQL, unclient de navigateur Web ou une machine avec des règles de sécurité restrictives.

Dans la VCL, les pointeurs non typés ont été remplacés par des valeurs plus fortement typées. Dans la plupart des cas, là oùvous trouviez un pointeur non typé, vous trouverez maintenant TObject. Par exemple, les éléments de TList sont maintenant dutype TObject, plutôt que du type pointer. Votre code peut transtyper n'importe quel type en objet, et transtyper un TObject entout autre type (même des types de valeurs tels que Integer, Double, etc.). Le fait de transtyper TObject en un autre type vaengendrer une erreur d'exécution si l'objet n'est pas, en fait, une instance du type dans lequel vous le transtypez. C'est-à-direque ce transtypage a la même sémantique que lorsqu'on utilise l'opérateur as.

Dans certains cas, le type Pointer a été remplacé par un type plus précis. Par exemple, sur TObject, la fonction ClassInforenvoie une valeur de type Type plutôt qu'un pointeur non typé.

Les pointeurs non typés qui étaient utilisés pour les paramètres dont le type variait suivant le contexte ont été typiquementremplacés en redéfinissant la routine et en utilisant des paramètres var avec les types possibles. Dans le cas où des pointeursnon typés sont utilisés avec des appels d'API vers un code non managé (tel que l'API Windows ou des appels vers une couched'accès aux données telle que le BDE), le pointeur non typé est remplacé par System.IntPtr. Ainsi, par exemple, le typeTBookmark, défini dans l'unité Db, correspond maintenant à IntPtr.

Un code qui utilisait l'opérateur d'adresse (@) pour convertir une valeur en pointeur non typé doit maintenant changer. Quand lepointeur non typé s'est transformé en TObject, tout ce que vous avez habituellement besoin de faire est d'éliminer l'opérateur @.Sur les types de valeurs, vous devrez peut-être remplacer l'opérateur @ par un transtypage en TObject, de façon à ce que lavaleur soit "mise en boîte". Ainsi, le code suivant

var P: Pointer; I: Integer;begin I := 5; P := @I;

peut être converti en

var P: TObject; I: Integer;begin I := 5; P := TObject(I);

Quand le pointeur non typé a été transformé en IntPtr, vous devez utiliser la classe Marshal pour allouer une portion de mémoirenon managée et y copier une valeur, plutôt que de simplement utiliser l'opérateur @. Ainsi, le code suivant :

var P: Pointer; R: TRect;begin R := Rect(0, 0, 100, 100); P := @R; CallSomeAPI(P);

serait converti en

var P: IntPtr; R: TRect;begin R := Rect(0, 0, 100, 100);

Problèmes de langage au sujet du portage RAD Studio pour .NET 1.5 Développement d'applications avec

62

1

Page 69: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

P := Marshal.AllocHGlobal(Marshal.SizeOf(TypeOf(TRect))); try Marshal.StructureToPtr(TObject(R), P, False); CallSomeAPI(P); finally Marshal.FreeHGlobal(P); end;

Remarque: Toute la mémoire non managée que vous allouez en utilisant la classe Marshal doit être libérée explicitement. Leprogramme de nettoyage .NET ne nettoie pas la mémoire non managée.

Pointeurs de procédures

Quand les pointeurs non typés sont des pointeurs de procédures, ils représentent un cas spécial. Dans le code managé, lespointeurs de procédures sont remplacés par des délégués .NET, qui sont plus fortement typés. Les déclarations de typesprocéduraux sont des déclarations déléguées dans RAD Studio. Vous pouvez obtenir un délégué pour une méthode ou uneroutine globale en utilisant l'opérateur @. Le code a la même apparence que lorsqu'on obtient un pointeur de procédure sur laplate-forme Win32, aussi, dans beaucoup de cas, n'avez-vous rien à changer quand vous portez ce code. Cependant, il estimportant de garder à l'esprit que lorsque vous utilisez l'opérateur @, vous obtenez un délégué nouvellement créé, et non unpointeur.

Si vous transmettez un pointeur de procédure à une API non managée en utilisant l'opérateur @, par exemple,

Handle := SetTimer(0, 0, 1, @TimerProc);

La seule référence au délégué est celle transmise à l'appel d'API car le délégué est créé à la volée. Cela signifie que lenettoyeur de mémoire va finalement éliminer le délégué après le retour de l'API non managée. Si, comme dans ce cas, le codenon managé appelle la procédure après le retour de l'appel d'API, vous allez rencontrer une exception d'exécution car le déléguén'existera plus. Vous pouvez contourner cette situation en affectant au délégué une variable globale, et en transmettant lavariable globale à l'API non managée.

Lorsque vous appelez l'API Windows GetProcAddress pour obtenir un pointeur de procédure, celui-ci est renvoyé en tant queIntPtr. Cette valeur n'est pas un délégué. Vous ne pouvez pas la transtyper en délégué et l'appeler. Au lieu de cela, un tel codeest typiquement traduit pour utiliser Platform Invoke afin d'appeler une API non managée. GetProcAddress est utile pourdéterminer si l'API est disponible de façon à ce que vous n'obteniez pas une exception d'exécution lorsque vous utilisez PlatformInvoke. Ainsi, un code comme celui-ci :

type TAnimateWindowProc = function(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): BOOL; stdcall;var AnimateWindowProc: TAnimateWindowProc = nil; UserHandle: HMODULE;begin UserHandle := GetModuleHandle('USER32'); if UserHandle <> 0 then @AnimateWindowProc := GetProcAddress(UserHandle, 'AnimateWindow'); ... if AnimateWindowProc <> nil then AnimateWindowProc(Handle, 100, AW_BLEND or AW_SLIDE);

serait traduit sur la plate-forme .NET comme suit

[DllImport('user32.dll', CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'AnimateWindow')]function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): BOOL; external;var UserHandle: HMODULE; CanAnimate: Boolean;begin UserHandle := GetModuleHandle('USER32'); if UserHandle <> 0 then CanAnimate := GetProcAddress(UserHandle, 'AnimateWindow') <> nil else

1.5 Développement d'applications avec RAD Studio pour .NET Problèmes de langage au sujet du portage

63

1

Page 70: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

CanAnimate := False; ... if CanAnimate then AnimateWindow(Handle, 100, AW_BLEND or AW_SLIDE);

Remarque: L'exemple .NET ci-dessus est encore lié en différé à l'API AnimateWindow. Aucune exception ne sera généréelorsque ce code sera chargé, si la DLL ou la fonction ne sont pas disponibles. L'appel de fonction est résolu seulement lorsquele code est exécuté pour la première fois.

Pointeurs de chaînes

Un code qui utilise le type PChar a généralement l'un des trois objectifs suivants :

• Le type fait référence à une chaîne à zéro terminal (spécialement lorsqu'il est utilisé avec un appel d'API Windows ou une fonction RTL plus ancienne).

• Le type est utilisé pour naviguer à travers une chaîne lors du traitement de sa valeur.

• Le type est utilisé pour référencer un bloc d'octets, en se basant sur le fait que dans Delphi pour Win32, le type Char est d'un octet (le type Char occupant deux octets sur la plate-forme .NET).

Dans le premier cas, vous pouvez habituellement remplacer le type PChar par le type string. Dans le cas d'appels d'API Windows, les versions des API managées utilisent maintenant une chaîne ou StringBuilder à la place d'un PChar, la couche marshal effectuant les conversions implicitement. Notez que bon nombre de fonctions RTL qui prenaient en charge le type PChar ont été éliminées de la RTL, et que vous devez les remplacer par les versions correspondantes utilisant le type string. Le tableau suivant liste les fonctions des unités SysUtils qui ont été éliminées car elles reposaient sur le type PChar, et les fonctions correspondantes qui utilisent le type string :

Version PChar Version string

AnsiExtractQuotedStr AnsiDequotedStr ou DequotedStr

AnsiLastChar, AnsiStrLastChar (utilisent l'opérateur index et string length)

AnsiStrComp, StrComp CompareStr, AnsiCompareStr, WideCompareStr

AnsiStrIComp, StrIComp CompareText, AnsiCompareText, WideCompareText

AnsiStrLComp, StrLComp System.String.Compare (StartsStr)

AnsiStrLIComp, StrLIComp System.String.Compare (StartsText)

AnsiStrLower, StrLower AnsiLowerCase, WideLowerCase,

AnsiStrUpper, StrUpper UpCase, AnsiUpperCase, WideUpperCase

AnsiStrPos, StrPos, AnsiStrScan, StrScan Pos

AnsiStrRScan, StrRScan LastDelimiter

StrLen Length

StrEnd, StrECopy (pas d'équivalent)

StrMove, StrCopy, StrLCopy, StrPCopy, StrPLCopy Copy

StrCat, StrLCat Opérateur +, Concat

StrFmt Format, FmtStr

StrLFmt FormatBuf

FloatToText FloatToStrF

FloatToTextFmt FormatFloat

TextToFloat FloatToStr

Lorsqu'un type PChar est utilisé pour naviguer dans une chaîne, vous devez réécrire le code, en remplaçant le PChar par unInteger qui représente un indice dans la chaîne. En réécrivant ce type de code, vous devez détecter quand vous avez atteint la

Problèmes de langage au sujet du portage RAD Studio pour .NET 1.5 Développement d'applications avec

64

1

Page 71: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

fin de la chaîne. Lorsque vous utilisez le type PChar, un caractère nul est présent à la fin de la chaîne, et le code reconnaîttypiquement la fin de la chaîne en trouvant ce caractère nul. Dans l'approche chaîne-et-indice, il n'y a pas de caractère nul etvous devez utiliser la longueur de la chaîne pour identifier la fin de la chaîne. Assurez-vous de vérifier que l'indice n'a pasdépassé la fin de la chaîne avant de lire un caractère, sans quoi vous obtiendrez une erreur d'exécution.

Remarque: Les données de la chaîne sont immuables, aussi vous ne pouvez pas écrire un seul caractère dans une chaîneexistante en utilisant PChar

. Vous pouvez toutefois accomplir cela en utilisant l'indexation de chaîne (c'est-à-dire s[5]). Quand un PChar est utilisé pourréférencer un bloc d'octets, il est typiquement remplacé soit par un IntPtr soit par un tableau dynamique d'octets (TBytes). S'ilest remplacé par un IntPtr, les problèmes de traduction sont les mêmes que pour le remplacement d'un pointeur non typé.Quand il est remplacé par TBytes, vous devrez peut-être remplacer quelques valeurs PChar par un indice dans le tableaud'octets s'il est utilisé pour naviguer dans le bloc d'octets. Cela est similaire au fait de remplacer PChar par un nombre entierpour naviguer dans une chaîne, mis à part que les indices dans TBytes sont en base 0 alors que les indices dans les chaînessont en base 1.

Ecriture de chaînes dans des flux

Dans Delphi pour Win32, il est courant de trouver un code similaire à ce qui suit :

S1 := 'Ceci est une chaîne de test' ;Stream.WriteBuffer(S1[1], Length(S1));

Sur la plate-forme Win32, ce code a pour résultat que la chaîne entière est écrite dans le flux. Sur la plate-forme .NET, toutefois,ce même code produit un résultat assez différent. Sur la plate-forme .NET, le compilateur génère un appel à la version Charredéfinie de WriteBuffer, avec pour résultat qu'un seul caractère (S1[1]) écrit dans le flux.

Autres types de pointeurs

D'autres types de pointeurs ont été éliminés de la VCL. Typiquement, ils sont remplacés par le type sur lequel le pointeur originalpointait. Si le type du pointeur était le paramètre d'un appel de procédure, il est généralement converti en paramètre var si bienque le code résultant transmet encore une référence plutôt qu'une copie de l'argument. Parfois, il est utile de changer un type devaleur en un type de classe afin que, au lieu de transmettre un pointeur typé, votre code transmette une référence d'objet.

Migration des types Char et String

Dans RAD Studio, le type string correspond au type .NET String, et vous pouvez accéder librement aux membres de String enutilisant un type string Delphi, comme illustré dans l'exemple suivant :

var S: string;begin S := 'Ceci est une chaîne' ; // Notez que le transtypage n'est pas nécessaire. // S := System.String(S).PadRight(25); // Accès direct aux membres de la classe chaîne S := S.PadRight(25); S := ('Ceci est une nouvelle chaîne').PadRight(25);

Chaînes ANSI et chaînes étendues

La plus grande différence au sujet des chaînes dans RAD Studio est que le type chaîne est maintenant une chaîne étendueUnicode au lieu d'un AnsiString. Cela simplifie le code pour certaines locales, car vous n'avez plus besoin de vous préoccuperdes jeux de caractères à plusieurs octets. Cependant, vous devez vérifier si votre code effectue des hypothèses sur la taille d'unChar, car celui-ci occupe maintenant deux octets au lieu d'un. Vous pouvez toujours utiliser des chaînes avec des caractères

1.5 Développement d'applications avec RAD Studio pour .NET Problèmes de langage au sujet du portage

65

1

Page 72: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

d'un octet, mais vous devez maintenant les déclarer en tant que chaînes AnsiString au lieu de string. Le compilateur effectueune conversion entre les chaînes étendues et étroites si vous utilisez un transtypage explicite ou si vous les transtypezimplicitement en les affectant à une variable ou un paramètre de l'autre type.

Si votre code appelle l'une des routines AnsiXXX pour manipuler des chaînes, vous souhaiterez peut-être transformer celles-cien versions de chaînes étendues correspondantes de la routine. Les routines AnsiXXX possèdent des surcharges (dépréciées)qui correspondent aux versions étendues, et les routines surchargées acceptent des chaînes étendues pour leurs paramètres ;cela évite la conversion implicite aller-retour entre les chaînes étendues et à un octet.

Remarque: Des informations peuvent être perdues lors de conversions de caractères étendus vers des caractères à un octet,aussi devriez-vous éviter ce type de conversion autant que possible.

Opérations de chaînes

Suivant la sémantique de type de valeur CLR, les opérations sur les chaînes renvoient typiquement une copie de la chaîne aulieu d'altérer la chaîne existante. Cela peut rendre le code moins performant, parce que les copies sont plus nombreuses.Considérez, par exemple, le code suivant :

var S: string;begin S := 'Ceci est une chaîne' ; S[3] := 'a'; S[4] := 't';

Lorsqu'elles sont compilées en utilisant la plate-forme Win32, les substitutions de caractères ne requièrent qu'un octet demémoire à changer à chaque fois. Dans RAD Studio, chaque substitution a pour résultat une copie de la chaîne complète. Acause de cela, il est conseillé d'utiliser une instance de StringBuilder lorsque vous manipulez des valeurs de chaînes.StringBuilder alloue une portion de mémoire non managée et manipule la chaîne selon vos souhaits. Lorsque vous avezterminé, vous pouvez convertir le résultat en chaîne en appelant la méthode ToString.

Remarque: La conversion en string

à partir de StringBuilder est une opération à bas coût. Les données de la chaîne ne sont pas copiées à nouveau.

Chaînes non initialisées

Dans RAD Studio, une chaîne non initialisée prend la valeur nil. Le compilateur va automatiquement compenser si vouscomparez une chaîne non initialisée à une chaîne vide. C'est-à-dire que si vous avez une ligne telle que

if S <> '' then ...

Le compilateur s'occupe de la comparaison et traite la chaîne non initialisée comme une chaîne vide. Cependant, à la différenced'un code compilé sur la plate-forme Win32, d'autres opérations de chaînes ne traitent pas automatiquement une chaîne noninitialisée comme une chaîne vide. Cela peut conduire à des exceptions d'objet nul lors de l'exécution.

Transtypages

A la différence de Delphi pour Win32, RAD Studio ne fait pas de distinction entre un transtypage explicite et l'opérateur as. Dansles deux cas, le transtypage ne réussit que si la variable transtypée est réellement une instance du type vers lequel vous latranstypez. Cela signifie qu'un code qui fonctionnait (par un transtypage entre des données de types incompatibles) peutmaintenant générer une exception d'exécution.

Décomposeurs de messages

La situation la plus courante où le changement de transtypage cause un problème est peut-être l'utilisation de types dedécomposition de messages. Dans la VCL sur Win32, l'unité Messages définissait plusieurs types d'enregistrements pourreprésenter les paramètres d'un message Windows. Ces enregistrements étaient tous de la même taille, avec tous les champsdisposés pour extraire les informations du message Windows. Ainsi, vous pouviez avoir les paramètres du message sous uneforme (par exemple TMessage), transtyper dans une autre forme (par exemple TWMMouse), puis extraire les information

Problèmes de langage au sujet du portage RAD Studio pour .NET 1.5 Développement d'applications avec

66

1

Page 73: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

voulues. Cela fonctionnait parce que les deux types étaient de la même taille, et un transtypage explicite ne déclenchait pasd'exception quand vous réinterprétiez le type avec le transtypage. Une telle réinterprétation n'est pas autorisée dans .NET, et lemême code conduirait à une exception de transtypage incorrecte dans RAD Studio.

Pour contourner cette situation, les types de décomposition de messages dans RAD Studio ne sont pas du tout desenregistrements, mais des classes. Au lieu de transtyper une valeur TMessage vers un autre type tel que TWMMouse, vousdevez instancier l'autre type, en transmettant le TMessage d'origine comme paramètre. C'est-à-dire qu'au lieu de

procedure MyFunction(Msg: TMessage);var MouseMsg: TWMMouse;begin if Msg.Msg = WM_MOUSE then with Msg as TWMMouse do ...end;

vous procéderiez comme ceci :

procedure MyFunction(Msg: TMessage);var MouseMsg: TWMMouse;begin if Msg.Msg = WM_MOUSE then with TWMMouse.Create(Msg) do ...end;

Pour convertir dans l'autre direction (d'un type de message spécialisé vers TMessage), vous pouvez utiliser la nouvelle fonctionUnwrapMessage déclarée dans l'unité Messages.

Accès aux membres protégés de classes d'autres unités

Une autre technique mettant en jeu ce qui est maintenant un transtypage incorrecte concerne l'accès aux membres protégésd'une classe qui est déclarée dans une autre unité. Dans Delphi pour Win32, vous pouvez déclarer un descendant de la classedont vous souhaitez voir les membres :

type TPeekAtWinControl = class(TWinControl);

Ensuite, en transtypant un descendant arbitraire de TWinControl en TPeekAtWinControl, vous pouviez accéder auxméthodes protégées de TWinControl, car TPeekAtWinControl avait été défini dans la même unité.

En général, cette technique ne fonctionne pas dans RAD Studio, car le descendant arbitraire de TWinControl n'est pas, en fait,une instance de TPeekAtWinControl. Le transtypage conduit à une exception de transtypage incorrecte lors de l'exécution.

Comme il s'agit d'une technique largement utilisée dans Win32, le compilateur va reconnaître ce pattern et l'autoriser.Cependant, le compilateur ne peut pas savoir dans quel assemblage une unité sera liée quand il compile le code source. Si lesunités sont liées en assemblages, cette technique échouera lors de l'exécution avec une exception de type.

Quand vous avez besoin de croiser les limites d'un assemblage, un contournement consiste à introduire une interface quipermet d'accéder aux membres protégés en question. Certaines classes de la VCL ( TControl, TWinControl, TCustomForm)utilisent maintenant cette technique, et vous pouvez trouver l'ajout d'interfaces pour accéder aux membres protégés (IControl,IWinControl, IMDIForm).

Création et destruction d'objets

Des problèmes spécifiques de langage dans la programmation avec Delphi pour la plate-forme .NET à mémoire managée sontexpliquées à la rubrique Problèmes de gestion de la mémoire sur la plate-forme .NET.

A cause des différences dans la façon dont les objets sont instanciés et libérés, il n'est pas possible d'avoir une méthodeBeforeDestruction ou AfterConstruction sur une classe RAD Studio. Toute classe qui contourne ces méthodes doitêtre réécrite.

1.5 Développement d'applications avec RAD Studio pour .NET Problèmes de langage au sujet du portage

67

1

Page 74: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Le fait que ces méthodes et la propriété OldCreateOrder n'existent pas dans la VCL sur la plate-forme .NET a desrépercussions sur les modules de fiches et de données qui reposaient sur le fait que OldCreateOrder valait False. Lesévénements OnCreate et OnDestroy se comportent maintenant comme si la propriété OldcreateOrder est paramétrée àTrue et ne sera appelée que par le constructeur ou le destructeur.

Remarque: Etant donné qu'OnDestroy est appelé depuis un destructeur, il n'est pas garanti qu'il sera appelé - si l'applicationn'appelle pas Free, le destructeur de l'objet n'est pas appelé, même s'il est nettoyé de la mémoire.

Utilisation de l'API Win32 non managée

La plus grande partie de la VCL est conçue pour fonctionner avec l'API Windows. Son traitement est similaire à la manière dontSystems.Windows.Forms fonctionne : La VCL est une API managée qui appelle l'API Windows en effectuant le marshalingentre les structures managées du côté VCL et les types non managés utilisés par l'API Windows. Certaines unités, en particulierdans la RTL, ont été portées pour s'installer au-dessus de CLR plutôt que sur l'API Windows. Ces unités sont plus souples, carelles peuvent fonctionner avec n'importe quel environnement .NET, même ceux ne prenant pas en charge le systèmed'exploitation Windows (par exemple le Compact Framework, Mono, etc.). Les unités qui ont besoin du système d'exploitationWindows sont repérées par la directive platform. Dans les unités qui ne sont pas repérées par la directive platform, touteméthode ou classe nécessitant Windows est repérée au moyen de la directive platform.

Isolement des dépendances Windows

Pour maintenir une indépendance relative par rapport à la plate-forme dans les unités RTL, certaines fonctions de méthodes quise basent sur Windows ont été déplacées dans l'unité WinUtils. Certaines classes ont en outre été modifiées pour se baserplus sur CLR que sur Windows.

TObject, Exception, TPersistent et TComponent sont toutes directement mappées sur des classes implémentées dans .NETFramework. Elles s'intègrent ainsi plus facilement avec d'autres applications .NET. Comme les classes CLR correspondantes(System.Object, System.Exception, System.Marshal et System.Component) n'incluent pas toutes les méthodes nécessaires à laVCL, les méthodes manquantes sont fournies par les déclarations d'assistance de classes Delphi. Dans la plupart des cas, cemécanisme est transparent. Il y a cependant des cas où il vous impose des réglages mineurs de votre code. Par exemple, avecTComponent, FComponentState est maintenant une propriété de TComponentHelper plutôt qu'un véritable champ deTComponent. Cela veut dire que vous ne pouvez pas utiliser les méthodes Include et Exclude sur FComponentState, carlorsqu'une propriété leur est transmise, elles travaillent sur une copie de la valeur de cette propriété, ce qui ne modifie pasFComponentState. Par conséquent, un code tel que

Exclude(FComponentState, csUpdating);

doit être réécrit comme suit :

FComponentState := FComponentState – [csUpdating];

TThread a aussi été modifié pour être mappé sur l'objet thread CLR. Cela veut dire que le handle Thread n'est plus un typeordinal, mais plutôt une référence sur l'objet thread CLR sous-jacent. Cela veut également dire que TThread ne prend plus encharge les ThreadID, qui ne sont pas reconnus par les objets threads CLR. Si votre classe thread requiert un ThreadID, vousdevrez la modifier pour qu'elle dérive de TWin32Thread.

Appel de l'API Windows

Un grand nombre d'API Windows ont changé pour utiliser une interface plus managée. Les types de paramètres ont souventchangé, généralement pour éliminer les pointeurs. Un changement courant a consisté à remplacer les types PChar par stringou StringBuilder.

Lorsque votre application appelle une API Windows, elle appelle une DLL non managée. Par conséquent, toutes les valeurs deparamètres doivent être marshalées en mémoire non managée, là où Windows peut les manipuler, et les résultats sont ensuiteunmarshallés en mémoire managée. Dans la plupart des cas, ce marshaling s'effectue automatiquement, en fonction desattributs qui ont été ajoutés aux déclarations d'API ou de types. Il y a toutefois des cas où votre code doit gérer explicitement lemarshaling – spécialement avec un pointeur sur une structure. Pour effectuer ce marshaling, utilisez la classe System. Marshal.

Problèmes de langage au sujet du portage RAD Studio pour .NET 1.5 Développement d'applications avec

68

1

Page 75: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Une autre classe peut être très utile lors du marshaling de données avec la mémoire non managée : la classe BitConverter. Parexemple, la classe Marshal n'inclut pas de méthode pour lire ou écrire une valeur double, mais elle peut lire ou écrire desvaleurs Int64, qui ont la même taille, et la classe BitConverter peut convertir ces valeurs en double et inversement :

// copie double en mémoire non managée :Mem := Marshal.AllocHGlobal(SizeOf(Int64));Marshal.WriteInt64(Mem, BitConverter.DoubleToInt64Bits(DoubleVariable));...// copie double à partir de mémoire non managéeDoubleVariable := BitConverter.Int64BitsToDouble(Marshal.ReadInt64(Mem));

En utilisant la classe marshal, rappelez-vous que vous devez toujours libérer toute mémoire non managée allouée – le nettoyeurde mémoire ne collecte pas la mémoire non managée.

Utilisation de messages Windows

Un des changements dans la manière dont les applications RAD Studio fonctionnent avec Windows concerne le fonctionnementdes gestionnaires de messages. La déclaration et l'utilisation des gestionnaires de messages sont fondamentalement lesmêmes, mais les types de décomposeurs de messages, qui étaient des enregistrements, sont devenus des classes, et vous nepouvez plus vous limiter à transtyper d'un type de décomposeur de message vers un autre. Tout cela a déjà été couvert dans lasection sur les transtypages, mais plusieurs points supplémentaires doivent être mentionnés :

• Lors du portage d'un code envoyant un message, il ne suffit plus de déclarer le décomposeur de message sur la pile, de remplir ses champs puis de le transmettre à un appel de SendMessage. Vous devez maintenant ajouter un appel pour créer le décomposeur de message, car il s'agit maintenant d'une classe.

• Dans un gestionnaire de messages, vous pouvez toujours appeler un gestionnaire de messages hérité en utilisant le mot-clé inherited. Vous devez toutefois être alors sûr que le décomposeur de message aura le même type que le gestionnaire de messages hérité. Par exemple, si le gestionnaire de messages hérité possède un paramètre de type TWMMouse et si votre gestionnaire de messages a seulement besoin de TMessage, la déclaration de votre gestionnaire de messages pour utiliser TMessage et l'appel hérité conduiront à une exception de transtypage incorrecte à l'exécution. Par conséquent, si vous appelez le gestionnaire de messages hérité, vous devez maintenant vous assurer que votre paramètre de message correspond à celui du gestionnaire hérité.

• Si un message possède des paramètres qui sont des pointeurs sur des enregistrements (ou n'importe quel type de pointeur d'ailleurs), le décomposeur de message correspondant possédera des propriétés représentant ces enregistrements. Il est toutefois important de comprendre qu'il s'agit de propriétés et non de champs. Par conséquent, vous pouvez lire les champs de l'enregistrement directement à partir de la propriété, mais si votre gestionnaire doit modifier des valeurs de champs, vous ne pouvez plus effectuer d'affectations directes aux champs de l'enregistrement. A la place, vous devez copier l'enregistrement dans une variable locale, apporter vos modifications puis réaffecter le résultat à la propriété.

L'utilisation de messages Windows est sensiblement plus coûteuse dans RAD Studio, car au temps système nécessaire pour utiliser la file d'attente des messages s'ajoute maintenant le temps système de marshaling des valeurs avec la mémoire non managée. Cela est particulièrement coûteux lorsqu'un paramètre représente un pointeur (une référence d'objet ou un pointeur sur une structure). Ces paramètres sont finalement convertis en WPARAM ou en LPARAM en utilisant un IntPtr, qui agit comme handle d'un bloc de mémoire non managée contenant une copie de la structure. Les références d'objets sont converties au moyen d'un GCHandle. Dans la plupart des cas, les types de décomposeurs de messages prédéfinis gèrent le marshaling de ces paramètres avec IntPtr, mais si vous définissez vos propres messages, il peut être nécessaire d'effectuer votre propre marshaling. Les classes de décomposeur de message définies dans l'unité Controls illustrent la manière de gérer ces problèmes de marshaling.

La VCL définit et utilise un certain nombre de types de messages privés. Ceux-ci sont, pour la plupart, définis dans l'unité Controls et possèdent des identificateurs de la forme CM_XXX ou CN_XXX. A cause du temps système supplémentaire de marshaling des messages, plusieurs types de messages CM_XXX ont été changés ou éliminés, et remplacés par d'autres mécanismes moins coûteux dans l'environnement .NET. Le tableau suivant liste les types de messages qui ont changé et indique comment la même tâche s'accomplit dans RAD Studio :

1.5 Développement d'applications avec RAD Studio pour .NET Problèmes de langage au sujet du portage

69

1

Page 76: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Type de message Changement

CM_FOCUSCHANGED Remplacé par une méthode protégée (FocusChanged) sur TWinControl. Remplacez lesgestionnaires de messages par une redéfinition de la méthode FocusChanged. Au lieud'envoyer des messages, appelez FocusChanged en utilisant l'interface IWinControl.

CM_MOUSEENTER La signification de LPARAM a changé. Il transmettait auparavant une référence d'objet aucontrôle enfant sur lequel la souris se positionnait – il transmet maintenant l'indice de cetenfant dans la liste FWinControls ou FControls.

CM_MOUSELEAVE La signification de LPARAM a changé. Il transmettait auparavant une référence d'objet aucontrôle enfant quitté par la souris – il transmet maintenant l'indice de cet enfant dans la listeFWinControls ou FControls.

CM_BUTTONPRESSED Remplacé par une méthode protégée (ButtonPressed) sur TSpeedButton. Il était auparavantuniquement utilisé par TSpeedButton. Le gestionnaire de messages CMButtonPressed a étéremplacé par ButtonPressed, qui est appelé directement.

CM_WINDOWHOOK Retiré. TApplication.HookMainWindow et TApplication.UnhookMainWindow sont toutes deuxdes méthodes publiques qui peuvent être appelées directement.

CM_CONTROLLISTCHANGE Remplacé par une méthode protégée (ControlListChange) sur TWinControl. Remplacez lesgestionnaires de messages par une redéfinition de la méthode ControlListChange.

CM_GETDATALINK Remplacé par une méthode protégée (GetDataLink) sur différents contrôles orientés données.Appelez-la en utilisant la nouvelle interface IDataControl. En créant votre propre contrôleorienté données (qui ne descend pas d'une classe existante dans DBCtrls), vous devezimplémenter IDataControl si le contrôle doit fonctionner dans un DBCGrid.

CM_CONTROLCHANGE Remplacé par une méthode protégée (GetDataLink) sur différents contrôles orientés données.Appelez-la en utilisant la nouvelle interface IDataControl. En créant votre propre contrôleorienté données (qui ne descend pas d'une classe existante dans DBCtrls), vous devezimplémenter IDataControl si le contrôle doit fonctionner dans un DBCGrid.

CM_CHANGED La signification de LPARAM a changé. Il transmettait auparavant une référence d'objet ettransmet maintenant un code de hachage pour l'objet modifié.

CM_DOCKCLIENT Remplacé par une méthode protégée (DockClient) sur TWinControl. Remplacez lesgestionnaires de messages par une redéfinition de la méthode DockClient.

CM_UNDOCKCLIENT Remplacé par une méthode protégée (UndockClient) sur TWinControl. Remplacez lesgestionnaires de messages par une redéfinition de la méthode UndockClient.

CM_FLOAT Remplacé par une méthode protégée (FloatControl) sur TControl. Remplacez les gestionnairesde messages par une redéfinition de la méthode FloatControl.

CM_ACTIONUPDATE Retiré. TApplication.DispatchAction a été promue publique, et elle est appelée directementplutôt que par l'intermédiaire d'un message.

CM_ACTIONEXECUTE Retiré. TApplication.DispatchAction a été promue publique et est appelée directement plutôtque par l'intermédiaire d'un message.

Modifications du modèle Threading

Il arrive que des appels à l'API Windows requièrent l'utilisation du modèle Single Threaded Apartment (STA) pour fonctionnercorrectement sur certains systèmes d'exploitation. Par exemple, sur certaines versions de Windows 98, les boîtes de dialogued'ouverture et d'enregistrement ne fonctionnent que si votre application RAD Studio utilise le modèle Single ThreadedApartment. Toute partie de la VCL utilisant COM requiert ce modèle.

Le modèle de threading est défini au premier démarrage du processus. Si vous créez un exécutable, c'est facile : il vous suffitd'ajouter l'attribut [STAThreadAttribute] à la ligne qui précède immédiatement l'instruction begin dans le fichier dpr. Lors

Problèmes de langage au sujet du portage RAD Studio pour .NET 1.5 Développement d'applications avec

70

1

Page 77: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

de la création d'une DLL, vous ne pouvez pas forcer le modèle de threading. Vous pouvez toutefois appeler la procédureCheckThreadingModel de l'unité SysUtils pour déclencher une exception lorsque l'application appelle une méthodenécessitant un modèle de threading particulier.

Cette restriction est plutôt courante dans .NET. Par défaut, Microsoft Visual Studio ajoute l'attribut STAThreadAttribute auxapplications qu'il crée.

Migration des variants

Le type Variant est très différent dans RAD Studio. Alors que le compilateur Win32 mappe Variant sur le type d'enregistrementutilisé par COM pour les variants, dans RAD Studio, un variant est plus général. N'importe quel objet (c'est-à-dire dans RADStudio n'importe quel type) peut agir et être manipulé comme variant. Par conséquent, dans RAD Studio, vous pouvez affecterun contrôle à un variant.

Le type Delphi Variant est une notion du langage Delphi qui n'est pas compatible CLS. Si vous écrivez dans RAD Studio du codeutilisant des variants, pour le monde extérieur, ceux-ci seront uniquement mappés comme System. Object. Ainsi, pour le codeécrit dans d'autres langages, la souplesse dans les conversions de types offerte par la prise en charge des variants Delphi n'estpas disponible.

Modifications de TVarRec

Si votre code utilise des variants, il est probable qu'il continuera à fonctionner. Toutefois, comme les variants ne sont plus baséssur le type TVarRec, tout code fonctionnant avec les structures internes d'un variant Win32 en pénétrant dans l'enregistrementTVarRec sous-jacent doit être réécrit pour .NET.

Remarque: Presque toutes les fonctions fournies par l'unité Variants sont implémentées dans RAD Studio. Si vous avezbesoin d'obtenir le VarType d'un variant, vous pouvez l'obtenir et conserver quand même un code portable.

Modifications des variants OLE

La couche COM Interop marshale automatiquement les Objects (et donc les variants). Vous pouvez donc utiliser les variantsRAD Studio avec COM. Toutefois, lors de l'utilisation des variants RAD Studio avec COM, vous devrez restreindre les typesaffectés au variant aux seuls types compatibles COM.

Dans Delphi pour Win32, le compilateur impose des restrictions COM sur les genres de données qu'il est possible d'affecter à unOleVariant. Dans RAD Studio, OleVariant est simplement un synonyme de Variant. Il n'entreprend aucune action pour garantirque la valeur Variant est d'un type compatible COM.

Modifications des variants personnalisés

Les variants personnalisés sont totalement différents dans RAD Studio. Comme les variants ne sont que des objets, il n'est pasnécessaire de faire quoi que ce soit pour créer un variant personnalisé – toute classe que vous définissez est déjà un typeVariant. Toutefois, pour fonctionner correctement avec un variant personnalisé, l'implémentation de quelques interfaces CLRpeut être utile : IComparable, IConvertible et ICloneable. Le compilateur Delphi peut utiliser ces interfaces pour implémenter desopérations de Variant. Toutefois, même avec ces interfaces, d'autres types Variant arbitraires ne peuvent pas être convertisdans votre (classe) Variant si vous n'implémentez pas une méthode FromObject :

class function FromObject(AObject: System.Object): TObject; static;

FromObject prend un objet source arbitraire (le variant à convertir dans votre type de classe) et renvoie l'instancecorrespondante de votre classe sous forme de TObject.

Utilisation des ressources

RAD Studio peut lier les ressources Windows (fichiers res) dans vos assemblages. Cela signifie que lors du premier portaged'une application, il n'est pas nécessaire de changer la manière de déclarer et d'utiliser les ressources : cela fonctionnera quandmême. Dans certains cas, c'est de toute façon ce que vous souhaitez faire. Par exemple, si vous utilisez des curseurspersonnalisés, il est plus simple d'utiliser la fonction d'API Windows LoadCursor pour ajouter le curseur à TScreen.Cursors quede subir le temps système d'utilisation de Cursor puis d'obtention d'un handle sur le curseur sous-jacent. Toutefois, pour les

1.5 Développement d'applications avec RAD Studio pour .NET Problèmes de langage au sujet du portage

71

1

Page 78: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ressources qui ne sont pas propres à Windows (comme les bitmaps, les icônes et les chaînes), vous souhaiterez probablementeffectuer une mise à jour pour obtenir un fichier de ressources .NET.

Chaînes de ressources

Lorsque vous utilisez le mot-clé resourcestring, RAD Studio crée automatiquement les ressources chaînes sous forme deressources .NET plutôt que de ressources Windows. Cette opération est automatique et vous n'avez rien de spécial à faire. Leseul point à savoir est que vous ne pouvez plus utiliser le type PResStringRec.

Bitmaps

Vous pouvez convertir des bitmaps en ressources .NET en utilisant la classe ResourceWriter. Le fichier ressource résultantpeut être lié à votre application RAD Studio ou déployé comme assemblage satellite. Pour utiliser ces bitmaps convertis,LoadFromResourceName dispose de nouvelles surcharges pour l'utilisation des ressources .NET (et l'ancienne version deLoadFromResourceName ainsi que la méthode LoadFromResourceID ont été dépréciées.) Par conséquent, si vos bitmaps setrouvent dans un fichier ressource avec un nom de la forme MyResources.en-US.resources, vous pouvez les charger commesuit :

MyBitmap.LoadFromResourceName('MyFirstBitmap', 'MyResources', System.Assembly.GetCallingAssembly);

Notez que cet exemple suppose que les ressources sont compilées dans l'assemblage constituant l'appel de méthode quicontient cette ligne. Si les ressources sont compilées dans un autre assemblage, vous pouvez utiliserSystem.Assembly.GetAssembly (en utilisant un type défini dans l'assemblage approprié) ouSystem.Assembly.GetExecutingAssembly (pour obtenir l'assemblage en cours d'exécution).

Modification de TTreeView.OnCompare

La signature de l'événement OnCompare dans la classe TTreeView a changé dans la VCL pour .NET. Le code existantprovoquera une exception d'exécution à l'appel de ce gestionnaire d'événement.

Dans Delphi 7, la signature était :

TTVCompareEvent = procedure(Sender: TObject; Node1, Node2: TTreeNode; Data: Integer; var Compare: Integer) of object;

Dans Delphi pour .NET, la nouvelle signature est :

TTCompareEvent = procedure(Sender: TObject; Node1, Node2: TTreeNode; Data: TTag; var Compare: Integer) of object;

Voir aussi

Portage de services Web vers Delphi pour .NET ( see page 79)

Utilisation de Platform Invoke avec Delphi pour .NET ( see page 46)

1.5.3 Portage d'applications VCL

Lors du portage d'applications VCL de Delphi 7 vers RAD Studio, vous devez prendre en compte certains problèmes. En plusdes éléments de base du langage à remplacer ou à modifier, vous devez suivre certaines stratégies pour être sûr de porter vosapplications totalement et d'une manière fiable.

Cette rubrique comprend les éléments suivants :

• Problèmes généraux de langage

• Renommage des packages

• Nouvelles fonctionnalités du langage

Portage d'applications VCL RAD Studio pour .NET 1.5 Développement d'applications avec

72

1

Page 79: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Portage des applications client de services Web

Problèmes généraux de langage

Le portage d'applications Delphi 7 vers RAD Studio révèle plusieurs problèmes de langage du .NET Framework. Par exemple, le.NET Framework considère les pointeurs comme non sécurisés et estime ainsi que les applications qui utilisent des pointeursn'entrent pas dans la catégorie du code managé. Pour être compatible avec le .NET Framework, vous devez modifier vosapplications pour éviter ou contourner l'utilisation des pointeurs, du type pChar et d'autres éléments propres au langage.

De plus, il existe des problèmes critiques liés à l'API Win32, à l'utilisation de décompositions, à la migration de types char et àd'autres points.

Renommage des packages

Lors du portage d'un package Delphi 7 vers RAD Studio, vous devez changer le nom de package dans la liste "Requires" pourrefléter les nouveaux noms de packages. Le tableau suivant montre les ancien et nouveau noms :

Ancien nom du package Nouveau nom du package

rtl Borland.Delphi and Borland.VclRtl

vcl Borland.Vcl

vclx Borland.VclX

dbrtl Borland.VclDbRtl

bdertl Borland.VclBdeRtl

vcldb Borland.VclDbCtrls

dbexpress Borland.VclDbExpress

dbxcds Borland.VclDbxCds

dsnap Borland.VclDSnap

dsnapcon Borland.VclDSnapCon

vclactnband Borland.VclActnBand

Pour intaller les packages Borland.VclActnBand, utilisez Composant Composants.NET installés Composants VCL .NET.

Nouvelles fonctionnalités du langage

Plusieurs fonctionnalités nouvelles ont été ajoutées au langage Delphi pour prendre en charge des concepts et fonctionnalitésde programmation de la plate-forme .NET et de la CLS (Common Language Specification) :

• Partitionnement du code en espaces de nommage

• Nouveaux spécificateurs de visibilité pour les membres de classes

• Méthodes, propriétés et champs statiques de classes

• Constructeurs de classes

• Déclarations de types imbriqués dans les classes

• Classes scellées

• Méthodes virtuelles finales

• Surcharge d'opérateurs dans les classes

• Attributs .NET

• Syntaxe d'assistance de classe

La programmation dans l'environnement .NET traité par le récupérateur de mémoire amène un certain nombre de nouveaux problèmes liés à l'allocation et à la suppression des objets. Ces problèmes sont traités dans Problèmes de gestion de la mémoire sur la plate-forme .NET.

1.5 Développement d'applications avec RAD Studio pour .NET Portage d'applications VCL

73

1

Page 80: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Portage des applications client de services Web

Le .NET Framework introduit une modification d'architecture importante sur la manière de gérer les services Web et clients deservices Web. Vos applications client de services Web existantes doivent être modifiées pour fonctionner sur le .NETFramework. RAD Studio ne supporte pas les composants RIO et utilise une approche .NET plus transparente pour gérer lesapplications client de services Web. Vous devrez éliminer les composants RIO et modifier la manière dont vous accédez auxdocuments WSDL.

Voir aussi

Présentation de VCL.NET ( see page 76)

Problèmes de langage lors du portage d'applications VCL vers Delphi pour .NET ( see page 63)

Utilisation de Platform Invoke avec Delphi pour .NET ( see page 46)

Portage de clients de services Web vers Delphi pour .NET ( see page 79)

Portage d'une application client de services Web Delphi pour Win32 vers Delphi pour .NET ( see page 220)

1.5.4 Présentation de VCL pour .NET

La VCL pour .NET est l'infrastructure de programmation pour la construction d'applications RAD Studio à l'aide de composantsVCL. RAD Studio et VCL pour .NET ont été conçus pour aider les utilisateurs à exploiter la puissance de Delphi lors de l'écriturede nouvelles applications, ainsi que pour migrer des applications Win32 existantes vers le .NET Framework.

Ces technologies permettent à un développeur Delphi de migrer vers .NET, en utilisant ses compétences Delphi et une grandepartie de son code source Delphi existant. RAD Studio prend en charge le développement Microsoft .NET Framework avec lelangage Delphi et la VCL pour les contrôles.NET. RAD Studio ASP.NET prend également en charge les WebForms et ledéveloppement d'applications de services Web SOAP et XML.

La VCL pour .NET est un vaste sous-ensemble des classes les plus courantes de la VCL pour Win32. Le .NET Framework a étéconçu pour s'adapter à n'importe quel langage compatible .NET. Dans de nombreux cas, le code source Delphi qui fonctionnesur des classes et des fonctions VCL Win32 se recompile avec un minimum de modifications sur .NET. Il peut même arriver qu'ilse recompile sans aucune modification. La VCL pour .NET est un vaste sous-ensemble de la VCL, qui prend par conséquent encharge de nombreuses classes VCL existantes. Toutefois, le code source qui appelle directement l'API Win32 nécessite desmodifications. De plus, des contrôles VCL Win32 tiers dépendants doivent également être disponibles dans les versions .NET,pour la compatibilité.

Cette section présente :

• VCL pour l'architecture .NET

• VCL pour .NET et le .NET Framework

• Composants VCL pour .NET

• Espace de nommage Borland.VCL

• Portage d'applications Delphi vers RAD Studio

• Importation de composants .NET à utiliser dans des applications VCL pour .NET

Présentation de VCL pour .NET RAD Studio pour .NET 1.5 Développement d'applications avec

74

1

Page 81: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

VCL pour l'architecture .NET

La VCL est un ensemble de composants visuels permettant la construction d'applications Windows dans le langage Delphi. LaVCL pour .NET est la même bibliothèque de composants, mise à jour pour une utilisation avec le .NET Framework. La VCL pour.NET et le .NET Framework coexistent dans RAD Studio. La VCL pour .NET et .NET fournissent des composants et desfonctionnalités vous permettant de construire des applications .NET :

• La VCL pour .NET offre le moyen de créer des applications Fiches VCL, qui sont des fiches Delphi orientées .NET utilisant des composants VCL pour .NET.

• La VCL pour .NET fournit des composants VCL non visuels qui ont été orientés .NET pour accéder à des bases de données. Vous pouvez également accéder aux bases de données par l'intermédiaire des fournisseurs ADO.NET et BDP.NET.

• .NET permet de construire des applications Console et .NET Web Forms, en utilisant des composants .NET, avec le code Delphi sous-jacent.

Vous pouvez construire des applications Fiches VCL en utilisant des composants VCL pour .NET. Vous pouvez également construire des applications Web Forms ASP.NET en utilisant des composants VCL pour .NET ou des composants .NET.

VCL pour .NET et le .NET Framework

Le .NET Framework fournit une bibliothèque de composants, de classes et de fonctionnalités de bas niveau qui gère lesfonctionnalités courantes, de l'affichage des boutons à la fonction distante, sans tenir compte du langage d'implémentationsous-jacent. La VCL pour .NET et le .NET Framework sont fonctionnellement équivalents. Comme le .NET Framework, la VCLpour .NET fournit des bibliothèques de composants, de contrôles, de classes et de fonctionnalités de bas niveau qui vous aidentà construire des applications Console et Fiches Web s'exécutant sur la plate-forme Windows .NET Framework en cours.

La VCL pour .NET ne remplace pas le .NET Framework.

Vous aurez encore besoin du module d'exécution .NET pour utiliser la VCL pour .NET, mais vous pourrez construire desapplications complètes en utilisant des composants VCL pour .NET s'exécutant sur la plate-forme .NET.

Vous pouvez construire des applications RAD Studio sans utiliser la VCL pour .NET, en créant des applications Console etFiches Web utilisant du code RAD Studio.

Vous pouvez utiliser RAD Studio pour créer de puissantes applications .NET à l'aide de composants .NET ou de composantsVCL pour .NET migrés à partir de la VCL Delphi. Si vous disposez d'applications VCL Delphi existantes que vous voulezexécuter sous Windows XP, vous pourrez facilement porter ces applications en utilisant RAD Studio.

Composants VCL pour .NET

VCL pour .NET se compose d'un ensemble de composants visuels et non visuels. VCL pour .NET se base sur le concept deconstruction visuelle d'applications, éliminant considérablement le codage manuel.

1.5 Développement d'applications avec RAD Studio pour .NET Présentation de VCL pour .NET

75

1

Page 82: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Composants visuels

RAD Studio fournit un ensemble de composants visuels, ou contrôles, que vous pouvez utiliser pour construire vos applications.En plus des contrôles courants, comme les boutons, les zones de saisie, les boutons radio et les cases à cocher, vous pouvezégalement trouver des contrôles grilles, des barres de défilement, des boutons fléchés, des objets calendriers, un concepteur demenu complet, etc. Ces contrôles sont représentés de manière différente dans RAD Studio et dans les infrastructures telles quele .NET Framework.

Dans un EDI d'autres langages, tels que C# ou Java, il est courant de voir des représentations de fiches basées sur du code etd'autres composants visuels. Ces représentations incluent des définitions physiques, comme la taille, la hauteur et d'autrespropriétés, ainsi que les constructeurs et destructeurs des composants. Dans l'éditeur de code de RAD Studio, vous ne verrezpas de représentation de code de vos composants VCL pour .NET.

RAD Studio est un système basé sur les ressources, ce qui signifie que les principales représentations de code sous-jacent sontcelles des gestionnaires d'événements que vous remplissez avec votre logique de programme. Les composants visuels sontdéclarés et définis dans des fichiers texte d'extension .dfm (pour les fiches Delphi) ou .nfm (pour les fiches RAD Studio). Lesfichiers nfm sont créés par RAD Studio lorsque vous concevez vos fiches VCL sur le concepteur de fiches, et ils apparaissentdans la liste des ressources du gestionnaire de projet pour le projet donné.

Composants non visuels

Vous pouvez utiliser des composants non visuels pour implémenter des fonctionnalités qui ne sont pas nécessairementexposées de manière visuelle. Par exemple, vous pouvez accéder aux données en utilisant des composants non visuels commeles composants BDP.NET, qui fournissent une connectivité de base de données et un accès à DataSet. Bien que cescomposants n'aient pas de comportement d'exécution visuel, ils sont représentés par des composants dans la palette d'outilsau moment de la conception. VCL pour .NET fournit différents composants non visuels pour l'accès aux données, les fonctionsserveur, etc.

Espace de nommage Borland.VCL

Les classes VCL pour .NET se trouvent sous l'espace de nommage Borland.Vcl. Les classes liées aux bases de données setrouvent dans l'espace de nommage Borland.Vcl.DB. Les classes de bibliothèque d'exécution se trouvent dans l'espace denommage Borland.Vcl.Rtl.

Les fichiers d'unités ont été regroupés dans les espaces de nommage Borland.Vcl correspondants. Dans certains cas, lesunités ont été déplacées. Toutefois, les espaces de nommage sont identifiés de façon à vous aider à trouver les fonctionnalitésque vous souhaitez.

Les fichiers source de tous les objets RAD Studio sont disponibles dans le sous-répertoire c:\ProgramFiles\CodeGear\RAD Studio\5.0\Source.

Portage d'applications Delphi vers RAD Studio

Si vous disposez d'applications existantes écrites avec une version précédente de Delphi, vous pourrez avoir besoin de lesporter vers .NET. Dans la plupart des cas, ce sera plus facile que de réécrire les applications. Comme RAD Studio tire partid'éléments structurels significatifs du .NET Framework, vous devrez effectuer certaines tâches de portage manuelles pourexécuter vos applications. Par exemple, le .NET Framework ne gère pas les pointeurs dans le code sécurisé. Aussi, touteinstance de variables pChar ou pointeur doit être remplacée par une variable de type .NET. De nombreux objets Delphi ont étémis à jour pour répondre à ces restrictions de types, mais votre code peut inclure des références à des pointeurs ou des typesnon pris en charge. Pour plus d'informations, reportez-vous au guide du langage dans ce système d'aide.

Importation de composants .NET à utiliser dans des applications VCL pour .NET

RAD Studio fournit l'expert d'importation .NET pour vous aider à importer des contrôles .NET dans des unités et des packagesVCL pour .NET. Par exemple, vous pouvez envelopper tous les composants .NET, comme ceux de l'assemblageSystem.Windows.Forms, dans des enveloppes ActiveX qui pourront être déployées sur des applications VCL pour .NET.Après avoir importé les composants .NET de votre choix, vous pouvez ajouter à la palette d'outils un fichier de package

Présentation de VCL pour .NET RAD Studio pour .NET 1.5 Développement d'applications avec

76

1

Page 83: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

complet contenant les unités pour chaque composant. Vous pouvez également visualiser et modifier les fichiers d'unitésindividuels qui peuvent être des matériaux de référence utiles lorsque vous écrivez vos propres composants personnalisés.

Voir aussi

Guide du langage

Portage d'applications VCL ( see page 74)

Fournisseurs de données pour .NET ( see page 27)

Importation de contrôles .NET vers la VCL pour .NET ( see page 176)

Déploiement des applications

Construction d'une application Fiche VCL pour .NET ( see page 160)

1.5.5 Portage de clients de services Web

Les services Web RAD Studio utilisent le .NET Framework comme couche de services. En conséquence, toutes les applicationsexistantes qui sont clientes de services Web Delphi 7 ou antérieures doivent être modifiées pour utiliser le .NET Framework.

Cette rubrique comprend :

• Modifications et ajouts à vos applications

• Remarques d'implémentation

Modifications et ajouts à vos applications

Apportez les modifications et les ajouts suivants à vos applications :

• Retirez les composants RIO de vos applications. Ils ne fonctionneront plus dans le .NET Framework. Avant de retirer un composant, enregistrez ses informations de propriété, telles que l'URL.

• Retirez les unités SOAP Delphi 7 de la clause uses et retirez la référence uses de l'unité proxy Interface Delphi 7 WSDL générée par Importer.

• Ajoutez une référence Web en choisissant la commande Ajouter une référence Web dans le menu contextuel du gestionnaire de projet.

Remarques d'implémentation

Les remarques suivantes abordent des problèmes particuliers que vous pouvez rencontrer lors du portage d'applications clientde services Web.

Interopérabilité serveur et service Web

Les implémentations Delphi 7 et .NET SOAP sont légèrement différentes. Vous devrez positionner certaines options sur leserveur (propriété TSOAPDomConv.Options) pour utiliser avec succès plusieurs clients. Définissez les options suivantes pourgarantir que les deux applications clientes pourront traiter les packages SOAP et transférer l'encodage correct :

[soTryAllSchema, soRootRefNodesToBody, soUTF8InHeader, soUTF8EncodeXML]

Gestion des exceptions

Le tableau suivant montre les exceptions correspondantes entre Delphi 7 et le .NET Framework.

Exception Delphi 7 Exception .NET Framework

ERemotableException System.Web.Services.Protocols. SoapException

1.5 Développement d'applications avec RAD Studio pour .NET Portage de clients de services Web

77

1

Page 84: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ESOAPHTTPException System.Net.WebException

Faultcodes

Dans Delphi 7, la propriété ERemotableException.FaultCode renvoie un nom qualifié, tel que SOAP-ENV:Client.Login. Vousdevez ensuite extraire le code en utilisant la fonction ExtractLocalName. La classe SoapException .NET Framework fournit lapropriété SoapException.Code.Name directement.

Surveillance des paquets SOAP

Dans Delphi 7, le composant THTTPRIO prend en charge les événements OnBeforeExecute et OnAfterExecute permettant decontrôler les requêtes et les réponses. Vous pouvez implémenter une fonctionnalité similaire en utilisant la classeSoapExtension .NET Framework. Voici une partie d'un exemple qui implémente cette fonctionnalité. Vous trouverez l'exemplecomplet dans le référentiel CodeCentral de Borland. Le lien est dans la liste des liens à la fin de cette rubrique.

uses System.Xml, System.Web.Services, System.Web.Services.Protocols, System.IO; type TSoapMessageEvent = procedure (Sender: TObject; const Xml: string) of object; TSoapMonitor = class(TObject) private FOnRequest: TSoapMessageEvent; FOnResponse: TSoapMessageEvent; protected procedure DoRequest(const Xml: string); procedure DoResponse(const Xml: string); public class function FormatXmlData(const Xml: string): string; static; property OnRequest: TSoapMessageEvent add FOnRequest remove FOnRequest; property OnResponse: TSoapMessageEvent add FOnResponse remove FOnResponse; end; . . .{ TSoapMonitor } procedure TSoapMonitor.DoRequest(const Xml: string);begin if Assigned(FOnRequest) then FOnRequest(Self, Xml);end; procedure TSoapMonitor.DoResponse(const Xml: string);begin if Assigned(FOnResponse) then FOnResponse(Self, Xml);end; class function TSoapMonitor.FormatXmlData(const Xml: string): string;var Doc: XmlDocument; Sw: StringWriter; Xw: XmlTextWriter;begin Doc := XmlDocument.Create; Doc.LoadXml(Xml); Sw := StringWriter.Create; Xw := XmlTextWriter.Create(sw); Xw.Formatting := Formatting.Indented;

Portage de clients de services Web RAD Studio pour .NET 1.5 Développement d'applications avec

78

1

Page 85: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Xw.Indentation := 2; Xw.IndentChar := ' '; doc.Save(xw); Result := sw.ToString; Xw.Close; Sw.Close;end;

Utilisation des en-têtes SOAP

Dans Delphi 7, vous devez envoyer l'en-tête avant chaque appel de méthode. L'objet en-tête est libéré après chaque appel.Dans le .NET Framework, la classe d'en-tête persiste après l'appel d'une méthode, jusqu'à ce que new soit affecté ou que laclasse d'en-tête soit effacée par une affectation de la valeur nil.

Attachements SOAP

Le .NET Framework ne prend pas en charge les attachements MIME. Delphi 7 SOAP ne prend pas en charge les attachementsDIME.

Voir aussi

Présentation des services Web ASP.NET ( see page 104)

Portage d'une application client de services Web Delphi pour Win32 vers Delphi pour .NET ( see page 220)

Exemple CodeCentral de surveillance des packages SOAP

1.5 Développement d'applications avec RAD Studio pour .NET Portage de clients de services Web

79

1

Page 86: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.6 Développement d'applications Web avec ASP.NET

ASP.NET est le modèle de programmation qui permet de concevoir des applications Web en utilisant .NET Framework. Cettesection fournit l'arrière-plan conceptuel de construction des applications ASP.NET avec RAD Studio. Outre la gestion descomposants d'accès aux données du .NET Framework, RAD Studio inclut les contrôles DB Web. Les contrôles DB Webfonctionnent avec les fournisseurs .NET Framework et les fournisseurs de données Borland pour .NET (BDP.NET) pouraccélérer le développement d'applications Web.

Rubriques

Nom Description

Présentation de ASP.NET ( see page 84) ASP.NET est l'environnement de programmation .NET pour la construction d'applications en HTML qui s'exécutent sur le Web. Cette rubrique fournit des informations préliminaires sur les composants essentiels de l'architecture ASP.NET et explique comment ASP.NET s'intègre avec les autres modèles de programmation du .NET Framework. Cette rubrique présente :

• Architecture ASP.NET

• Web Forms

• Accès aux données

• Services web

• Fonctionnalités à la conception

• Serveurs Web pris en charge

• Exemples d'applications

Présentation des contrôles DB Web CodeGear ( see page 87) Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Les contrôles DB Web CodeGear simplifient les tâches de développement des bases de données en combinaison avec BDP.NET et les composants d'accès aux données .NET Framework. Les contrôles DB Web sont des contrôles orientés données qui fournissent des fonctionnalités avancées (grille orientée données, navigateur, calendrier, boîte à options et autres composants courants). Cette section présente :

• Architecture des contrôles DB Web

• Avantages des composants orientés données

• Composants d'accès aux données pris en charge

• Espace de nommage... suite ( see page 87)

Utilisation de contrôles DB Web dans les applications maître-détail ( see page 89)

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Les contrôles DB Web permettent de concevoir des applications maître-détail fonctionnelles, en utilisant les contrôles DBWebDataSource, DBWebGrid et DBWebNavigator. Pour prendre en charge les applications maître-détail, ces contrôles doivent fournir un moyen d'indiquer un comportement en cascade.Cette rubrique comporte des informations sur les éléments suivants :

• Spécification de suppressions en cascade

• Spécification de mises à jour en cascade

RAD Studio pour .NET 1.6 Développement d'applications Web

80

1

Page 87: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Présentation de l'API de navigation des contrôles DB Web ( see page 91) Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Bien qu'il soit possible d'utiliser le contrôle standard DBWebNavigator pour la plupart des applications, il est possible que vous ayez besoin d'exercer un contrôle plus étroit sur la navigation dans votre application. Les contrôles DB Web fournissent maintenant une API vous permettant d'optimiser votre navigation. Par exemple, grâce à cette API, vous pouvez créer un bouton qui réalise directement la navigation, au lieu d'utiliser le contrôle standard DBWebNavigator. Bien qu'il soit possible de masquer les... suite ( see page 91)

Présentation de l'expert des contrôles DB Web ( see page 92) Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Les contrôles DB Web CodeGear sont des composants Web orientés données. Ces contrôles DB Web vous permettent d'encapsuler des fonctionnalités orientées données dans des contrôles web standard. Un avantage de cette approche réside dans le fait que la fonction de liaison des données est remplie par le contrôle lui-même, ce qui élimine le besoin d'ajouter un appel à la méthode DataBind.Les concepts de base impliqués dans la création des contrôles DB Web sont les... suite ( see page 92)

Utilisation de fichiers XML avec des contrôles DB Web ( see page 98) Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Le composant DBWebDataSource vous permet de créer et d'utiliser des fichiers XML et XSD en tant que source de données pour une application ASP.NET. En général, vous utilisez seulement ces types de fichiers avec les contrôles DBWeb pour prototyper votre application. En utilisant les fichiers XML comme source de données, vous pouvez éliminer des ressources de base de données potentiellement coûteuses pendant la phase de conception et de développement de votre projet. Cette rubrique traite... suite ( see page 98)

Utilisation des vues de données ( see page 100) Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Avec les composants DataViews, vous pouvez définir des filtres sur un DataTable en utilisant la propriété RowFilter ou placer les données dans un ordre particulier. Le composant DataView se trouve sous la zone Composants de données de la palette d'outils. Cette rubrique traite des sujets suivants :

• Propriétés d'exécution

• Relations maître-détail

• ClearSessionChanges (méthode)

• Limitations des vues de données

Déploiement d'applications ASP.NET ( see page 101) Cette rubrique contient des informations sur les éléments suivants :

• Exigences des serveurs Web

• Recommandations sur le pré-déploiement

• Le gestionnaire du déploiement ASP.NET de RAD Studio

Pour des informations supplémentaires sur le déploiement, voir le fichier deploy.htm, situé par défaut à l'adresse C:\Program Files\CodeGear\RAD Studio\5.0.

Utilisation des interfaces WebDataLink ( see page 102) Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard. Les caractéristiques qui rendent les contrôles DB Web différents des contrôles web traditionnels résident dans le fait que les contrôles DB Web gèrent automatiquement toutes les liaisons de données. Bien que vous deviez encore configurer les liens entre les sources de données et les contrôles au moment de la conception, toutes les liaisons à l'exécution sont gérées, sans qu'il soit nécessaire d'ajouter une commande de liaison de données dans votre code. Lors de l'extension d'un... suite ( see page 102)

1.6 Développement d'applications Web RAD Studio pour .NET Présentation de ASP.NET

81

1

Page 88: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.6.1 Présentation de ASP.NET

ASP.NET est l'environnement de programmation .NET pour la construction d'applications en HTML qui s'exécutent sur le Web.Cette rubrique fournit des informations préliminaires sur les composants essentiels de l'architecture ASP.NET et expliquecomment ASP.NET s'intègre avec les autres modèles de programmation du .NET Framework. Cette rubrique présente :

• Architecture ASP.NET

• Web Forms

• Accès aux données

• Services web

• Fonctionnalités à la conception

• Serveurs Web pris en charge

• Exemples d'applications

Architecture ASP.NET

Les composants essentiels de l'architecture ASP.NET sont les fiches Web, les contrôles serveur ASP.NET, les fichiers delogique de code sous-jacent et les fichiers DLL compilés. Les pages Web Form contiennent des éléments HTML, du texte et descontrôles serveur. Les fichiers de code sous-jacent contiennent la logique applicative des pages Web Form. Les fichiers DLLcompilés restituent le HTML sur le serveur Web.

CodeGear propose des outils pour simplifier le développement ASP.NET. Si vous êtes familier avec le développement rapided'applications (RAD) et la programmation orientée objet au moyen de propriétés, de méthodes et d'événements, vous serez enterrain connu avec le modèle ASP.NET de conception d'applications Web.

Fiches Web, contrôles serveur et éléments HTML

Les fiches Web définissent l'interface utilisateur pour votre application Web. Une fiche Web se compose généralement d'unfichier de balisage (.aspx) qui fournit la présentation visuelle et d'un fichier de code sous-jacent (.pas ou .cs) qui fournit lalogique du programme. Le fichier de code sous-jacent est compilé en .dll et déployé sur le serveur avec le fichier .aspx. Al'exécution, le fichier .aspx est compilé et lié avec le fichier de code sous-jacent .dll. Cela vous permet de modifier le fichier.aspx sans avoir à recompiler le fichier de code sous-jacent.

Le fichier .aspx de fiche Web se compose de contrôles serveur ASP.NET et d'éléments HTML statiques. Les contrôles serveursont déclarés dans votre code et peuvent être accessibles par programme par l'intermédiaire de propriétés, de méthodes et degestionnaires d'événements. Ils s'exécutent sur le serveur web et produisent le HTML à renvoyer au client.

Les éléments HTML sont des contrôles statiques, côté client ; ils ne sont pas, par défaut, accessibles par programme. Toutefois,ils conviennent bien aux textes et aux images statiques d'une fiche Web.

Présentation de ASP.NET RAD Studio pour .NET 1.6 Développement d'applications Web

82

1

Page 89: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Accès aux données

Les fiches Web peuvent accéder aux données par l'intermédiaire d'ADO.NET. Vous pouvez connecter une application ASP.NETà une source de données ADO.NET en utilisant les composants de données inclus dans le .NET Framework, les composantsAdoDbx Client, Blackfish SQL ou du fournisseur de données Borland (BDP.NET).

Services web

Les services Web fournissent des composants d'applications à de nombreux systèmes distribués en utilisant une messageriebasée sur XML. Un service web peut être aussi simple qu'un message XML mettant à jour des valeurs dans une applicationdistante, ou peut être partie intégrante d'une application ASP.NET ou ADO.NET sophistiquée. Les services web et ASP.NETpartagent une infrastructure .NET commune qui permet une intégration transparente.

Serveurs Web pris en charge

RAD Studio supporte deux serveurs pour le développement des applications ASP.NET : Internet Information Services 6.0 (IIS) etCassini. Vous pouvez utiliser IIS et Cassini sur le même ordinateur, à condition de les configurer pour qu'ils utilisent des portsdifférents.

• IIS est un serveur web complet et évolutif qui est inclus dans Windows Server 2003. Vous pouvez déployer des applications sur un ordinateur exécutant IIS.

• Cassini est un serveur web utilisé durant le processus de développement, mais n'a pas été conçu pour le déploiement des applications. Il est plus facile de l'utiliser plutôt que IIS car il n'y a pas de configuration. Cassini a été développé par Microsoft et rendu disponible par téléchargement gratuit avec le source. RAD Studio est livré avec une version légèrement personnalisée de Cassini intégrée dans notre support ASP.NET.

Lorsque vous créez une application ASP.NET, RAD Studio vous invite à spécifier le serveur web et un emplacement pour l'application. Vous pouvez définir le serveur et l'emplacement par défaut pour les nouvelles applications, ainsi que l'emplacement et le port du serveur Cassini, sur la page Outils Options ASP.NET.

Fonctionnalités à la conception

RAD Studio offre plusieurs fonctionnalités à la conception pour vous aider à accélérer le développement de fichiers Web Forms,HTML et CSS.

Modification des fichiers HTML et CSS

De nombreuses fonctionnalités de l'éditeur de code sont également disponibles pour l'édition des fichiers HTML et CSS.L'achèvement du code (CTRL+ESPACE) et la mise en évidence de la syntaxe sont disponibles pour les fichiers HTML et CSS.L'audit d'erreur est disponible pour les fichiers HTML et met en évidence le code HTML incorrect en le soulignant d'un traitondulé rouge. Si vous positionnez la souris sur le code HTML mis en évidence, une fenêtre de conseil apparaît en indiquant lacause probable de l'erreur.

Lors de l'affichage d'une page HTML, le formateur HTML interne indente automatiquement le code HTML pour améliorer lalisibilité. Vous pouvez aussi utiliser HTML Tidy, l'outil de formatage standard de www.w3c.org. Vous pouvez utiliser HTML Tidy,si nécessaire, pour formater le fichier et vérifier la présence d'erreurs en choisissant les commandes de menu Edition HTMLTidy. Vous pouvez également le configurer comme formateur par défaut, à la place du formateur interne. Vous pouvez aussidéfinir des balises que HTML Tidy aurait détectées comme incorrectes, comme celles préfixées par asp:. Pour accéder auxoptions de HTML Tidy, choisissez Outils Options Options HTML Tidy.

La vue structure affiche une vue arborescente hiérarchique des balises HTML dans la page HTML active, et elle est utilelorsque vous naviguez dans des fichiers de taille importante. Un double-clic sur un noeud de la vue arborescente vouspositionne dans le fichier HTML sur la balise correspondante.

Disposition de flux et disposition de grille du concepteur

A la conception d'une fiche Web, vous pouvez utiliser soit une disposition de grille soit une disposition de flux pour le concepteur.Dans la disposition de grille, les contrôles sont disposés par position absolue et vous pouvez les repositionner en les faisantglisser sur la fiche. Une grille facultative visible est également disponible pour vous aider à aligner les contrôles. Si vous faites

1.6 Développement d'applications Web RAD Studio pour .NET Présentation de ASP.NET

83

1

Page 90: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

glisser un contrôle depuis la palette d'outils vers la fiche Web ou si vous cliquez sur le contrôle sur la palette d'outils puis quevous cliquez ensuite sur la fiche Web, le contrôle est ajouté au moyen d'un positionnement absolu.

Dans la disposition de flux, les contrôles sont disposés du haut vers le bas sur la fiche Web, et vous pouvez les repositionner àl'aide des touches fléchées. Si vous double-cliquez sur un contrôle sur la palette d'outils, il sera ajouté à la fiche Web endisposition de flux.

La disposition pour un contrôle individuel peut être modifiée en utilisant le bouton Disposition absolue sur la barre d'outilsConception HTML en haut du concepteur.

Pour changer de façon permanente la disposition des nouveaux fichiers créés à l'aide de RAD Studio, vous pouvez modifier lefichier template page.aspx situé, par défaut, dans CodeGear\RAD Studio\5.0\ObjRepos\DelphiDotNet.

Exemples d'applications

RAD Studio inclut plusieurs exemples d'applications ASP.NET dans le répertoire Demos. Un grand nombre d'exemplesd'applications comprennent un fichier readme qui décrit l'application et énumère ses éventuelles conditions préalables. Avantd'essayer d'ouvrir un exemple d'application dans l'EDI :

• Recherchez un fichier readme dans le répertoire de l'application et suivez les instructions de configuration éventuelles.

• Créez un répertoire virtuel pour l'exemple d'application de façon à éviter les erreurs Impossible de trouver la ressource dans le navigateur à l'exécution (voir la procédure présentée à la fin de cette rubrique).

Voir aussi

Présentation de ADO.NET ( see page 14)

Présentation des services Web ( see page 104)

Conception d'une application ASP .NET ( see page 181)

Contrôles DB Web pour ASP.NET ( see page 87)

Déploiement d'applications ASP.NET ( see page 101)

Création d'un répertoire virtuel pour les applications de démonstration ( see page 200)

Espace de nommage System.Web

Applications Web ASP.NET du Guide du développeur .NET Framework (MSDN)

1.6.2 Présentation des contrôles DB Web CodeGear

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Les contrôles DB Web CodeGear simplifient les tâches de développement des bases de données en combinaison avecBDP.NET et les composants d'accès aux données .NET Framework. Les contrôles DB Web sont des contrôles orientés donnéesqui fournissent des fonctionnalités avancées (grille orientée données, navigateur, calendrier, boîte à options et autrescomposants courants).

Cette section présente :

• Architecture des contrôles DB Web

• Avantages des composants orientés données

• Composants d'accès aux données pris en charge

• Espace de nommage des contrôles DB Web

Présentation des contrôles DB Web RAD Studio pour .NET 1.6 Développement d'applications Web

84

1

Page 91: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Déploiement d'applications ASP.NET avec les contrôles DB Web

Architecture des contrôles DB Web

Les contrôles DB Web sont un ensemble de composants visuels et non visuels qui accélèrent la création des applicationsASP.NET en offrant des fonctionnalités de glisser-déplacer ainsi qu'un puissant mécanisme de recherche de source dedonnées. En grande partie, les contrôles DB Web sont des contrôles d'interface utilisateur graphique (GUI) communs pour lesapplications ASP.NET. Le contrôle connecteur, le contrôle DBWebDataSource, agit comme connecteur orienté données entreles contrôles visuels et la source de données sous-jacente. En d'autres termes, le contrôle DBWebDataSource agit comme uncanal pour les données qui sont stockées dans une source de données et les contrôles qui affichent ces données sur votre ficheASP.NET. Le contrôle DBWebDataSource peut référencer des composants .NET Framework ADO.NET et BDP.NET. Parexemple, l'ensemble de données en mémoire généré par un adaptateur ADO.NET (tel que SQLDataAdapter) ou par l'un desadaptateurs BDP.NET (tel que BDPDataAdapter). De plus, vous pouvez utiliser DBWebDataSource pour la liaison avec d'autrestypes de fournisseurs de source de données, tels que des fichiers texte, des tableaux ou des collections.

Avantages des composants orientés données

En général, lorsque vous créez une application ASP.NET qui représente les contrôles exposant les données d'une source dedonnées sous-jacente, telle qu'une base de données, vous devez configurer manuellement la liaison entre la source de donnéeset les contrôles. Cela consiste à définir la syntaxe et les paramètres pour chaque contrôle qui doit être lié à la source dedonnées.

Le principal avantage de l'utilisation des contrôles DB Web réside dans le fait qu'une fois que vous avez connecté un contrôleDBWebDataSource à votre source de données, tous les contrôles DB Web de votre page ASP.NET qui référencentDBWebDataSource sont automatiquement reliés à la source de données sous-jacente. Il n'est pas nécessaire d'ajouter du codepour accomplir la liaison des données.

Les contrôles DB Web fournissent les avantages suivants par rapport aux contrôles Web standard :

• Elimination du besoin d'appeler la méthode WebControl.DataBind. Normalement, chaque contrôle ASP.NET de la fiche web nécessite que vous ajoutiez cet appel à la routine Page_load, faute de quoi le contrôle n'affichera pas les données à l'exécution.

• Affichage d'une vue de conception des données.

• Transmission automatique des modifications à l'ensemble de données. Normalement, les contrôles ASP.NET ont besoin d'un code pour transmettre les modifications.

• Maintien de la position en cours des lignes.

• Gestion automatique du changement d'état de ligne. Cela signifie que des clients provenant de différentes machines peuvent fonctionner indépendamment, quel que soit l'état côté serveur.

En supplément de ces avantages généraux, les contrôles DB Web offrent les avantages spécifiques suivants :

• Le DBWebDataSource conserve une liste ordonnée des modifications pour que l'utilisateur puisse annuler les modifications dans l'ordre dans lequel elles ont été apportées.

• Le contrôle DBWebNavigator offre des fonctionnalités de navigation pour les grilles et plusieurs contrôles de texte, et il peut être étendu aux contrôles Web standards.

• Le DBWebDataGrid offre des fonctionnalités intégrées de pagination avec des numéros et des icônes, d'ajout de colonnes Modifier et Supprimer et d'autres fonctionnalités avancées. En d'autres termes, vous n'avez plus besoin de coder ces fonctionnalités dans votre contrôle de grille.

Composants d'accès aux données pris en charge

Les contrôles DB Web sont compatibles avec les composants d'accès aux données .NET Framework ADO.NET et CodeGearBDP.NET. Toute source de données accessible par l'un de ces fournisseurs peut servir de source de données sous-jacente pourles contrôles DB Web. De plus, de nombreux contrôles DB Web, comme de nombreux contrôles Web .NET en général, peuventaccéder à d'autres objets en tant que sources de données, comme les tableaux, les collections et les fichiers.

1.6 Développement d'applications Web RAD Studio pour .NET Présentation des contrôles DB Web

85

1

Page 92: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Espace de nommage des contrôles DB Web

L'espace de nommage des contrôles DB Web est Borland.Data.Web. Avec la réflexion, vous pouvez en apprendre beaucoupsur la structure de l'espace de nommage et les contrôles. Vous pouvez ajouter l'espace de nommage à votre projet, puis l'ouvrirdans l'éditeur de code. Ceci ouvre l'éditeur de réflexion et vous donne une vue hiérarchisée de tous les contrôles et de leursmembres.

Options de contrôle Description

DBWebDataSource Fait office de pont entre la source de données et les contrôles DBWeb.

DBWebAggregateControl Un contrôle zone de saisie qui affiche des valeurs d'agrégation à partir d'une colonnespécifiée.

DBWebCalendar Un contrôle calendrier.

DBWebCheckBox Un contrôle case à cocher.

DBWebDropDownList Un contrôle boîte à options.

DBWebGrid Une grille de données.

DBWebImage Un contrôle image.

DBWebLabel Un libellé.

DBWebLabeledTextBox Une zone de saisie avec un libellé associé.

DBWebListBox Un contrôle boîte liste.

DBWebMemo Un contrôle champ mémo.

DBWebNavigationExtender Un composant non visuel qui vous permet de définir des boutons de contrôle Web standardcomme contrôles de navigation.

DBWebNavigator Une barre de navigation.

DBWebRadioButtonList Un groupe de boutons radio.

DBWebSound Un contrôle son, qui utilise le lecteur multimédia par défaut sur votre système.

DBWebTextBox Une zone de saisie.

DBWebVideo Un contrôle vidéo, qui utilise le lecteur multimédia par défaut de votre système.

Déploiement d'applications ASP.NET avec les contrôles DB Web

Après avoir créé un projet ASP.NET avec les contrôles DB Web, déployez votre application ASP.NET comme d'habitude. Vousne devez prendre en compte aucun point particulier.

Voir aussi

Fournisseurs de données pour .NET ( see page 27)

Conception d'une application avec des contrôles DB Web ( see page 195)

Conception d'une application ASP .NET ( see page 181)

Utilisation de fichiers XML avec des contrôles DB Web ( see page 98)

Utilisation des vues de données ( see page 100)

Interfaces WebDataLink ( see page 102)

Déploiement d'applications ASP.NET ( see page 101)

Utilisation de contrôles DB Web dans les RAD Studio pour .NET 1.6 Développement d'applications Web

86

1

Page 93: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.6.3 Utilisation de contrôles DB Web dans les applications maître-détail

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Les contrôles DB Web permettent de concevoir des applications maître-détail fonctionnelles, en utilisant les contrôlesDBWebDataSource, DBWebGrid et DBWebNavigator. Pour prendre en charge les applications maître-détail, ces contrôlesdoivent fournir un moyen d'indiquer un comportement en cascade.

Cette rubrique comporte des informations sur les éléments suivants :

• Spécification de suppressions en cascade

• Spécification de mises à jour en cascade

Suppressions en cascade

Une application maître-détail utilise généralement l'événement OnApplyChanges pour envoyer les modifications du DataSet auserveur. Il est nécessaire que la méthode update de l'adaptateur de données maître (dans BDP.NET, l'événement AutoUpdate)soit appelée avant la méthode update de l'adaptateur de données détail. Si la ligne maître n'a pas été insérée, l'insertion delignes détail échouera. Si la ligne maître est supprimée avant la ligne détail, il se peut que le serveur retourne une erreur.

La propriété CascadingDeletes a été ajoutée au contrôle DBWebDataSource. La propriété CascadingDeletes indique la façondont le serveur supprime les lignes dans les applications maître-détail. La propriété CascadingDeletes fournit les trois optionssuivantes :

• NoMasterDelete (par défaut)

• ServerCascadeDelete

• ServerNoForeignKey

Remarque: Quand les contrôles DB Web sont connectés à un DataTable représentant une table détail d'une relation, les lignes du contrôle sont automatiquement limitées aux lignes contrôlées par la ligne parent en cours de la table maître.

NoMasterDelete

Cette option ne permet pas la suppression d'une ligne maître contenant des lignes détail. Cette option doit être utilisée quand leserveur implémente une contrainte étrangère entre maître et détail mais ne prend pas en charge les suppressions en cascade.Vous devez :

1. Supprimer des lignes détail.

2. Appliquer les modifications avec un événement apply (par exemple, l'événement BdpDataAdapter. AutoUpdate).

3. Supprimer la ligne maître.

4. Appeler l'événement apply (par exemple, l'événement BdpDataAdapter. AutoUpdate).

Cette option est la valeur par défaut de la propriété CascadingDeletes.

ServerCascadeDelete

Cette option permet la suppression de la ligne maître. Elle doit être indiquée quand le serveur est configuré pour prendre encharge automatiquement les suppressions en cascade. Lors de la suppression d'une ligne maître, les lignes détail disparaissentautomatiquement de la vue. Avant d'appliquer la modification, vous pouvez annuler la suppression de la ligne parent pourrestaurer toutes les lignes détail dans la vue. Si le serveur n'est pas configuré pour prendre en charge des suppressions encascade, une erreur peut se produire chaque fois que vous tentez de lui envoyer des modifications.

1.6 Développement d'applications Web RAD Studio pour .NET Utilisation de contrôles DB Web dans les

87

1

Page 94: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ServerNoForeignKey

Cette option supprime automatiquement toutes les lignes détail lors de la suppression d'une ligne maître. Cette option doit êtreindiquée quand il n'existe pas de contrainte de clé étrangère entre les tables maître-détail sur le serveur. Elle présente lesmêmes effets que l'option ServerCascadeDelete : lors de la suppression d'une ligne maître, les lignes détail disparaissentautomatiquement de la vue. Avant d'appliquer la modification, il est possible d'annuler la suppression de la ligne maître pourréafficher les lignes détail. Si vous indiquez cette option alors que des contraintes de clé étrangère existent entre les tablesmaître et détail, le serveur générera une erreur en cas de tentative de suppression de la table maître.

Mises à jour en cascade

Une application maître-détail utilise généralement l'événement OnApplyChanges pour envoyer les modifications du DataSet auserveur. Il est nécessaire que la méthode update de l'adaptateur de données maître (dans BDP.NET, l'événement AutoUpdate)soit appelée avant la méthode update de l'adaptateur de données détail. Si la ligne maître n'a pas été insérée, l'insertion delignes détail échouera. Si la ligne maître est supprimée avant la ligne détail, il se peut que le serveur retourne une erreur.

La propriété CascadingUpdates a été ajoutée au contrôle DBWebDataSource. Cette propriété indique la façon dont le serveurmet à jour les valeurs de clé étrangère dans les applications maître-détail. La propriété CascadingUpdates fournit les troisoptions suivantes :

• NoMasterUpdate (par défaut)

• ServerCascadeUpdate

• ServerNoForeignKey

Remarque: Quand les contrôles DB Web sont connectés à un DataTable représentant une table détail d'une relation, les lignes du contrôle sont automatiquement limitées aux lignes contrôlées par la ligne parent en cours de la table maître.

NoMasterUpdate

Cette option n'autorise pas les modifications de la valeur de la clé étrangère d'une ligne maître si elle possède des lignes détailassociées. Cette option est la valeur par défaut de la propriété CascadingUpdates.

ServerCascadeUpdate

Cette option permet la modification de la valeur de clé étrangère de la ligne maître. Vous devez utiliser cette option quand leserveur gère automatiquement les mises à jour en cascade. Dès qu'elle est modifiée dans une ligne maître, la valeur de cléétrangère est modifiée automatiquement dans les lignes détail. Avant d'appliquer la modification, vous pouvez l'annuler dans laligne maître pour restaurer les clés détail dans leur état antérieur. Si le serveur n'est pas configuré pour prendre en charge desmises à jour en cascade, une erreur peut se produire chaque fois que vous tentez de lui envoyer des modifications.

ServerNoForeignKey

Cette option autorise également la modification de la valeur de clé étrangère de la ligne parent mais elle doit être employéequand il n'existe pas de clé étrangère entre les tables maître et détail sur le serveur.

Voir aussi

Utilisation des vues de données ( see page 100)

Construction d'applications avec des contrôles DBWeb ( see page 195)

Présentation de l'API de navigation des RAD Studio pour .NET 1.6 Développement d'applications Web

88

1

Page 95: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.6.4 Présentation de l'API de navigation des contrôles DB Web

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Bien qu'il soit possible d'utiliser le contrôle standard DBWebNavigator pour la plupart des applications, il est possible que vousayez besoin d'exercer un contrôle plus étroit sur la navigation dans votre application. Les contrôles DB Web fournissentmaintenant une API vous permettant d'optimiser votre navigation. Par exemple, grâce à cette API, vous pouvez créer un boutonqui réalise directement la navigation, au lieu d'utiliser le contrôle standard DBWebNavigator. Bien qu'il soit possible de masquerles boutons sur le DBWebNavigator, il est préférable de placer des contrôles à différents endroits sur la fiche. AvecDBWebNavigator, par exemple, si vous masquez tous les boutons à l'exception de Précédent et Suivant, ils apparaissent encorecôte à côte. Pour placer les boutons sur des côtés opposés de la fiche, utilisez les méthodes de l'API de navigation ou lecontrôle DBWebNavigationExtender. Tous deux vous permettent de changer des boutons de contrôles Web standard encontrôles de navigation.

Pour offrir cette fonctionnalité, le DBWebDataSource implémente de nouvelles méthodes IDBDataSource, effectuant chacuneune tâche de navigation spécifique. Vous incluez ces méthodes dans l'événement Form_Load. Vous n'êtes pas obligé d'inclureles événements clic.

Les méthodes proposées sont les suivantes :

• RegisterNextControl

• RegisterPreviousControl

• RegisterFirstControl

• RegisterLastControl

• RegisterInsertControl

• RegisterDeleteControl

• RegisterUpdateControl

• RegisterCancelControl

• RegisterUndoControl

• RegisterUndoAllControl

• RegisterApplyControl

• RegisterRefreshControl

• RegisterGoToControl

Voir aussi

Contrôles DBWeb CodeGear ( see page 87)

Conception d'une application avec des contrôles DBWeb ( see page 195)

1.6.5 Présentation de l'expert des contrôles DB Web

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez

1.6 Développement d'applications Web RAD Studio pour .NET Présentation de l'expert des contrôles DB

89

1

Page 96: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

utiliser à la place les contrôles Web standard.

Les contrôles DB Web CodeGear sont des composants Web orientés données. Ces contrôles DB Web vous permettentd'encapsuler des fonctionnalités orientées données dans des contrôles web standard. Un avantage de cette approche résidedans le fait que la fonction de liaison des données est remplie par le contrôle lui-même, ce qui élimine le besoin d'ajouter unappel à la méthode DataBind.

Les concepts de base impliqués dans la création des contrôles DB Web sont les suivants :

• Le cycle de vie de l'exécution des contrôles ASP.NET

• Les concepts des liaisons de données

• Redéfinition des méthodes ASP.NET

• Implémentation d'interfaces DB Web

• Les principales modifications du code

Le cycle de vie de l'exécution des contrôles ASP.NET (CEL)

Chaque fois qu'une page de fiches web ASP.NET est affichée, ASP.NET effectue ce que Microsoft appelle le CEL (ControlExecution Lyfecycle). Cette opération se compose d'un certain nombre d'étapes, représentées par les méthodes :

1. Initialize

2. Load view state

3. Process postback data

4. Load

5. Send postback change notifications

6. Handle postback events

7. Prerender

8. Save state

9. Render

10. Dispose

11. Unload

Vous pouvez ajouter une logique sur certains ou tous ces événements en ajoutant du code aux méthodes données, comme la méthode Page_Load ou OnInit. Le plus souvent, toutefois, vous devrez redéfinir la méthode Render.

Liaison de données

Dans ASP.NET, vous pouvez lier plusieurs sources de données telles que des bases de données, des fichiers texte, des fichiersXML, des tableaux et des collections. Dans RAD Studio, les contrôles fournissent une interface simple basée sur des propriétéspour les sources de données. Dans l'inspecteur d'objets, vous pouvez lier un contrôle sélectionné à une source de donnéesidentifiée pour votre projet au moyen de contrôles BDP.NET, de contrôles client SQL ou d'autres contrôles de données ou defichiers. Chaque type de contrôle de données possède différents ensembles de conditions de liaison. Par exemple, n'importequel contrôle de collection, comme le contrôle boîte liste, grille de données ou vue liste, doit être lié à une source de données quiimplémente l'interface ICollection. D'autres contrôles, comme les boutons et les zones de saisie, n'ont pas cette exigence.

Lorsque vous programmez avec des contrôles web, vous devez ajouter le code pour effectuer la liaison de données. Parexemple, si vous créez une instance d'une grille de données, la commande que vous ajouterez ressemblera à ceci :

dataGrid1.DataBind();

Lorsque vous utilisez les contrôles DB Web, vous n'avez plus à ajouter ce code. Les contrôles DB Web gèrent l'opération deliaison de données à votre place. Le composant DBWebDataSource sert de pont entre votre composant source de données et lecontrôle DB Web spécifique que vous souhaitez utiliser. Le DBWebDataSource crée et gère la liaison de données entre lasource de données et le contrôle. Bien qu'il soit possible d'ajouter le code pour instancier un contrôle DB Web et pour effectuer

Présentation de l'expert des contrôles DB RAD Studio pour .NET 1.6 Développement d'applications Web

90

1

Page 97: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

la liaison de données, il n'est pas nécessaire de le faire. Vous pouvez placer vos composants sur une fiche web et sélectionnerles liaisons à partir des zones de listes déroulantes des propriétés dans l'inspecteur d'objets.

Remarque: Lors de la création d'un nouveau contrôle DB Web ou de l'extension d'un contrôle existant, vous devez ajouter ducode pour effectuer la liaison de certaines propriétés.

Redéfinition des méthodes ASP.NET

La principale méthode que vous devrez redéfinir est la méthode Render (ou la méthode RenderContents). La méthode Renderest responsable de l'affichage visible de vos contrôles sur la page web. Lorsque vous définissez la méthode Render puis latransmettez à une instance de la classe HtmlTextWriter, vous indiquez que le codage de la méthode doit être écrit dans la pageASP.NET en HTML. La méthode Write de la classe HtmlTextWriter écrit une chaîne séquentielle de caractères HTML sur unepage Web Forms.

L'exemple suivant montre comment le contrôle est déclaré dans le fichier construit par l'expert Contrôle DB Web. Voiciseulement une petite partie du code qui vous est fourni.

/// TWebControl1 hérite de la classe WebControl de System.Web.UI.WebControls. TWebControl1 = class(System.Web.UI.WebControls.WebControl)

Lors de la création de vos propres contrôles ou de l'extension de contrôles existants, vous devez redéfinir la méthode Renderpour afficher votre contrôle. La méthode Render est responsable de l'envoi des sorties vers une instance d'une classeHtmlTextWriter. HtmlTextWriter envoie une séquence de caractères HTML vers la page Web Forms. Les caractères HTML sontla représentation en HTML de votre contrôle. Par exemple, un contrôle grille web est représenté sur une page de fiches websous la forme d'un tableau HTML. Chaque contrôle possède sa propre représentation HTML, mais lorsque vous étendez uncontrôle, vous devez modifier la manière dont le HTML est émis pour représenter précisément votre nouveau contrôle.

/// Les lignes suivantes déclarent la méthode Render. /// Output représente une instance de la classe HtmlTextWriter./// HtmlTextWriter est la classe qui écrit des caractères HTML sur/// la page Web Forms ASP.NET. strict protected procedure Render(Output: HtmlTextWriter); override; implementation {$REGION 'Control.Render override'} /// La procédure suivante représente la redéfinition de la méthode Render./// Vous pouvez inclure une logique supplémentaire dans la procédure pour modifier/// le comportement du contrôle. Cette méthode, telle qu'elle est écrite, ne fait /// rien mais écrit une séquence de caractères HTML /// définissant TWebControl1. procedure TWebControl1.Render(Output: HtmlTextWriter);begin Output.Write(Text);end;

Vous devez implémenter le code précédent même si vous essayez d'étendre les fonctionnalités d'un contrôle web standard.Pour étendre l'un des contrôles DB Web, vous devez apporter d'autres modifications à ce code.

Implémentation d'interfaces DB Web

Lorsque vous exécutez l'expert Contrôle DB Web, celui-ci crée un fichier de code contenant le code de base nécessaire àl'extension d'un contrôle DB Web. Ce fichier est similaire au fichier que vous devez créer si vous essayez d'étendre un contrôleWeb standard. La différence principale réside dans le fait que l'expert Contrôle DB Web ajoute des implémentationsd'interfaces DB Web spécifiques, qui fournissent un accès automatique à une source de données, des tables, des colonnes etleurs propriétés respectives. Comme les contrôles DB Web gèrent automatiquement une grande partie de l'écriture et des

1.6 Développement d'applications Web RAD Studio pour .NET Présentation de l'expert des contrôles DB

91

1

Page 98: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

liaisons de données, vous devez implémenter plusieurs interfaces spécifiques pour ajouter cette fonctionnalité à votre contrôle.

Les principales modifications du code

Lorsque vous créez une bibliothèque de contrôles DB Web, l'expert Contrôle DB Web crée un modèle de fichier. Ce fichiercontient les principaux éléments que vous devez inclure dans votre projet pour créer ou étendre un contrôle. Vous devez ajouterou modifier les éléments suivants :

• Modifiez l'attribut ToolboxBitmap pour spécifier votre propre icône pour la palette d'outils, si nécessaire.

• Modifiez la déclaration du contrôle pour spécifier le contrôle dont vous souhaitez hériter.

• Déclarez la méthode Render correcte.

• Implémentez l'interface IDBWebDataLink.

• Implémentez les interfaces IDBWebColumnLink et IDBWebLookupColumnLink, si nécessaire.

• Modifiez ou étendez la méthode Render.

• Modifiez l'enregistrement du champ masqué, si nécessaire.

• Définissez la liaison de données sur des propriétés spécifiques, si nécessaire.

Modification de l'attribut ToolboxBitmap

Si vous disposez d'une icône bitmap utilisable dans la palette d'outils, spécifiez son chemin dans l'attribut ToolboxBitmap dufichier de la bibliothèque de contrôles DB Web. Le code est semblable à celui-ci :

[ToolboxBitmap(typeof(WebControl1)]['WebControl1.bmp')]

Assurez-vous que le fichier bitmap est inclus dans votre projet.

Modification de la déclaration du contrôle

Vous pouvez spécifier l'ancêtre plus précisément. Par exemple, si votre contrôle est une version étendue d'un contrôleDBWebGrid, le code ressemblera à ceci :

MyDataGrid = class(Borland.Data.Web.DBWebGrid, IPostBackDataHandler, IDBWebDataLink)

Déclaration de la méthode Render correcte

Votre contrôle peut hériter de l'espace de nommage Control ou de l'espace de nommage WebControls. WebControlsdérive en fait de l'espace de nommage Control.

La principale différence pour vous réside dans le fait que WebControls définit tous les contrôles web standard, de sorte que sivous planifiez d'étendre les fonctionnalités d'un contrôle web tel qu'une zone de saisie ou une grille de données, votre contrôledevra hériter de WebControls.

En héritant de WebControls, vous pouvez utiliser toutes les propriétés d'apparence de votre contrôle de base. Généralement,si vous voulez créer un contrôle qui possède une interface utilisateur, héritez de System.Web.UI.WebControls. Dans lefichier de la bibliothèque de contrôles DB Web, vous redéfinirez la méthode RenderContents.

Si votre contrôle hérite de Control, vous devez fournir la définition de l'interface utilisateur lorsque vous redéfinissez laméthode Render. Généralement, si vous voulez créer un contrôle ne possédant pas d'interface utilisateur, vous héritez deSystem.Web.UI.Control. Dans le fichier de la bibliothèque de contrôles DB Web, vous redéfinirez la méthodeRender.

Implémentation de l'interface IDBWebDataLink

Cette interface permet d'accéder à une source de données. Vous devez implémenter cette interface pour tous les contrôles DB

Présentation de l'expert des contrôles DB RAD Studio pour .NET 1.6 Développement d'applications Web

92

1

Page 99: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Web que vous voulez étendre. L'implémentation est traitée dans le fichier de la bibliothèque de contrôles DB Web.

Modification ou extension de la méthode Render

Dans la méthode Render ou RenderContents, en fonction de l'espace de nommage dont vous héritez, vous pouvez redéfinir lespropriétés de la classe de base. Dans le fichier de la bibliothèque de contrôles DB Web, le code suivant estautomatiquement inclus :

procedure TWebControl1.Render(Output: HtmlTextWriter); begin Output.Write(Text); end;

Cette méthode transmet la définition de votre contrôle à une instance de HtmlTextWriter, appelée Output dans ce cas. Lapropriété Text contient le texte HTML qui doit être restitué. Si vous voulez coder directement dans la méthode, vous pouvezajouter du code, comme suit :

procedure TWebControl1.Render(Output: HtmlTextWriter); begin Output.WriteFullBeginTag("html"); Output.WriteLine(); Output.WriteFullBeginTag("body"); Output.WriteLine(); Output.WriteEndTag("body"); Output.WriteLine(); Output.WriteEndTag("html"); Output.WriteLine(); end;

Cela donne une page web ASP.NET avec le code HTML suivant :

<html> <body> </body></html>

L'utilisation de la propriété Text facilite toutefois l'utilisation de ce code. Après avoir défini votre contrôle et ses propriétés, avecdifférentes balises HTML, vous pouvez transmettre toute la structure à la propriété Text. A partir de ce point, vous devezuniquement vous référer à la propriété Text pour agir sur le contrôle. Vous définissez les propriétés de vos contrôles et lestransmettez au HtmlTextWriter en créant une propriété Text qui contient la définition du contrôle. Il est intéressant de regarder lecode source pour certains contrôles DB Web existants. Par exemple, le code suivant affiche la définition de la propriété Textpour le contrôle DBWebNavigator.

protected string Text{ obtention { // Créer une nouvelle instance de StringWriter. StringWriter sw = new StringWriter(); // Créer une nouvelle instance de HtmlTextWriter. HtmlTextWriter tw = new HtmlTextWriter(sw); // Appeler la procédure DataBind. DataBind(); // Appeler la procédure AddButtons. AddButtons(); // Appeler la procédure SetButtonsWidth. SetButtonsWidth();

1.6 Développement d'applications Web RAD Studio pour .NET Présentation de l'expert des contrôles DB

93

1

Page 100: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

// Ajouter un style à un volet. ClassUtils.AddStyleToWebControl(FPanel, this.Style); // Restituer la balise de démarrage HTML pour un contrôle de volet. FPanel.RenderBeginTag(tw); // Appeler la méthode HtmlTextWriter.Write et transmettre les balises // table et tablerow à la page Web Forms. tw.Write("<table><tr>"); // Si le ButtonType est initialisé à ButtonIcons, créer et restituer itérativement les boutons// sur la page Web Forms. if( ButtonType == NavigatorButtonType.ButtonIcons ) { for( int i = 0; i < IconNavButtons.Count; i++ ) { // Ecrire la première balise de cellule du tableau. tw.Write("<td>"); // Instancier un bouton image. ImageButton b = (IconNavButtons[i] as ImageButton); // Restituer le bouton sur la page web b.RenderControl(tw); // Ecrire la balise de fermeture des cellules du tableau. tw.Write("</td>"); } } else // Si le ButtonType est différent de ButtonIcons, créer et // restituer itérativement les boutons de navigation par défaut sur la page Web Forms. { for( int i = 0; i < NavButtons.Count; i++ ) { // Ecrire la première balise de cellule du tableau. tw.Write("<td>"); // Instancier un bouton. Button b = (NavButtons[i] as Button); // Restituer le bouton sur la page web b.RenderControl(tw); // Ecrire la balise de fermeture des cellules du tableau. tw.Write("</td>"); } } // Ecrire les balises de fermeture de ligne et de tableau. tw.Write("</tr></table>"); // Restituer la balise de fin du volet. FPanel.RenderEndTag(tw); return sw.ToString(); }}

Présentation de l'expert des contrôles DB RAD Studio pour .NET 1.6 Développement d'applications Web

94

1

Page 101: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Modification de l'enregistrement du champ masqué

Le fichier de la bibliothèque de contrôles DB Web inclut un appel pour enregistrer un champ masqué identifiant la clépour un contrôle en lecture-écriture. Si vous créez un contrôle en lecture seule, vous pouvez supprimer ou commenter cet appel.L'appel est illustré dans l'exemple suivant :

Page.RegisterHiddenField(DBWebDataSource.IdentPrefix + DBWebConst.Splitter + IDataLink.TableName, self.ID);

Définition de la liaison de données sur des propriétés spécifiques

Si vous avez besoin d'autres propriétés de liaison de données, différentes de la propriété Text, vous pouvez ajouter ce code deliaison de données à l'emplacement de la propriété Text liée. Vous trouverez généralement un appel à DataBind dans laméthode PreRender. La procédure DataBind elle-même est similaire à l'exemple suivant, tiré du code source des contrôlesDBWebLabeledTextBox. Vous pouvez voir dans le code suivant qu'un certain nombre de propriétés sont définies après avoirvérifié que FColumnLink (de l'interface IDBWebDataColumnLink) est lié à une source de données.

public override void DataBind(){ try { FTextBox.ReadOnly = FReadOnly; FTextBox.ID = this.ID; base.DataBind(); ClassUtils.SetBehaviorProperties(FPanel, this); ClassUtils.SetOuterAppearanceProperties(FPanel, this); ClassUtils.SetSizeProperties(FPanel, this); if( !ClassUtils.IsEmpty(FLabel.Text) ) { ClassUtils.SetInnerAppearanceProperties(FLabel, this); SetProportionalSize(); SetLabelFont(); FTextBox.Text = null; } // S'il existe une source de données. if( IColumnLink.DBDataSource != null ) { // Et s'il existe des données liées. if( FColumnLink.IsDataBound ) { // Définir alors les propriétés de comportement. ClassUtils.SetBehaviorProperties(FTextBox, this); // Définir les propriétés d'apparence. ClassUtils.SetAppearanceProperties(FTextBox, this); // Définir les propriétés de taille. ClassUtils.SetSizeProperties(FTextBox, this); object o = IColumnLink.DBDataSource.GetColumnValue(Page, IColumnLink.TableName, IColumnLink.ColumnName); // Si la page et les noms du tableau et des colonnes ne sont pas null, // cela signifie qu'il existe déjà des données liées. // Placer la représentation sous forme de chaîne des noms de page, de table et// de colonne dans la zone de saisie. if( o != null ) FTextBox.Text = Convert.ToString(o);

1.6 Développement d'applications Web RAD Studio pour .NET Présentation de l'expert des contrôles DB

95

1

Page 102: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

else // Sinon, effacer la zone de saisie et la lier avec // ses propriétés à la colonne spécifiée. FTextBox.Text = ""; FTextBox.DataBind(); }}

Voir aussi

Présentation des contrôles CodeGear DB Web ( see page 87)

Utilisation des interfaces WebDataLink ( see page 102)

Utilisation de l'expert Contrôle DB Web ( see page 208)

1.6.6 Utilisation de fichiers XML avec des contrôles DB Web

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Le composant DBWebDataSource vous permet de créer et d'utiliser des fichiers XML et XSD en tant que source de donnéespour une application ASP.NET. En général, vous utilisez seulement ces types de fichiers avec les contrôles DBWeb pourprototyper votre application. En utilisant les fichiers XML comme source de données, vous pouvez éliminer des ressources debase de données potentiellement coûteuses pendant la phase de conception et de développement de votre projet.

Cette rubrique traite les points suivants :

• Les fichiers XML comme sources de données.

• Stratégie de charge de travail suggérée.

• Problèmes d'authentification et de mise en mémoire cache.

Les fichiers XML comme sources de données

XML est devenu une autre source de données standard pour de nombreuses applications, mais en particulier pour lesapplications ASP.NET. Lors de l'utilisation de données ne nécessitant pas de sécurité renforcée et pouvant donc être envoyéesvia HTTP sous forme textuelle, les fichiers XML offrent une solution simple. Comme ces fichiers sont des fichiers texte, ils sontfaciles à lire. Comme les balises XML décrivent les données, vous pouvez comprendre et traiter les structures de données avecpeu de difficultés.

Malgré leurs avantages évidents sur des structures de données plus complexes, les fichiers XML possèdent certainsinconvénients. D'une part, ils ne sont pas sécurisés, et il n'est donc pas recommandé de transmettre sur Internet des donnéessensibles, comme des numéros de carte de crédit ou des numéros d'identification personnelle (PIN), par le biais de fichiers XML.Un autre inconvénient réside dans l'absence de contrôle de simultanéité d'accès sur les enregistrements XML, à l'inverse desenregistrements de bases de données

Néanmoins, la nature auto-descriptrice et le format léger des données des fichiers XML font qu'il est naturel de choisir cesfichiers comme sources de données pour des applications ASP.NET. Le contrôle DBWebDataSource, en particulier, a étéconstruit pour gérer les fichiers XML aussi bien que les autres types de sources de données. Il n'y a pas d'exigence particulièrepour l'utilisation de fichiers XML, pas de pilote ou de couche de communication spécifique en dehors de ceux fournis avec RADStudio. Vous trouverez donc qu'il est facile de travailler avec des fichiers XML comme sources de données.

Stratégie de charge de travail suggérée

Vous utilisez le contrôle DBWebDataSource pour créer le fichier XML pour votre application et pour connecter le fichier XML à

Utilisation de fichiers XML avec des RAD Studio pour .NET 1.6 Développement d'applications Web

96

1

Page 103: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

un objet DataSet. La stratégie de charge de travail de base est la suivante :

• Construisez une application ASP.NET, avec une connexion à votre base de données cible. Utilisez les contrôles DBWeb, notamment un DBWebDataSource, et spécifiez un fichier XML inexistant. Lorsque vous exécutez l'application, votre ensemble de données reçoit l'ensemble des résultats de la base de données cible et le DBWebDataSource remplit ensuite le fichier XML avec les données balisées représentant l'ensemble de données.

• A ce stade, vous pouvez éliminer l'adaptateur de données et la connexion aux données, en conservant uniquement un ensemble de données, le DBWebDataSource et la référence au fichier XML. Vos contrôles DBWeb extrairont des données du fichier XML et de l'ensemble de données au lieu de les extraire de la base de données. Pour plus d'informations, suivez les liens menant aux procédures spécifiques sur la construction et l'utilisation des fichiers XML avec des contrôles DBWeb.

Problèmes d'authentification et de mise en mémoire cache

Les contrôles DB Web prennent en charge la lecture automatique d'un fichier XML par le composant DBWebDataSource aumoment de la conception aussi bien qu'au moment de l'exécution. Pour prendre en charge les fichiers XML, le composantDBWebDataSource inclut les propriétés de mise en mémoire cache. Si vous utilisez la mise en mémoire cache XML, lesdonnées du fichier XML sont automatiquement lues dans l'ensemble de données chaque fois qu'une source de données estchargée.

Si vous n'implémentez pas d'authentification utilisateur dans votre application, vous utiliserez probablement cette fonctionnalitéuniquement pour le prototypage. Sinon, sans authentification utilisateur, les utilisateurs peuvent être confrontés à des erreurs depermissions lors de tentatives d'accès simultanés à un même fichier XML. Lorsque plusieurs clients utilisent l'application, lefichier XML est constamment réécrit par différents utilisateurs. La manière d'éviter cela consiste à écrire une logique dans votreapplication serveur pour vérifier les mises à jour des lignes et avertir les différents clients en cas de conflit. Cela est similaire àce que fait un système de base de données lorsqu'il applique un verrouillage au niveau des tables ou des lignes. Lors del'utilisation d'un fichier texte, comme un fichier XML, ce niveau de contrôle est plus difficile à implémenter.

Toutefois, si vous implémentez une authentification utilisateur, vous pouvez créer une application réelle en définissant lapropriété UseUniqueFileName. Cette propriété spécifie que le contrôle DBWebDataSource créera uniquement des fichiers XMLnommés pour chaque client qui accède au fichier XML spécifié dans la propriété XMLFileName du DBWebDataSource. Celapermet d'éviter les collisions de données dans une application multi-utilisateur. L'inconvénient de cette approche réside dans lefait que chaque fichier XML contiendra différentes données et que votre application serveur aura besoin d'une logique intégréepour fusionner les données uniques à partir de chaque fichier XML client.

Les applications en lecture-écriture utilisant XMLFileName requièrent que tous les clients Web disposent d'un accès en écrituresur tous les fichiers XML sur lesquels ils écrivent. Si le client Web ne dispose pas d'un accès en écriture, le client aura uneerreur de permissions lors de toute tentative de mise à jour du fichier XML. Vous devez accorder un accès en écriture à tous lesclients qui utiliseront l'application.

Voir aussi

Présentation des contrôles CodeGear DB Web ( see page 87)

Création d'un fichier XML DB Web ( see page 197)

Construction d'une application de porte-documents avec des contrôles DB Web ( see page 194)

1.6.7 Utilisation des vues de données

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Avec les composants DataViews, vous pouvez définir des filtres sur un DataTable en utilisant la propriété RowFilter ou placerles données dans un ordre particulier. Le composant DataView se trouve sous la zone Composants de données de la paletted'outils. Cette rubrique traite des sujets suivants :

1.6 Développement d'applications Web RAD Studio pour .NET Utilisation des vues de données

97

1

Page 104: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Propriétés d'exécution

• Relations maître-détail

• ClearSessionChanges (méthode)

• Limitations des vues de données

Propriétés d'exécution

Au moment de la conception, lorsqu'un contrôle DBWeb pointe sur un DataView, le contrôle est automatiquement mis à jour dèsqu'une modification est apportée à n'importe quelle propriété DataView contrôlant les lignes à afficher. Pour modifier lespropriétés DataView à l'exécution, assurez-vous que les modifications sont en place avant la restitution d'un des contrôles DBWeb.

Par exemple, si vous utilisez une boîte liste pour définir le filtre, vous devez également :

• Affecter la valeur True à la propriété AutoPostback de la zone de liste.

• Ajouter du code dans l'événement Page_Load pour gérer les affectations de RowFilter.

• Ajouter du code dans l'événement Page_Load pour appeler la méthode ClearSessionChanges après la modification de RowFilter.

Supposons que vous ayez deux tables sur une fiche. Vous liez une boîte liste ASP.NET à une table contenant des valeurs de référence. Ces valeurs servent de filtre à la deuxième table, dont les valeurs sont affichées dans un DBWebGrid. Définissez la propriété AutoPostback dans la zone de liste sur la valeur True, gérez le paramètre RowFilter dans Page_Load et appelez ClearSessionChanges après la modification de RowFilter.

Conseil: Si vous définissez la propriété AutoRefresh sur la valeur False (la valeur par défaut), vous pourrez utiliser des données en cache. Examinez la démo WorldTravel dans \Demos\DBWeb pour voir un exemple de la façon dont cela est géré.

Relations maître-détail

Vous pouvez déclarer un DataView en tant que table maître d'une relation maître-détail en ajoutant un filtre de lignes. Configurezune relation maître-détail avec plusieurs DataTables dans un DataSet unique, puis connectez le DataView au DataTable maître.Lorsque le DBWebDataSource se connecte au DataView, les contrôles DB Web vous permettront de sélectionner la tableparent, qui est le DataView ou la table détail.

ClearSessionChanges (méthode)

La méthode ClearSessionChanges notifie le DBWebDataSource que le DataSet a été modifié et que les informations dedonnées modifiées, de ligne et de colonne existantes ne sont plus valides. Toutes les modifications en suspens sont retirées. Sivous tentez d'appeler cette méthode à partir d'un événement clic du bouton DBWebNavigator, le bouton DBWebNavigator nefonctionnera pas.

Limitations des vues de données

Il existe des limitations avec le composant DataView :

• Les lignes insérées dans un DataView se comportent différemment des lignes insérées dans un DataTable.

• Un DataView ne permet pas plusieurs insertions d'enregistrements null. Cela signifie que vous devez ajouter des données à une ligne insérée avant d'ajouter une nouvelle ligne insérée.

• Si une ligne insérée est supprimée, cette ligne est retirée du DataView et vous ne pouvez pas utiliser Annuler pour la rappeler.

• Si une ligne insérée contient une valeur non null unique et que cette valeur est définie à null, la ligne peut être supprimée dans certains cas et ne peut pas être rappelée.

• Les contrôles DBWeb n'offrent pas une prise en charge totale de la propriété DataViewSort. Si un champ de tri est rencontré, les valeurs des champs contenus dans la propriété Sort ne peuvent pas être modifiées, et la touche d'insertion est désactivée sur le DBWebNavigator.

Utilisation des vues de données RAD Studio pour .NET 1.6 Développement d'applications Web

98

1

Page 105: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Fournisseurs de données pour .NET ( see page 27)

Conception d'une application ASP .NET ( see page 181)

1.6.8 Déploiement d'applications ASP.NET

Cette rubrique contient des informations sur les éléments suivants :

• Exigences des serveurs Web

• Recommandations sur le pré-déploiement

• Le gestionnaire du déploiement ASP.NET de RAD Studio

Pour des informations supplémentaires sur le déploiement, voir le fichier deploy.htm, situé par défaut à l'adresse C:\Program Files\CodeGear\RAD Studio\5.0.

Exigences des serveurs Web

Avant de déployer votre application sur un serveur Web, prenez en compte les exigences suivantes des serveurs web :

• Internet Information Services (IIS) 6.0 doit être installé et opérationnel sur le serveur web.

• Le .NET Framework doit être installé sur le serveur web.

• ASP.NET doit être activé sur le serveur web.

• Le compte ASPNET sur le serveur web doit être configuré avec les permissions correctes.

Pour des informations sur l'installation d'IIS, voir la documentation qui accompagne votre système d'exploitation Windows. Pour des informations sur la réalisation d'autres tâches listées ci-dessus, voir le lien vers les exigences de la plate-forme ASP.NET à la fin de cette rubrique.

Recommandations sur le pré-déploiement

Avant de déployer votre application, vous devez désactiver le débogage et reconstruire l'application pour la rendre pluscompacte et plus efficace :

• Pour une application Delphi ASP.NET ou C#, mettez à jour le fichier web.config de l'application pour désactiver le débogage. Pour plus d'informations, voir le lien concernant l'utilisation du gestionnaire de déploiement à la fin de cette rubrique.

• Pour une application C#, choisissez Projet Options et modifiez le jeu d'options Déboguer/Release en Release et recompilez l'application.

Le gestionnaire du déploiement ASP.NET de RAD Studio

Bien qu'il soit possible d'utiliser l'outil en ligne de commande XCOPY pour copier tous les répertoires de votre projet sur unserveur web, seul un sous-ensemble de ces fichiers est vraiment nécessaire au déploiement. Par exemple, les fichiers .aspx,.config et .dll sont nécessaires, alors que les fichiers propres à Delphi, tels que les fichiers .bdsproj, .dcuil et .pas nele sont pas.

RAD Studio inclut le gestionnaire de déploiement ASP.NET pour vous aider à déployer des applications ASP.NET. Vous pouvezl'utiliser pour le déploiement sur un ordinateur distant en utilisant une connexion partagée ou FTP, ou sur votre ordinateur local.

Lorsque vous ajoutez un gestionnaire de déploiement à votre projet, un fichier XML (.bdsdeploy) est ajouté au répertoire duprojet et un onglet Déployer est ajouté à l'EDI. Vous fournissez les informations de destination et de connexion sur l'ongletDéployer et vous modifiez éventuellement la liste des fichiers proposés pour la copie, puis le gestionnaire de déploiement copieles fichiers vers la destination du déploiement.

1.6 Développement d'applications Web RAD Studio pour .NET Déploiement d'applications ASP.NET

99

1

Page 106: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Déploiement des applications .NET Framework (MSDN)

Exigences de la plate-forme ASP.NET (MSDN)

Présentation du déploiement des applications

Utilisation du gestionnaire de déploiement ASP.NET ( see page 208)

1.6.9 Utilisation des interfaces WebDataLink

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Les caractéristiques qui rendent les contrôles DB Web différents des contrôles web traditionnels résident dans le fait que lescontrôles DB Web gèrent automatiquement toutes les liaisons de données. Bien que vous deviez encore configurer les liensentre les sources de données et les contrôles au moment de la conception, toutes les liaisons à l'exécution sont gérées, sansqu'il soit nécessaire d'ajouter une commande de liaison de données dans votre code. Lors de l'extension d'un contrôle DBWeb àl'aide de l'expert Contrôle DBWeb, vous implémenterez plusieurs interfaces offrant les fonctionnalités de liaison de données.Ces interfaces sont présentées dans cette rubrique.

• IDBWebDataLink

• IDBWebColumnLink: IDBWebDataLink

• IDBWebLookupColumnLink: IDBWebColumnLink

IDBWebDataLink

Tous les contrôles DB Web implémentent cette interface. L'interface définit une source de données et une table de données,vous permettant de vous connecter et d'accéder aux données à partir de plusieurs sources de données, y compris des bases dedonnées, des fichiers texte, des tableaux et des collections. Si votre contrôle doit uniquement accéder à des données de niveautable, vous implémentez cette interface.

IDBWebColumnLink:IDBWebDataLink

Cette interface est implémentée par les contrôles de colonnes DBWeb, tels que DBWebImage,DBWebTextBox, etDBWebCalendar, entre autres. Elle définit un nom de colonne auquel un contrôle de colonne est lié. Associée à l'interfaceIDBWebDataLink, cette interface permet d'accéder à des données de tables et de colonnes standard.

IDBWebLookupColumnLink:IDBWebColumnLink

Cette interface est implémentée par les contrôles de référence DBWeb, comme DBWebListBox,DBWebRadioGroup, etDBWebDropDownList. Elle définit un TableName dans un DataSet, un ColumnName représentant une table qui contient lesdonnées à afficher dans les références, et la colonne contenant les valeurs qui, lorsqu'une valeur est sélectionnée, doivent êtreplacées dans le champ ColumnName lié au contrôle. Par défaut, le champ ColumnName est identique à DataTextField. Lescontrôles de références ne contiennent pas seulement une propriété texte, généralement l'élément affiché dans le contrôle,comme une boîte liste, mais aussi une propriété de valeur. La propriété de valeur peut être identique à la propriété de texte, ouelle peut contenir un élément de données totalement différent, comme un numéro d'identification. Par exemple, vous pouvezchoisir d'afficher des noms de produits dans une boîte liste ou une boîte de liste déroulante, mais définir les valeurs pour chaqueélément affiché avec leurs ID de produits respectifs. Lorsqu'un utilisateur sélectionne un nom de produit, l'ID du produit esttransmis à l'application, à la place du nom du produit lui-même. Un avantage de cette approche est l'élimination de la confusionde traitement entre des produits ayant des noms similaires.

Voir aussi

Contrôles DBWeb ( see page 87)

Utilisation des interfaces WebDataLink RAD Studio pour .NET 1.6 Développement d'applications Web

100

1

Page 107: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Conception d'une application avec des contrôles DB Web ( see page 195)

Conception d'une application ASP .NET ( see page 181)

1.6 Développement d'applications Web RAD Studio pour .NET Utilisation des interfaces WebDataLink

101

1

Page 108: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

1.7 Développement de services Web avec ASP.NET

Les services web constituent une entité programmable qui fournit un élément de fonctionnalité particulier, tel que la logiqued'une application. Grâce aux standards Internet, tels que XML et HTTP, les services web sont accessibles à un grand nombre desystèmes potentiellement différents. Les applications conçues avec des services Web ASP.NET peuvent être des applicationsautonomes ou des sous-composants d'applications web plus importantes, et elles peuvent proposer des composants applicationà des systèmes distribués en utilisant des messages à base de XML. RAD Studio offre plusieurs méthodes pour vous aider àconcevoir, à déployer et à utiliser des applications avec des services Web ASP.NET. Pour des informations plus générales surles services Web, reportez-vous à la documentation du SDK .NET de Microsoft.

Rubriques

Nom Description

Présentation des services Web ASP.NET ( see page 104) Les services Web sont une méthodologie d'intégration s'appuyant sur Internet qui permet à des applications de se connecter et d'échanger des informations indépendamment de la plate-forme ou du langage. Les services web sont étroitement intégrés au modèle ASP.NET utilisé pour .NET Framework. A la différence des applications natives Windows classiques, les applications de services Web ASP.NET contiennent des objets et des méthodes qui sont exposés au travers le Web en utilisant des piles de protocole de message simple. N'importe quel client peut invoquer une application de services Web via HTTP en utilisant une méthode Web (WebMethod). Comme toutes les méthodes... suite ( see page 104)

Pile de protocole de services Web ( see page 107) Pour comprendre l'infrastructure des services Web, il est nécessaire d'avoir une certaine connaissance de XML (Extensible Markup Language), de SOAP (Simple Object Access Protocol), de WSDL (Web Services Description Language) et d'UDDI (Universal Description, Discovery, and Integration). Puisque l'infrastructure existe déjà, en tant que développeur de services web XML, vous pouvez exploiter la technologie existante à l'aide de protocoles Web standard, tels que XML et HTTP. CodeGear propose un moyen simple pour créer, déployer et utiliser des services web sans vous préoccuper des traitements dorsaux ; vous pouvez ainsi vous concentrer davantage sur la conception de vos services. Cette rubrique offre... suite ( see page 107)

Gestion des services Web ASP.NET ( see page 109) Les services Web ASP.NET prennent en charge les VCL.NET Forms, les .NET Windows Forms et les ASP.NET Web Forms. Ces fiches permettent de créer des applications client qui accèdent aux applications de services Web. Utilisez l'option Ajouter une référence Web pour ajouter l'application de services Web ASP.NET voulue à l'application client. Avec le navigateur UDDI, vous pouvez rechercher des applications de services Web que vous pourriez vouloir utiliser.RAD Studio propose des outils simples pour développer et déployer des applications de services Web ASP.NET. RAD Studio vous permet également d'importer des documents WSDL décrivant des applications de services Web... suite ( see page 109)

1.7.1 Présentation des services Web ASP.NET

Les services Web sont une méthodologie d'intégration s'appuyant sur Internet qui permet à des applications de se connecter etd'échanger des informations indépendamment de la plate-forme ou du langage. Les services web sont étroitement intégrés aumodèle ASP.NET utilisé pour .NET Framework. A la différence des applications natives Windows classiques, les applications deservices Web ASP.NET contiennent des objets et des méthodes qui sont exposés au travers le Web en utilisant des piles deprotocole de message simple. N'importe quel client peut invoquer une application de services Web via HTTP en utilisant uneméthode Web (WebMethod). Comme toutes les méthodes accessibles par le biais d'une simple application Windows Form, une

Présentation des services Web ASP.NET RAD Studio pour .NET 1.7 Développement de services Web avec

102

1

Page 109: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

WebMethod offre certaines fonctionnalités définies. Toutefois, à la différence des autres types de méthodes, WebMethod estaccessible par le biais d'un navigateur web. Pour des informations plus générales sur les services Web, reportez-vous à ladocumentation du SDK .NET Framework de Microsoft.

CodeGear propose des outils pour développer et accéder à des services Web ASP.NET de différentes façons. Comme lesobjets modulaires, les services web peuvent être réutilisés sans codage supplémentaire.

Les rubriques suivantes présentent brièvement l'architecture des services Web ASP.NET, la communication des services Webet les fichiers créés avec le développement de services Web ASP.NET.

Cette rubrique présente :

• L'architecture des services Web ASP.NET

• Les prérequis des services Web

• Les scénarios des services Web

• Les fichiers des services Web ASP.NET

L'architecture des services Web ASP.NET

Les principaux composants de l'architecture des services Web ASP.NET incluent une application client, une application deservices Web ASP.NET et plusieurs fichiers comme les fichiers de code dans le langage de développement, des fichiers .asmxet des fichiers .dll compilés. Vous avez besoin d'un serveur Web pour héberger l'application de services Web ASP.NET et leclient. Vous pouvez aussi (mais ce n'est pas obligatoire) inclure un serveur de base de données dédié au stockage et à l'accèsaux données des services Web ASP.NET.

Les prérequis des services Web

Avant de commencer le développement d'une application de services Web, familiarisez-vous avec les concepts suivants :

• XML (Extensible Markup Language). XML est une description structurelle des données définie par l'utilisateur et lisible. Toute donnée, tout ensemble de données ou tout document que vous souhaitez recevoir d'un service web ou qui lui est destiné est formaté en XML.

• SOAP (Simple Object Access Protocol). SOAP est le protocole de messagerie standard qui est utilisé pour la communication entre des services Web et leurs clients. SOAP se sert de XML pour formater ses messages, et il inclut les paramètres ou les valeurs renvoyées nécessaires aux serveurs et aux clients.

• WSDL (Web Services Description Language). WSDL est le langage qui décrit un service Web. Un service Web peut être défini dans un nombre illimité de langages d'implémentation. En tant qu'utilitaire unique, chaque service Web doit publier une description de son interface qui permette aux clients d'interagir avec lui. Le document WSDL décrit au minimum les paramètres qu'un client doit obligatoirement fournir et le résultat qu'un client peut s'attendre à recevoir. La description du résultat inclut généralement le type de données renvoyé.

• UDDI (Universal Description, Discovery and Integration). UDDI est une initiative industrielle qui fournit un référentiel standard dans lequel les professionnels peuvent publier des services Web utilisables par d'autres entreprises. Le référentiel UDDI contient des liens et des descriptions de différents services web. Vous pouvez utiliser le navigateur UDDI dans l'EDI pour localiser les services Web, télécharger des documents WSDL et accéder à des informations supplémentaires sur les services Web et les entreprises qui les fournissent.

1.7 Développement de services Web avec RAD Studio pour .NET Présentation des services Web ASP.NET

103

1

Page 110: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Les scénarios des services Web

Les services web actuels sont des sources d'informations simples qu'il est possible d'incorporer aisément dans des applications,comme les cours de la bourse, les prévisions météo ou les résultats sportifs. Parallèlement à la croissance de la demanded'accès à la logique métier via Internet, les entreprises recherchent des moyens de fournir à leurs clients des applicationspermettant d'analyser et de regrouper les informations. Par exemple, une institution financière peut fournir un service web pourconsolider et mettre continuellement à jour les informations financières client, comme un portefeuille d'actions, 401(k), uncompte bancaire et des prêts à afficher dans une feuille de calcul, un site web ou un PDA (personal digital assistant). Cela éviteau client d'avoir à collecter et combiner manuellement ses propres informations. Même si une grande partie de ces informationsest actuellement disponible sur Internet, un service web en simplifiera l'accès et le regroupement, tout en garantissant une plusgrande fiabilité.

Vous pouvez utiliser des services web pour des solutions dans les domaines suivants :

• EAI (Enterprise Application Integration). Un service web peut permettre à plusieurs partenaires professionnels d'échanger des données de stock ou de commandes ou des données financières, par exemple, sans connaître spécifiquement la disposition précise de stockage des données de chaque partenaire. Par exemple, de nombreux CRM (customer relationship management) ou autres applications frontales stockent les données des clients dans un format qui n'est pas entièrement compatible avec la manière dont un système ERP (enterprise resource planning) dorsal stocke ses informations financières ou de stock. Toutefois, une entreprise de vente peut vouloir utiliser sa solution de CRM pour traiter des commandes en temps réel avec des informations de stock mises à jour à partir du système ERP. Un service Web peut apporter une solution pour gérer la transformation de requêtes CRM en stockage ERP et de réponses ERP en confirmations de CRM.

• Intégration B2B (Business-to-Business). A l'image de la solution EAI (Intégration d'application d'entreprise), une solution B2B peut tirer parti des capacités de services Web pour fournir des données en mémoire cache pour des commandes importantes. A la différence des transactions B2C (entreprise-particulier), les transactions B2B sont souvent des transactions de gros volume qu'il ne serait pas possible d'exécuter au niveau d'une transaction B2C. Par exemple, un particulier peut commander une boîte de stylos depuis un magasin de fournitures de bureau en ligne, alors qu'une entreprise peut commander mille boîtes par mois, avec plusieurs adresses de livraison. L'échelle et la complexité d'une transaction B2B nécessitent l'intervention d'un service Web pour aider à simplifier et à traiter la transaction avec rapidité et cohérence.

• Intégration B2C (Business-to-consumer). Les services Web B2C gèrent généralement des transactions basées sur le Web. Par exemple, un service web qui vous permet de rechercher des codes postaux évite aux entreprises d'avoir à créer un nouveau programme chaque fois que le service est inclus sur un site web. Certains sites de commerce peuvent utiliser des services Web pour faciliter la gestion des conversions de devises lors de commandes internationales.

• Mobiles (applications à client intelligent). Etant donné que le faible encombrement d'un client mobile requiert que l'utilisation de la mémoire soit uniquement réservée aux fonctions système les plus importantes et étant donné que les clients mobiles sont, par définition, reliés à Internet par leurs protocoles de communication sans fil, les services Web jouent un rôle essentiel dans la mise à disposition d'applications légères mais puissantes sur les périphériques mobiles. Les services Web permettent aux utilisateurs de périphériques mobiles d'effectuer différentes tâches qui nécessitent un peu plus de travail que de la saisie de données sur le périphérique et un affichage des résultats. Tout le traitement peut être effectué sur un service Web distant, en diminuant par conséquent les besoins en bande passante sur le périphérique mobile lui-même.

• Distribué et Poste à poste (P2P). Pour certain types d'applications distribuées et poste à poste, les services Web jouent un rôle important. Si vous utilisez une informatique distribuée sur un réseau non contrôlé (tel qu'Internet) plutôt que sur un réseau local ou un réseau d'entreprise, vous pouvez utiliser des services web. Les services web ne nécessitent pas de maintenance d'état et offrent ainsi des performances potentiellement meilleures, en particulier lorsqu'un comportement requête-réponse n'est pas absolument nécessaire. Pour les applications qui nécessitent un comportement requête-réponse strict et une sécurité élevée, vous pouvez envisager l'utilisation d'un modèle plus ancien et plus contrôlé, tel que COM ou .NET à distance.

Les fichiers des services Web ASP.NET

Certains fichiers sont générés automatiquement lors de la création d'applications avec des services Web ASP.NET. Ces fichierspermettent aux services Web ASP.NET de proposer leurs services via un serveur Web. Le tableau suivant énumère les fichierset leurs descriptions :

Présentation des services Web ASP.NET RAD Studio pour .NET 1.7 Développement de services Web avec

104

1

Page 111: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Fichier Description

.asmx Lorsque vous créez une application de services Web ASP.NET, un fichier texte d'extension .asmx est généréautomatiquement. La directive de services Web nécessaire est placée au début de ce fichier pour faire le lienentre l'adresse URL du service web et son implémentation. Dans le fichier .asmx, vous ajoutez la logique desservices Web aux méthodes visibles par l'application client. Le fichier .asmx agit comme URL de base pour lesclients qui appellent le service web XML. Ce fichier est compilé avec d'autres fichiers dans un assemblage pour ledéploiement.

Codesous-jacent

Quand vous créez une application de services Web ASP.NET, un fichier de code sous-jacent d'extension estgénéré automatiquement avec une extension spécifique au langage. Vous ajoutez la logique de votre serviceWeb à la méthode publique pour traiter les demandes et réponses du service Web.

FichiersDLLcompilés

Les fichiers DLL des services Web fournissent des services dynamiques sur le serveur Web.

.wsdl Ce fichier est généré lorsque vous cliquez sur l'option Ajouter une référence Web pour ajouter le service web àvotre application client. Il décrit l'interface des services Web disponibles pour le client.

.map Ce fichier permet de rechercher un service web exposé sur un serveur donné. Il contient également des liensvers d'autres ressources décrivant le service web.

Voir aussi

Pile de protocole de services Web ( see page 107)

Gestion des services Web ASP.NET ( see page 109)

Construction d'une application de services Web "Hello World" ASP.NET ( see page 219)

Accès à une application de services Web "Hello World" ASP.NET ( see page 215)

Présentation Microsoft des services Web

1.7.2 Pile de protocole de services Web

Pour comprendre l'infrastructure des services Web, il est nécessaire d'avoir une certaine connaissance de XML (ExtensibleMarkup Language), de SOAP (Simple Object Access Protocol), de WSDL (Web Services Description Language) et d'UDDI(Universal Description, Discovery, and Integration). Puisque l'infrastructure existe déjà, en tant que développeur de services webXML, vous pouvez exploiter la technologie existante à l'aide de protocoles Web standard, tels que XML et HTTP.

CodeGear propose un moyen simple pour créer, déployer et utiliser des services web sans vous préoccuper des traitementsdorsaux ; vous pouvez ainsi vous concentrer davantage sur la conception de vos services.

Cette rubrique offre l'arrière-plan conceptuel permettant de comprendre comment la pile de protocoles permet aux services Webde fonctionner :

• Comment les services web accèdent aux services et les exposent via le Web

• Comment XML transmet des informations via les standards SOAP et HTTP

• Comment un client peut identifier une offre de services web

• Comment les services web sont trouvés et utilisés

Couches de la pile de protocoles de services Web

Les services web se composent d'ensembles de protocoles et de standards Internet permettant l'échange de données entre desapplications. La pile de protocoles de services Web décrit la disposition de l'ensemble des protocoles ou des règles Internetutilisés pour concevoir, découvrir et implémenter des services web.

1.7 Développement de services Web avec RAD Studio pour .NET Pile de protocole de services Web

105

1

Page 112: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Les principaux composants ou couches d'une pile de protocoles de services Web incluent :

• Couche transport— assure la transmission des messages entre les applications

• Couche de messagerie XML— encode les messages en langage XML pour qu'ils puissent être compris par le client et le serveur

• Couche WSDL— décrit le service fourni

• Couche UDDI— centralise les services au moyen d'un registre commun

Couche de transport

La couche de transport est le premier composant de la pile. Elle est responsable de la transmission des messages XML entreles applications. Le protocole de transport le plus couramment utilisé est le protocole http. On trouve aussi les protocoles SMTPet FTP.

Messages XML

La couche de messagerie de la pile de protocoles est basée sur un modèle XML. XML est largement employé dans lesapplications de services web : il est à la base de tous les services web. XML est simplement l'un des standards permettant auxservices web d'associer différents domaines technologiques. Vous trouverez sur Internet de nombreuses ressources dedescription des messages XML. Pour plus d'informations, reportez-vous au site World Wide Web Consortium (W3C) relatif ausystème de messagerie répertorié dans la liste de liens ci-dessous.

La spécification des messages XML permet de définir un grand nombre de protocoles plus spécifiques. SOAP est l'un desstandards les plus populaires, et l'un des plus importants pour la communication des services web sur le réseau. XML permet decommuniquer sur le Web en utilisant un document XML pour les demandes et les réponses aux informations entre deuxsystèmes hétérogènes. SOAP permet à l'expéditeur et au destinataire des documents XML de prendre en charge un protocolede transfert de données commun pour des communications réseau efficaces. Vous trouverez sur Internet de nombreusesressources de description du protocole SOAP. Pour plus d'informations, reportez-vous au site W3C du protocole SOAPrépertorié dans la liste de liens ci-dessous.

Couche WSDL

Cette couche représente un moyen de spécifier une interface publique pour un service web. Elle contient des informations surles fonctions disponibles, sur les types de données pour les messages XML, des informations de liaison sur le protocole detransport utilisé et l'emplacement d'un service web donné.

Toutes les applications client qui recherchent des informations sur un service utilisent le langage WSDL ; elles peuvent ainsisavoir quelles données ce service peut recevoir, s'il renvoie ou non des résultats et le protocole de transport géré. Quand vouscréez un service Web, il doit être décrit et rendu public auprès de ses clients potentiels avant de pouvoir être utilisé. WSDLétablit un format commun de description et de publication des informations sur un service web. Généralement WSDL est utiliséavec SOAP, et la spécification WSDL contient une liaison avec SOAP.

Utilisez l'option CodeGear Ajouter une référence Web pour obtenir un document WSDL pour votre service web. Le documentWSDL, appelé aussi fichier proxy, est copié dans le client et utilisé pour appeler le serveur. Ce fichier proxy s'appelleReferences.*, où l'extension du nom du fichier reflète le type de langage. Pour plus d'informations, reportez-vous au site

Pile de protocole de services Web RAD Studio pour .NET 1.7 Développement de services Web avec

106

1

Page 113: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

WSDL W3C répertorié dans la liste de liens ci-dessous.

Couche UDDI

Cette couche offre un moyen pour publier et rechercher des services web sur le Web. Vous pouvez imaginer cette couchecomme les pages Blanches et Jaunes de votre annuaire. Les pages blanches des services web offrent des informationsgénérales sur une société donnée, par exemple son nom commercial, sa description et son adresse. Les pages Jaunesproposent la classification des données selon les services proposés, par exemple le type d'industrie et de produits.

Le protocole que vous utilisez pour publier vos services s'appelle UDDI. Le registre de métiers UDDI permet à tout le monde derechercher les données UDDI disponibles et vous permet de recenser votre société et ses services. Avec RAD Studio, vosdonnées sont automatiquement publiées dans le registre, ou dans un annuaire distribué de services métier et web.

Voir aussi

Présentation des services Web ASP.NET ( see page 104)

Gestion des services Web ASP.NET ( see page 109)

Construction d'une application de services Web "Hello World" ASP.NET ( see page 219)

Accès à une application de services Web "Hello World" ASP.NET ( see page 215)

SOAP

Messages XML

WSDL

1.7.3 Gestion des services Web ASP.NET

Les services Web ASP.NET prennent en charge les VCL.NET Forms, les .NET Windows Forms et les ASP.NET Web Forms.Ces fiches permettent de créer des applications client qui accèdent aux applications de services Web. Utilisez l'option Ajouterune référence Web pour ajouter l'application de services Web ASP.NET voulue à l'application client. Avec le navigateur UDDI,vous pouvez rechercher des applications de services Web que vous pourriez vouloir utiliser.

RAD Studio propose des outils simples pour développer et déployer des applications de services Web ASP.NET. RAD Studiovous permet également d'importer des documents WSDL décrivant des applications de services Web particulières et exposantleur fonctionnalité à l'application client. Vous pouvez utiliser l'exemple de méthode Web proposé par RAD Studio, qui vouspermet de créer et d'accéder à une application de services Web ASP.NET.

Cette rubrique comprend :

• Gestion client des services Web ASP.NET

• Gestion serveur des services Web ASP.NET

• Espaces de nommage des services Web ASP.NET

Gestion client des services Web ASP.NET

Vous pouvez créer une application de services Web qui ne sera qu'un simple fournisseur, ou une application serveur. Cetteapplication réside sur un serveur Web et est accessible à n'importe quel client qui comprend son architecture. Pour exploitervous-même une application de services Web, vous devez créer une application client. RAD Studio offre différents outils deconception d'applications client :

• Windows Forms

• Web Forms

• Références Web

1.7 Développement de services Web avec RAD Studio pour .NET Gestion des services Web ASP.NET

107

1

Page 114: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Windows Forms et Web Forms ASP.NET

Pour déterminer le meilleur type de fiche à utiliser pour votre application client (fiche Windows ou fiche Web ASP.NET), prenezen compte le type de service auquel vous souhaitez accéder. Dans la plupart des cas, le service que vous choisissez déterminele type d'application que vous devez créer.

Si vous devez fournir une application capable de traiter des contenus complexes sur une station de travail client, ou capabled'utiliser une application de services web comme base d'une application client riche sur une connexion réseau sécurisée,envisagez la construction d'une application Windows Forms. Si vous devez fournir une application client simple qui effectue desmanipulations de données simples ou répond à un besoin unique, utilisez les fiches Web ASP.NET. Les fiches Web sont desinterfaces indépendantes de la plate-forme affichées dans un navigateur Web et qui invoquent des applications de services Webvia un protocole simple comme HTTP.

Vous pouvez aussi créer une application de services Web ASP.NET sous la forme d'une application console accessible via unefenêtre de console ou par une autre application de services Web, même sans aucun client.

Ajout de référence Web

Vous pouvez ajouter une référence Web à votre application client pour accéder à des services web. Une référence Web serapporte à un document WSDL ou un schéma XML importé dans votre application client. Le document WSDL ou le schéma XMLdécrit un service web. Lorsque vous importez l'un de ces documents, RAD Studio génère toutes les définitions d'interfaces et declasses nécessaires à l'appel de ce service web. Cliquez avec le bouton droit dans le dossier WebService dans le gestionnairede projet et choisissez Ajouter une référence Web. Un navigateur UDDI apparaît. Pour ajouter le service web à votreapplication client, vous devez utiliser le navigateur et rechercher le service web dans le document WSDL.

Gestion serveur des services Web ASP.NET

L'application de services Web ASP.NET que vous construisez dans RAD Studio offre un accès par programme à la logiqued'application d'un ou plusieurs services web. Vous définissez les services que vous souhaitez exposer, la manière d'utiliser cesservices et l'infrastructure qui reçoit et traite les requêtes et les réponses.

Lorsque vous créez une nouvelle application de services Web ASP.NET, la boîte de dialogue Nouvelle application ASP.NETvous permet de spécifier le nom et l'emplacement de l'application de services Web ASP.NET, et crée automatiquement lesfichiers nécessaires au déploiement. Lorsque vous spécifiez les paramètres de l'application, RAD Studio génère le fichier .asmxqui joue le rôle d'URL de base pour les clients appelant l'application de services Web ASP.NET.

Espaces de nommage des services Web ASP.NET

Pour plus d'informations sur les espaces de nommage System.Web.Services, voir le Kit de développement Microsoft .NETFramework SDK.

Voir aussi

Présentation des services Web ASP.NET ( see page 104)

Pile de protocole de services Web ( see page 107)

Construction d'une application de services Web "Hello World" ASP.NET ( see page 219)

Accès à une application de service Web "Hello World" ASP.NET ( see page 215)

Gestion des services Web ASP.NET RAD Studio pour .NET 1.7 Développement de services Web avec

108

1

Page 115: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2 Procédures

Cette section présente les procédures relatives aux diverses zones de développement de RAD Studio.

Rubriques

Nom Description

Procédures de bases de données ( see page 112) Cette section propose des informations relatives au développement d'applications de bases de données.

Procédures d'applications interopérables ( see page 148) Cette section propose des informations relatives à la construction d'applications interopérables.

Procédures de modélisation ( see page 150) Cette section propose des informations relatives à la modélisation des applications.

Procédures VCL pour .NET ( see page 155) Cette section propose des informations relatives au développement d'applications VCL pour .NET.

Procédures ASP.NET ( see page 178) Cette section propose des informations relatives au développement d'applications ASP.NET Web Forms.

Procédures de services Web ( see page 215) Cette section propose des informations relatives au développement et à l'utilisation de services web.

2 RAD Studio pour .NET

109

2

Page 116: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.1 Procédures de bases de données Cette section propose des informations relatives au développement d'applications de bases de données.

Rubriques

Nom Description

Ajout d'une nouvelle connexion à l'explorateur de données ( see page 114) Vous pouvez ajouter de nouvelles connexions à l'explorateur de données, qui persistent tant qu'existe l'objet connexion.

Ajout d'un dialogue Erreur de conciliation BDP à votre application BDP ( see page 114)

Vous pouvez modifier vos applications BDP pour appeler le dialogue Erreur de conciliation BDP afin de gérer les exceptions de mise à jour (qui se produisent parfois lorsque deux personnes tentent simultanément de mettre à jour la même ligne de la même table de la base de données).

Exploration d'une base de données dans l'explorateur de données ( see page 116)

Une fois que vous disposez d'une connexion dynamique, vous pouvez utiliser l'explorateur de données pour explorer les objets base de données.

Connexion à AdoDbx Client ( see page 117) Vous pouvez établir une connexion de base de données à l'aide de AdoDbx Client de plusieurs façons :

Création de projets de base de données dans l'explorateur de données ( see page 118)

Vous pouvez faire glisser et déposer des données de l'explorateur de données vers des fiches Windows ou des fiches Web, et des fichiers Global.asax, ce qui permet de remplir des ensembles de données et de construire rapidement un projet de base de données. Ceci vous permet d'insérer automatiquement des composants de base de données dans votre projet et vous évite de définir une chaîne de connexion pouvant induire des erreurs en cas de saisie manuelle.

Création de mappages de tables ( see page 119) En utilisant la propriété TableMappings, vous pouvez mapper des colonnes entre une source de données et un ensemble de données en mémoire. Cela vous permet d'utiliser des noms différents, souvent plus descriptifs, pour les colonnes de votre ensemble de données. Vous pouvez également mapper une colonne d'une table de base de données avec une colonne de l'ensemble de données différente de celle sélectionnée par défaut. La propriété TableMappings vous permet également de créer un ensemble de données qui contient plus ou moins de colonnes que celui récupéré du schéma de la base de données.

Exécution SQL dans l'explorateur de données ( see page 120) Vous pouvez écrire, modifier et exécuter du code SQL dans une fenêtre SQL, disponible à partir de l'explorateur de données.

Gestion des erreurs dans le mappage de table ( see page 121) Quel que soit le type de fonction de comparaison que vous effectuez entre une source de données et une représentation des données en mémoire, des erreurs sont possibles. Les erreurs peuvent survenir lorsqu'une source de données et son ensemble de données correspondant n'ont pas les mêmes nombres de colonnes ou lorsque les types de colonnes d'une source de données ne correspondent pas aux types de colonnes de l'ensemble de données. En outre, d'autres erreurs internes peuvent survenir pour lesquelles il n'existe aucune solution de remplacement de niveau conception. Vous pouvez utiliser les propriétés MissingMappingAction et MissingSchemaAction pour répondre aux erreurs... suite ( see page 121)

Migration de données entre des bases de données ( see page 122) L'explorateur de données facilite la migration de données d'une base de données à une autre, voire entre fournisseurs. L'explorateur de données permet de copier rapidement une table d'une base de données et de la coller dans une autre base de données. La migration concerne la structure et les données des tables. La migration de données est prise en charge par la classe BdpCopyTable, disponible en tant que composant lors de la conception dans la palette d'outils. Ce composant peut être utilisé dans un programme de migration de données. Remarque: La classe BdpCopyTable ne copie pas de clés étrangères ou... suite ( see page 122)

Modification des connexions dans l'explorateur de données ( see page 123) Vous pouvez modifier les connexions de nombreuses façons à partir de l'explorateur de données.

Modification des connexions de bases de données ( see page 124) Les éléments de base d'une chaîne de connexion ont tendance à être les mêmes d'un type de base de données à un autre. Toutefois, chaque type de base de données prend en charge une syntaxe de chaîne de connexion légèrement différente. Cette rubrique aborde ces différences.

RAD Studio pour .NET 2.1 Procédures de bases de données

110

2

Page 117: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Construction d'une application de base de données résolvant plusieurs tables ( see page 130)

RAD Studio prend en charge la résolution multi-table avec BDP.NET. En particulier, les composants DataSync et DataHub sont conçus pour fournir et résoudre un ensemble de données .NET émanant de plusieurs sources de données hétérogènes. De plus, ces composants supportent l'affichage de données dynamiques lors de la conception, fournissent et résolvent des données maître-détail en générant du code SQL optimal pour la résolution de sources de données BDP. Le DataHub agit en tant que conduite entre un DataSet et un DataSync. La propriété DataPort d'un DataHub peut être réglée sur n'importe quelle implémentation IDataProvider. DataSync implémente IDataProvider et possède une... suite ( see page 130)

Passage de paramètres dans une application de base de données ( see page 132)

Les procédures suivantes décrivent une application simple qui vous permet de passer la valeur d'un paramètre à un ensemble de données au moment de l'exécution. Les paramètres vous permettent de créer des applications au moment de la conception sans connaître exactement les données que l'utilisateur saisira au moment de l'exécution. Cet exemple suppose que vous avez déjà configuré et connecté votre base de données exemple Interbase Employee. Pour l'illustration, cet exemple utilise le connecteur par défaut IBConn1, qui est défini à un emplacement standard. L'emplacement de votre base de données peut être différent.

Utilisation de la prévisualisation d'adaptateur de données ( see page 134) CodeGear RAD Studio fournit un outil qui permet à une source de données et à un ensemble de données de communiquer. Vous pouvez utiliser la prévisualisation de l'adaptateur de données pour spécifier les données à déplacer vers et depuis l'ensemble de données sous forme d'instructions SQL ou de procédures stockées appelées pour une opération de lecture ou d'écriture d'une base de données.

Utilisation de l'éditeur de texte de commande ( see page 135) Pour pouvoir créer un ensemble de données, BdpDataAdapter doit avoir au moins une instruction SQL Select définie pour la propriété CommandText. Une fois construite, cette instruction apparaît comme la propriété CommandText de l'objet BdpCommand du BdpDataAdapter. Vous pouvez entrer cette instruction Select manuellement ou, à l'aide de l'éditeur de texte de commande, construire l'instruction, ainsi que les instructions Update, Insert et Delete, en utilisant une simple opération de pointer-cliquer. Ainsi, une fois que vous êtes connecté à une source de données dynamiques, vous pouvez voir le nom des tables et colonnes de l'éditeur de texte de commande. Vous... suite ( see page 135)

Utilisation du concepteur adaptateur de données ( see page 136) L'adaptateur de données contient, au minimum, une instruction SQL Select de la propriété de commande SELECT. Vous pouvez entrer cette instruction vous-même ou, à l'aide du concepteur d'adaptateur de données, construire l'instruction Select, ainsi que les instructions Update, Insert et Delete. L'objet BdpCommandBuilder construit les instructions Update, Insert et Delete en fonction des tables et colonnes que vous avez sélectionnées. Le concepteur d'adaptateur de données utilise une connexion dynamique pour extraire les métadonnées à partir desquelles vous pouvez construire les instructions SQL permettant de manipuler les données à déplacer d'un ensemble de données vers votre base de données.

Utilisation du concepteur éditeur de connexion ( see page 136) Chaque objet connexion peut prendre en charge plusieurs connexions nommées. Ces connexions peuvent représenter des connexions vers plusieurs bases de données et types de base de données.

Utilisation des ensembles de données standard ( see page 137) L'ensemble de données standard fournit une représentation en mémoire d'une ou plusieurs tables ou vues extraites d'une source de données connectée. A cause du codage avec indirection de la structure sous-jacente des données, vous ne pouvez voir que les noms de colonnes de votre source de données pendant l'exécution. Quand vous générez un ensemble de données, cela extrait tout ce que vous avez spécifié dans votre instruction SELECT dans la boîte de dialogue Configuration de l'adaptateur de données. Vous pouvez limiter vos colonnes en changeant l'instruction SELECT et en créant un nouvel ensemble de données.

Utilisation d'ensembles de données typés ( see page 141) Les ensembles de données typés offrent certains avantages sur les ensembles de données standard. D'une part, ils sont dérivés d'une hiérarchie XML de la table de base de données cible. Le fichier XML contenant la description de l'ensemble de données permet au système de fournir des possibilités étendues d'achèvement du code non disponibles lorsqu'on utilise des ensembles de données standard. Le fait de typer fortement les méthodes, propriétés et événements de l'ensemble de données permet des vérifications de type au moment de la compilation et peut apporter une amélioration des performances dans certaines applications.

Connexion à une base de données à l'aide du framework de pilote dbExpress ( see page 143)

Cette procédure vous indique comment utiliser le framework de pilote dbExpress pour établir la connexion à une base de données et lire ses enregistrements. Dans le code exemple, les fichiers ini dbExpress contiennent toutes les informations relatives à la connexion de base de données particulière, telles que le pilote, le nom d'utilisateur, le mot de passe, etc.

2.1 Procédures de bases de données RAD Studio pour .NET

111

2

Page 118: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Construction d'une application de base de données distribuée ( see page 144) La gestion distante de données est fondamentale dans le cadre du développement d'applications de bases de données distribuées. La technologie distante .NET offre un framework souple et extensible pour les communications inter-processus. La gestion distante .NET permet d'interagir avec des objets situés dans des domaines d'applications différents, dans des processus différents exécutés sur la même machine ou sur des machines différentes d'un même réseau.A l'aide des composants RemoteServer et RemoteConnection, vous pouvez aisément migrer une application client/serveur utilisant des composants DataHub et DataSync vers une application distante d'ensemble de données multi-niveau. RemoteServer implémente IDataService et se présente en tant... suite ( see page 144)

2.1.1 Ajout d'une nouvelle connexion à l'explorateur de données

Vous pouvez ajouter de nouvelles connexions à l'explorateur de données, qui persistent tant qu'existe l'objet connexion.

Pour ajouter une nouvelle connexion

1. Choisissez Voir Explorateur de données. Cette opération affiche l'explorateur de données.

2. Sélectionnez un fournisseur dans la liste arborescente.

3. Cliquez avec le bouton droit pour afficher un menu contextuel.

4. Choisissez Ajouter une nouvelle connexion. Cette opération affiche la boîte de dialogue Ajout d'une nouvelle connexion.

5. Entrez le nom de la nouvelle connexion.

6. Cliquez sur OK.

Conseil: Si vous devez modifier les paramètres de votre nouvelle connexion, cliquez avec le bouton droit sur la nouvelle connexion et sélectionnez l'option de modification d'une connexion

. Une boîte de dialogue Editeur de connexion apparaît. Entrez vos paramètres de connexion et cliquez sur OK.

Voir aussi

Concepteurs de composants BDP.NET ( see page 22)

Exploration d'une base de données ( see page 116)

Exécution SQL dans l'explorateur de données ( see page 120)

Modification des connexions ( see page 123)

2.1.2 Ajout d'un dialogue Erreur de conciliation BDP à votre application BDP

Vous pouvez modifier vos applications BDP pour appeler le dialogue Erreur de conciliation BDP afin de gérer les exceptions demise à jour (qui se produisent parfois lorsque deux personnes tentent simultanément de mettre à jour la même ligne de la mêmetable de la base de données).

Pour ajouter un dialogue Erreur de conciliation BDP :

1. Ajoutez un composant BDPDataAdapter à votre WinForm existante.

Ajout d'un dialogue Erreur de conciliation RAD Studio pour .NET 2.1 Procédures de bases de données

112

2

Page 119: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2. Choisissez l'onglet Evénements dans la fenêtre de l'inspecteur d'objets.

3. Double-cliquez sur la section contenu de la liste déroulante vide située à côté de l'événement OnUpdateError. Cela va remplir le premier niveau de la liste déroulante. Cela va également créer le code de la définition et de l'implémentation de la méthode BdpDataAdapter.

4. Ajoutez les lignes qui sont en gras ci-dessous à l'implémentation de la méthode pour gérer l'événement (l'exemple utilise le langage C#) :

private void bdpDataAdapter1_OnUpdateError(object sender, Borland.Data.Common.BdpUpdateErrorEventArgs e) { Borland.Data.Common.ReconcileErrorForm f = new Borland.Data.Provider.ReconcileErrorForm( e ); f.ShowDialog(); }

5. Enregistrez les modifications apportées à votre WinForm.

Le dialogue Erreur de conciliation BDP apparaîtra désormais chaque fois qu'un utilisateur essayera de modifier les données d'une ligne d'une base de données sur laquelle travaille un autre utilisateur. Le dialogue fonctionne comme suit. A chaque mise à jour d'une ligne d'une table

Votre nouvelle fiche Erreur de conciliation affichera quatre colonnes dans la partie supérieure de la fenêtre et six boutons radio dans la partie inférieure. Le tableau suivant décrit chacune des colonnes.

Libellé de colonne Signification

Nom de colonne Le nom des colonnes de la table dans lesquelles une erreur s'est produite.

Ligne en cours Le contenu de la ligne qui se trouve alors en conflit.

Ligne d'origine Ce que contenait la ligne avant la saisie des données conflictuelles.

Ligne serveur La dernière mise à jour ayant été enregistrée sur le serveur. (Cela représente ce que la ligne contientsur le serveur.)

Les trois boutons radio de la partie inférieure gauche de la fenêtre vous permettent d'indiquer comment continuer le traitementaprès la gestion de l'erreur. Vous ne pouvez choisir qu'une des trois possibilités suivantes :

Libellé du bouton radio Signification

Réessayer la mise à jouravec la clé primaire

L'erreur sera effacée et la mise à jour retentée avec la clé primaire. Si la ligne de données duserveur ne peut être trouvée, cette option sera désactivée.

Ignorer la ligne en courset continuer

Choisissez cette option lorsque vous avez décidé de ne pas tenter de mettre à jour lesmodifications pour la ligne en cours mais que vous voulez tenter de mettre à jour le reste deslignes.

Abandonner les mises àjour

Les dernières mises à jour ne seront pas appliquées et l'erreur sera effacée, mais plus aucunemise à jour ne sera tentée.

Les trois boutons radio de la partie inférieure droite de la fenêtre vous permettent d'indiquer quelles données écrire dans la basede données. Vous ne pouvez choisir qu'une des trois possibilités suivantes :

Libellé du bouton radio Signification

Utiliser les valeurs d'origine Place les données de la colonne Ligne d'origine (décrite précédemment) dans la ligne où leconflit s'est produit.

Utiliser les valeurs duserveur

Place les données de la colonne Ligne serveur (décrite précédemment) dans la ligne où leconflit s'est produit.

Utiliser les valeurs en cours Place les données de la colonne Ligne en cours (décrite précédemment) dans la ligne où leconflit s'est produit.

2.1 Procédures de bases de données RAD Studio pour .NET Ajout d'un dialogue Erreur de conciliation

113

2

Page 120: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Concepteurs de composants ADO.NET ( see page 22)

Exploration d'une base de données ( see page 116)

Exécution SQL dans l'explorateur de données ( see page 120)

Modification des connexions ( see page 123)

2.1.3 Exploration d'une base de données dans l'explorateur de données

Une fois que vous disposez d'une connexion dynamique, vous pouvez utiliser l'explorateur de données pour explorer les objetsbase de données.

Pour explorer les objets base de données

1. Choisissez Voir Explorateur de données.

2. Développez un noeud de fournisseur pour afficher la liste des connexions disponibles.

3. Développez un noeud de connexion pour afficher la liste des objets de bases de données (tables, vues et procédures).

Remarque: Si vous obtenez une erreur du fait que votre connexion n'est pas dynamique, vous devez actualiser votre fournisseur et/ou modifier la connexion.

Pour extraire des données de la base de données

1. Développez une connexion dans l'explorateur de données.

2. Double-cliquez sur le nom de la table ou de la vue dont vous souhaitez extraire des données. Cette opération renvoie un ensemble de résultats dans une page d'explorateur de données à onglets dans l'éditeur de code.

Conseil: Vous pouvez également sélectionner une table dans l'explorateur de données

et cliquer avec le bouton droit pour afficher un menu contextuel contenant la commande Extraire les données de la table.

Pour exécuter une procédure stockée

1. Choisissez Voir Explorateur de données.

2. Développez une connexion dans l'explorateur de données et recherchez une procédure stockée.

3. Double-cliquez sur la procédure stockée pour afficher ses paramètres. Les paramètres apparaissent dans une page séparée sur la surface de conception.

4. Modifiez les paramètres d'entrée selon nécessité.

5. Cliquez sur le bouton Exécuter dans l'angle supérieur gauche de la page pour exécuter la procédure. L'ensemble de résultats s'affiche dans une grille de données.

Conseil: Vous pouvez également sélectionner une procédure dans l'explorateur de données

et cliquer avec le bouton droit pour afficher un menu contextuel contenant la commande Exécuter.

Voir aussi

Concepteurs de composants ADO.NET ( see page 22)

Ajout d'une nouvelle connexion ( see page 114)

Exploration d'une base de données dans RAD Studio pour .NET 2.1 Procédures de bases de données

114

2

Page 121: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Exécution SQL dans l'explorateur de données ( see page 120)

Modification des connexions ( see page 123)

2.1.4 Connexion à AdoDbx Client

Vous pouvez établir une connexion de base de données à l'aide de AdoDbx Client de plusieurs façons :

Pour effectuer une connexion à l'aide du fichier dbxconnections.ini

1. La propriété ConnectionName référencée dans l'exemple de code est le nom d'une connexion dans le fichier dbxconnections.ini.

2. Utilisez le code Delphi suivant pour établir la connexion :

uses System.Data.Common...var Factory: System.Data.Common.DbProviderFactory; Connection: System.Data.Common.DbConnection;begin Factory := System.Data.Common.DbProviderFactories.GetFactory('Borland.Data.AdoDbxClient'); Connection := Factory.CreateConnection(); Connection.ConnectionString := 'ConnectionName=IBConnection'; Connection.Open;end

Pour effectuer une connexion à l'aide d'un fichier System.Configuration

1. Pour que la connexion fonctionne, les paramètres de propriété des fichiers dbxconnections.ini et dbxdriver.ini relatifs à la base de données en cours de connexion doivent migrer vers le fichier machine.config. Voici un exemple de texte de chaîne de connexion à ajouter dans la section <connectionStrings> de machine.config :

<add name="IBConnection" connectionString="ConnectionName=IBCONNECTION; drivername=Interbase; database=workerbee:C:\Borland\Interbase\examples\database\employee.gdb; rolename=RoleName; user_name=user;password=password; sqldialect=3;localecode=0000;blobsize=-1; commitretain=False;waitonlocks=True;interbase transisolation=ReadCommited; trim char=False" providerName="Borland.Data.AdoDbxClient"/>

2. Utilisez le code Delphi suivant pour établir la connexion :

var Factory: System.Data.Common.DbProviderFactory; Connection: System.Data.Common.DbConnection; Config: System.Configuration.Configuration; ConnectSection: System.Configuration.ConnectionStringsSection; CurrentSettings: System.Configuration.ConnectionStringSettings;begin Factory:= System.Data.Common.DbProviderFactories.GetFactory('Borland.Data.AdoDbxClient'); Connection:= Factory.CreateConnection(); Config:= System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ConnectSection:= Config.ConnectionStrings; CurrentSettings:= ConnectSection.ConnectionStrings['IBConnection']; Connection.ConnectionString:= CurrentSettings.ConnectionString; Connection.Open;end;

2.1 Procédures de bases de données RAD Studio pour .NET Connexion à AdoDbx Client

115

2

Page 122: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Présentation du client AdoDbx ( see page 6)

Déploiement du client AdoDbx

2.1.5 Création de projets de base de données dans l'explorateur de données

Vous pouvez faire glisser et déposer des données de l'explorateur de données vers des fiches Windows ou des fiches Web, etdes fichiers Global.asax, ce qui permet de remplir des ensembles de données et de construire rapidement un projet de base dedonnées. Ceci vous permet d'insérer automatiquement des composants de base de données dans votre projet et vous évite dedéfinir une chaîne de connexion pouvant induire des erreurs en cas de saisie manuelle.

Pour créer des projets de base de données dans l'explorateur de données

1. Assurez qu'une connexion dynamique est établie à la base de données.

2. Dans le menu Voir, sélectionnez Explorateur de données.

3. Choisissez Fichier Nouveau Autre et sélectionnez un projet Delphi pour .NET. Ce sera généralement une fiche Windows, une fiche VCL ou une application ASP.NET.

4. Développez l'arborescence de l'explorateur de données en sélectionnant le niveau Table ou Vue. Si la connexion à votre base de données est dynamique, le petit symbole x en rouge disparaît quand vous développez le noeud de connexion de la base de données. Si elle n'est pas dynamique, vous devrez probablement modifier la chaîne de connexion.

5. Au moyen du curseur, saisissez l'une des tables nommées dans la liste.

6. Faites glisser et déposez l'objet table sur votre fiche. Un AdoDbxConnection et un AdoDbxDataAdapter apparaissent dans la corbeille de composants.

7. Spécifiez les propriétés de bases de données appropriées pour chaque composant de base de données. Par exemple, définissez la propriété Active sur True si vous souhaitez visualiser les données de votre composant à la conception.

Remarque: Lorsque c'est nécessaire, faites glisser et déposez un composant DataGrid dans la fiche, car ce DataGrid qui permet l'affichage de données n'est pas inséré automatiquement.

Voir aussi

Concepteurs de composants ADO.NET ( see page 22)

Exploration d'une base de données ( see page 116)

Exécution SQL dans l'explorateur de données ( see page 120)

Modification des connexions ( see page 123)

2.1.6 Création de mappages de tables

En utilisant la propriété TableMappings, vous pouvez mapper des colonnes entre une source de données et un ensemble dedonnées en mémoire. Cela vous permet d'utiliser des noms différents, souvent plus descriptifs, pour les colonnes de votreensemble de données. Vous pouvez également mapper une colonne d'une table de base de données avec une colonne del'ensemble de données différente de celle sélectionnée par défaut. La propriété TableMappings vous permet également de créerun ensemble de données qui contient plus ou moins de colonnes que celui récupéré du schéma de la base de données.

Création de mappages de tables RAD Studio pour .NET 2.1 Procédures de bases de données

116

2

Page 123: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour créer un mappage de table

1. Créez une application.

2. Ajoutez et configurez des composants de base de données.

3. Définissez les mappages de tables dans la boîte de dialogue TableMappings.

Remarque: Cette procédure suppose que vous utilisez des composants de base de données BDP.NET.

Pour créer une application

1. Choisissez Fichier Nouveau Application Windows Forms pour Delphi pour .NET ou C#.

2. Cliquez sur l'onglet Explorateur de données pour afficher vos sources de données.

3. Développez la liste et localisez une source de données dynamique.

4. Glissez-déposez un nom de table sur votre fiche Windows pour ajouter une source de données à votre application. Vous devriez voir deux objets dans la corbeille de composants : un objet BdpDataAdapter et un objet BdpConnection.

Pour plus d'informations sur la manière de créer des applications de base de données, reportez-vous aux rubriques supplémentaires ADO.NET et base de données dans ce système d'aide.

Pour configurer les composants bases de données

1. Sélectionnez l'icône BdpDataAdapter dans la corbeille de composants.

2. Cliquez sur le verbe de concepteur Configurer l'adaptateur de données pour ouvrir la boîte de dialogue Configuration de l'adaptateur de données.

3. Sélectionnez l'onglet DataSet (Ensemble de données).

4. Cliquez sur le bouton radio Nouveau DataSet.

5. Cliquez sur OK. Cette opération crée un nouvel ensemble de données et affiche son icône dans la corbeille de composants.

Pour définir des mappages de tables

1. Sélectionnez l'icône BdpDataAdapter dans la corbeille de composants.

2. Double-cliquez sur le champ Collections pour la propriété TableMappings dans l'inspecteur d'objets. Cette opération affiche la boîte de dialogue TableMappings.

3. Pour utiliser un ensemble de données existant comme modèle pour les colonnes, activez la case à cocher Utiliser un DataSet pour les noms de table et de colonne. Cette opération vous fournit une liste de noms de colonnes à partir d'un ensemble de données existant, sur la base du schéma de cet ensemble de données. Les noms de colonnes ne sont liés à rien lorsque vous utilisez ce processus.

4. Si vous avez activé la case à cocher Utiliser un DataSet pour les noms de table et de colonne, vous pouvez choisir l'ensemble de données dans la liste déroulante DataSet (Ensemble de données).

5. Sélectionnez la table source dans la liste déroulante Table source. Si la source de données contient plusieurs tables, leurs noms apparaissent dans la liste déroulante.

6. Si vous avez choisi d'utiliser un ensemble de données pour suggérer les noms de tables et de colonnes et que cet ensemble de données contient plusieurs tables, vous pouvez sélectionner la table que vous souhaitez utiliser dans la liste déroulante Table du DataSet. Les noms de colonnes de la table source et de l'ensemble de données doivent apparaître dans la grille Mappage de colonnes. Avec l'affichage par défaut, ils représentent le mappage de la source vers l'ensemble de données ; en d'autres termes, l'adaptateur de données lit les données dans chaque colonne nommée sur le côté gauche de la grille et les stocke dans la colonne de l'ensemble de données nommée dans le champ correspondant sur le côté droit de la grille. Vous pouvez changer les noms d'un côté ou de l'autre en tapant de nouveaux noms ou en sélectionnant d'autres tables. Cela vous permet de stocker des données de résultats de requêtes dans des colonnes d'ensemble de données différentes de celles créées dans l'ensemble de données par défaut.

2.1 Procédures de bases de données RAD Studio pour .NET Création de mappages de tables

117

2

Page 124: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

7. Si vous souhaitez modifier un mappage, tapez un nouveau nom dans la colonne de table d'ensemble de données située près de la colonne de table source cible. Les données de la colonne de table source seront ainsi stockées dans la nouvelle colonne d'ensemble de données.

Remarque: Pour réinitialiser les noms de colonnes afin que les colonnes d'ensemble de données correspondent aux colonnes de source de données, vous pouvez cliquer sur le bouton Réinitialiser

.

Pour supprimer un mappage

1. Sélectionnez la ligne de grille que vous souhaitez supprimer.

2. Cliquez sur Supprimer. La requête ignorera cette colonne dans la table source et n'insérera aucune donnée dans la colonne d'ensemble de données.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Gestion des erreurs dans les mappages de tables ( see page 121)

2.1.7 Exécution SQL dans l'explorateur de données

Vous pouvez écrire, modifier et exécuter du code SQL dans une fenêtre SQL, disponible à partir de l'explorateur de données.

Pour ouvrir une fenêtre SQL

1. Choisissez Voir Explorateur de données.

2. Sélectionnez une connexion.

3. Cliquez avec le bouton droit sur la connexion et choisissez Fenêtre SQL. Cette opération ouvre une fenêtre SQL à onglets dans l'éditeur de code.

Pour exécuter du code SQL

1. Entrez une instruction SQL ou un nom de procédure stockée valide dans la boîte texte multiligne en haut de la fenêtre SQL.

2. Cliquez sur Exécuter le SQL. Si l'instruction SQL ou la procédure stockée est valide, l'ensemble de résultats apparaît dans le volet inférieur de la fenêtre SQL.

Remarque: L'instruction SQL ou la procédure stockée doit fonctionner sur la connexion en cours et sa base de données cible. Vous ne pouvez pas exécuter du code SQL sur une base de données à laquelle vous n'êtes pas connecté.

3. Cliquez sur Effacer tout le SQL pour effacer l'instruction SQL ou la procédure stockée de la zone de texte multiligne.

Voir aussi

Concepteurs de composants ADO.NET ( see page 22)

Exploration d'une base de données ( see page 116)

Ajout d'une nouvelle connexion ( see page 114)

Modification des connexions ( see page 123)

Gestion des erreurs dans le mappage de RAD Studio pour .NET 2.1 Procédures de bases de données

118

2

Page 125: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.1.8 Gestion des erreurs dans le mappage de table

Quel que soit le type de fonction de comparaison que vous effectuez entre une source de données et une représentation desdonnées en mémoire, des erreurs sont possibles. Les erreurs peuvent survenir lorsqu'une source de données et son ensemblede données correspondant n'ont pas les mêmes nombres de colonnes ou lorsque les types de colonnes d'une source dedonnées ne correspondent pas aux types de colonnes de l'ensemble de données. En outre, d'autres erreurs internes peuventsurvenir pour lesquelles il n'existe aucune solution de remplacement de niveau conception. Vous pouvez utiliser les propriétésMissingMappingAction et MissingSchemaAction pour répondre aux erreurs dans vos opérations de mappage de table. Utilisez lapropriété MissingMappingAction lorsque vous souhaitez spécifier comment l'adaptateur doit réagir lorsque le mappage estabsent. Utilisez la propriété MissingSchemaAction pour spécifier la manière dont l'adaptateur doit réagir lorsqu'il tente d'écriredes données dans une colonne qui n'est pas définie dans l'ensemble de données.

Pour définir la propriété MissingMappingAction

1. Après avoir créé un AdoDbxDataAdapter et défini vos mappages de tables, cliquez sur la liste déroulante située près de la propriété MissingMappingAction dans l'inspecteur d'objets.

2. Sélectionnez Passthrough pour que l'adaptateur charge les données de la colonne source des données dans une colonne de l'ensemble de données de même nom ou, s'il n'existe pas de colonne d'ensemble de données correspondante, pour que l'adaptateur effectue l'action spécifiée dans la propriété MissingSchemaAction.

3. Sélectionnez Ignorer si vous souhaitez que les données ne soient pas chargées lorsque les colonnes source de données ne sont pas correctement mappées avec des colonnes de l'ensemble de données. Cela peut se produire si des colonnes mappées ont des types de données ou des longueurs incompatibles, ou bien en cas d'autres erreurs.

4. Sélectionnez Erreur si vous souhaitez que l'adaptateur déclenche une erreur que vous pourrez intercepter.

Pour définir la propriété MissingSchemaAction

1. Sélectionnez Ajouter si vous souhaitez que la table ou la colonne source de données soit ajoutée à l'ensemble de données et à son schéma. Les initialisations de la propriété MissingMappingAction à Passthrough et de la propriété MissingSchemaAction à Add entraînent une duplication de la table source des données et des noms de colonnes de l'ensemble des données.

2. Sélectionnez AddWithKey si vous souhaitez que la table ou la colonne source de données soit ajoutée à l'ensemble de données et à son schéma avec les informations de clé primaire de la table ou de la colonne.

3. Sélectionnez Ignorer si vous ne voulez pas que qu'une table ou une colonne soit ajoutée à l'ensemble de données lorsque cette table ou cette colonne n'est pas déjà représentée dans le schéma de l'ensemble de données. Spécifiez Ignorer lorsque vous voulez que l'ensemble de données soit uniquement chargé avec les données explicitement spécifiées dans les mappages de tables. Cela peut être nécessaire si votre adaptateur appelle une procédure stockée ou une instruction SQL définie par l'utilisateur qui renvoie plus de colonnes qu'il n'en est défini dans l'ensemble de données.

4. Sélectionnez Erreur si vous souhaitez que l'adaptateur déclenche une erreur que vous pourrez intercepter.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Création de mappages de tables ( see page 119)

2.1.9 Migration de données entre des bases de données

L'explorateur de données facilite la migration de données d'une base de données à une autre, voire entre fournisseurs.

2.1 Procédures de bases de données RAD Studio pour .NET Migration de données entre des bases de

119

2

Page 126: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

L'explorateur de données permet de copier rapidement une table d'une base de données et de la coller dans une autre base dedonnées. La migration concerne la structure et les données des tables.

La migration de données est prise en charge par la classe BdpCopyTable, disponible en tant que composant lors de laconception dans la palette d'outils. Ce composant peut être utilisé dans un programme de migration de données.

Remarque: La classe BdpCopyTable ne copie pas de clés étrangères ou d'objets dépendants.

Pour migrer plusieurs tables

1. Choisissez Voir Explorateur de données.

2. Cliquez à l'aide du bouton droit sur un type de fournisseur, tel qu'Interbase, et choisissez Migrer les données. La page Explorateur de données de la migration de données s'ouvre dans l'éditeur de code. Cette page de migration de données permet de sélectionner une ou plusieurs tables à partir d'une connexion de fournisseur source et une connexion de destination vers laquelle les tables vont être migrées.

3. Choisissez une connexion dans la boîte liste déroulante Connexion source. Les tables associées à cette connexion s'affichent dans la boîte liste sous la connexion.

4. Choisissez une connexion dans la boîte liste déroulante Connexion destination. Les tables associées à cette connexion s'affichent dans la boîte liste sous la connexion.

5. Sélectionnez une ou plusieurs tables pour effectuer la migration à partir de la liste de tables associées à la connexion source. Pour sélectionner plusieurs tables consécutivement, cliquez sur la première table, appuyez sur la touche MAJ et, tout en la maintenant enfoncée, cliquez sur la dernière table. Pour effectuer une sélection discontinue de tables, appuyez sur la touche CTRL et, tout en la maintenant enfoncée, cliquez sur chaque table à sélectionner.

6. Cliquez sur le bouton Inclure (>) pour inclure ces tables à migrer vers la connexion de destination. Les tables sélectionnées s'affichent dans la liste de tables associées à la connexion de destination. Toute table sélectionnée portant le même nom qu'une table dans la connexion de destination ne peut être migrée.

7. Cliquez sur Migrer pour copier les tables vers la connexion de destination. La page Migration des données affiche la progression du mappage des types SQL, la progression de la création des tables, la progression de l'extraction des données à partir de la connexion source et la progression du remplissage de données de la nouvelle table dans la connexion de destination. Le résultat de chaque opération est rapporté pour chaque table.

8. Cliquez à l'aide du bouton droit sur le noeud Tables dans le fournisseur de destination et choisissez Actualiser. Les noeuds des nouvelles tables s'affichent.

9. Double-cliquez sur un nouveau noeud de table pour confirmer sa structure et son contenu. La table s'ouvre dans une page sur la surface de conception.

Pour migrer une seule table

1. Choisissez Voir Explorateur de données.

2. Développez le noeud Tables dans le fournisseur source et sélectionnez la table base de données contenant les données et la structure à migrer. Pour développer les noeuds de fournisseur, vous devez disposer d'une connexion valide.

3. Cliquez à l'aide du bouton droit sur la table à migrer et choisissez Copier la table.

4. Développez le noeud Tables du fournisseur vers lequel vous souhaitez migrer les données.

5. Cliquez à l'aide du bouton droit sur une table et choisissez Coller la table. La boîte de dialogue Nouveau nom de table apparaît.

6. Entrez un nom pour la nouvelle table et cliquez sur OK.

7. Cliquez à l'aide du bouton droit sur le noeud Tables dans le fournisseur de destination et choisissez Actualiser. Un noeud associé à la nouvelle table apparaît.

8. Double-cliquez sur le nouveau noeud de table pour confirmer sa structure et son contenu. La table s'ouvre dans une page sur la surface de conception.

Voir aussi

Fournisseurs de données pour Microsoft .NET ( see page 27)

Migration de données entre des bases de RAD Studio pour .NET 2.1 Procédures de bases de données

120

2

Page 127: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Modification des connexions dans l'explorateur de données ( see page 123)

Exploration d'une base de données dans l'explorateur de données ( see page 116)

2.1.10 Modification des connexions dans l'explorateur de données

Vous pouvez modifier les connexions de nombreuses façons à partir de l'explorateur de données.

Pour modifier les connexions

1. Choisissez Voir Explorateur de données.

2. Sélectionnez un fournisseur.

3. Cliquez avec le bouton droit pour afficher un menu surgissant répertoriant vos options.

Pour actualiser une connexion

1. Choisissez Voir Explorateur de données.

2. Sélectionnez un fournisseur.

3. Cliquez avec le bouton droit pour afficher un menu contextuel.

4. Choisissez Actualiser. Cette opération réinitialise toutes les connexions définies pour le fournisseur sélectionné.

Pour supprimer une connexion

1. Choisissez Voir Explorateur de données.

2. Sélectionnez une connexion.

3. Cliquez avec le bouton droit pour afficher un menu contextuel.

4. Choisissez Supprimer la connexion. Cette opération affiche un message de confirmation qui vous demande si vous souhaitez supprimer la connexion.

5. Cliquez sur OK.

Pour modifier une connexion

1. Choisissez Voir Explorateur de données.

2. Sélectionnez une connexion.

3. Cliquez avec le bouton droit pour afficher un menu contextuel.

4. Choisissez Modifier la connexion. Cette opération affiche la boîte de dialogue Editeur de connexions.

5. Modifiez les valeurs appropriées dans l'éditeur.

6. Cliquez sur OK.

Pour fermer une connexion

1. Choisissez Voir Explorateur de données.

2. Sélectionnez une connexion.

3. Cliquez avec le bouton droit pour afficher un menu contextuel.

4. Choisissez Fermer la connexion. Si la connexion est ouverte, cette opération la ferme.

Remarque: Si la commande Fermer la connexion

2.1 Procédures de bases de données RAD Studio pour .NET Modification des connexions dans

121

2

Page 128: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

est désactivée dans le menu, cela indique que la connexion n'est pas ouverte.

Pour renommer une connexion

1. Choisissez Voir Explorateur de données.

2. Sélectionnez une connexion.

3. Cliquez avec le bouton droit pour afficher un menu contextuel.

4. Choisissez Renommer la connexion. Cette opération affiche la boîte de dialogue Renommer la connexion.

5. Entrez un nouveau nom.

6. Cliquez sur OK. L'explorateur de données affiche la connexion sous son nouveau nom.

Voir aussi

Concepteurs de composants ADO.NET ( see page 22)

Exploration d'une base de données ( see page 116)

Exécution SQL dans l'explorateur de données ( see page 120)

Ajout d'une nouvelle connexion ( see page 114)

2.1.11 Modification des connexions de bases de données

Les éléments de base d'une chaîne de connexion ont tendance à être les mêmes d'un type de base de données à un autre.Toutefois, chaque type de base de données prend en charge une syntaxe de chaîne de connexion légèrement différente. Cetterubrique aborde ces différences.

Pour modifier les divers types de connexions de bases de données

1. Cliquez sur l'onglet Explorateur de données dans l'EDI.

2. Sélectionnez le type de base de données de votre choix.

3. Cliquez avec le bouton droit pour afficher le menu contextuel.

4. Choisissez Modifier la connexion pour afficher l'éditeur de connexions. Les propriétés de l'éditeur de connexions sont organisées selon trois catégories : Connexions, Options et Paramètres du fournisseur. Les options de connexions désignent les paramètres de base de données et d'authentification. La zone Options comporte diverses options spécifiques aux bases de données, y compris les types d'isolation de transaction. La zone Paramètres du fournisseur spécifie les assemblages et les bibliothèques client requis pour accomplir la connexion à la base de données spécifiée.

Remarque: Toutes les procédures de cette rubrique supposent que vous avez déjà installé un client de base de données, un serveur, ou les deux, et que l'instance de base de données est en cours d'exécution.

Pour modifier une connexion InterBase

1. Entrez le nom de la base de données ou naviguez jusqu'à la base de données sur votre disque local ou sur un lecteur réseau, en cliquant sur le bouton points de suspension pour naviguer. Les bases de données standard fournies sont généralement installées dans C:\Program Files\Fichiers communs\CodeGear Shared\Data.

2. Entrez le nom d'utilisateur et le mot de passe. Par défaut, ce sont respectivement masterkey et sysdba.

3. Définissez les options suivantes, si nécessaire. Les valeurs par défaut sont présentées dans le tableau suivant.

Modification des connexions de bases de RAD Studio pour .NET 2.1 Procédures de bases de données

122

2

Page 129: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Option Description Par défaut

CommitRetain Valide la transaction active et conserve le contexte de la transaction après unevalidation.

False

LoginPrompt Détermine si vous souhaitez que l'utilisateur reçoive une invite de connexion à chaquetentative de connexion de l'application à la base de données.

False

QuoteObjects Spécifie que les noms de tables, les noms de colonnes et les autres objets doiventêtre délimités lors de leur inclusion dans une instruction SQL. Cela est nécessairepour les bases de données autorisant les espaces dans les noms, telles que MSAccess.

False

RoleName En cas de présence d'un rôle dans la base de données, vous pouvez entrer le nom durôle ici. Le rôle est généralement un alias d'authentification qui combine votre identitéavec vos droits d'accès.

myRole

ServerCharSet Spécifie le jeu de caractères en vigueur sur le serveur. —

SQLDialect Spécifie ou renvoie le dialecte SQL utilisé par le client. 3

TransactionIsolation Les verrous partagés sont conservés pendant la lecture des données afin d'éviter deslectures sales (dirty), mais les données peuvent être modifiées avant la fin de latransaction, ce qui aboutit à des lectures non-répétables ou à des données fantômes.Cela spécifie la valeur de la propriété TAdoDbxTransaction. IsolationLevel.

ReadCommitted

WaitOnLocks Indique qu'une transaction attend un accès en cas de conflit de verrou avec une autretransaction.

False

4. Vous devez être en mesure d'accepter les valeurs par défaut des paramètres de fournisseur suivants :

Option Par défaut

Assembly Borland.Data.Interbase,Version=Current Product Version,Culture=neutral,PublicKeyToken=Token#

Provider Interbase

VendorClient gds32.dll

5. Cliquez sur Tester pour voir si la connexion fonctionne.

6. Cliquez sur OK pour enregistrer la chaîne de connexion.

Remarque: Si vous écrivez des applications ASP.NET et exécutez les fiches Web ASP.NET localement à des fins de test, vous devez modifier l'instruction path qui pointe sur votre base de données afin d'inclure la désignation hôtelocal: . Par exemple, vous devriez modifier le chemin présenté ci-avant dans cette rubrique comme suit : hôtelocal:C:\Program Files\Fichiers communs\CodeGear Shared\Data\employee.gdb.

Remarque: Votre chaîne de connexion devrait ressembler à ceci

database=C:\Program Files\Fichiers communs\CodeGear Shared\Data\EMPLOYEE.GDB;assembly=Borland.Data.Interbase,Version=2.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b;vendorclient=gds32.dll;provider=Interbase;username=sysdba;password=masterkey

Pour modifier une connexion MS SQL Server

1. Entrez le nom de la base de données dans le champ Base de données de l'éditeur de connexions. Par exemple, utilisez l'une des bases de données MS SQL Server exemple, telles que Pubs ou Northwind. Il n'est pas nécessaire d'inclure l'extension du fichier dans le nom.

2. Entrez le nom de l'hôte. Si vous utilisez un serveur de base de données local, entrez (local) dans ce champ.

2.1 Procédures de bases de données RAD Studio pour .NET Modification des connexions de bases de

123

2

Page 130: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

3. Si vous utilisez l'authentification de votre système d'exploitation, définissez OSAuthentication sur True.

4. Si vous utilisez l'authentification de base de données, entrez le nom d'utilisateur et le mot de passe dans les champs appropriés. Par défaut, le nom d'utilisateur de la base de données SQL Server est sa.

5. Modifiez les options de bases de données, si nécessaire. Les valeurs par défaut sont présentées dans le tableau suivant.

Option Description Par défaut

BlobSize Spécifie la limite supérieure de la taille d'un champ BLOB. 1024

LoginPrompt Détermine si vous souhaitez que l'utilisateur reçoive une invite de connexion à chaquetentative de connexion de l'application à la base de données.

False

QuoteObjects Spécifie que les noms de tables, les noms de colonnes et les autres objets doiventêtre délimités lors de leur inclusion dans une instruction SQL. Cela est nécessairepour les bases de données autorisant les espaces dans les noms, telles que MSAccess.

False

TransactionIsolation Les verrous partagés sont conservés pendant la lecture des données afin d'éviter deslectures sales (dirty), mais les données peuvent être modifiées avant la fin de latransaction, ce qui aboutit à des lectures non-répétables ou à des données fantômes.Cela spécifie la valeur de la propriété TAdoDbxTransaction. IsolationLevel.

ReadCommitted

6. Vous devez être en mesure d'accepter les valeurs par défaut des paramètres de fournisseur suivants :

Option Par défaut

Assembly Borland.Data.Mssql,Version=Current Product Version,Culture=neutral,PublicKeyToken=Token #

Provider MSSQL

VendorClient sqloledb.dll

7. Cliquez sur Tester pour voir si la connexion fonctionne.

8. Cliquez sur OK pour enregistrer la chaîne de connexion.

Remarque: Si vous écrivez des applications ASP.NET et exécutez les fiches Web ASP.NET localement à des fins de test, vous devez modifier l'instruction path qui pointe sur votre base de données afin d'inclure la désignation hôtelocal: placée devant le chemin d'accès.

Remarque: Votre chaîne de connexion devrait ressembler à ceci

assembly=Borland.Data.Mssql,Version=2.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b; vendorclient=sqloledb.dll;osauthentication=True;database=Pubs;username=;hostname=(local);password=;provider=MSSQL

Pour modifier une connexion DB2

1. Entrez le chemin de la base de données.

2. Entrez le nom d'utilisateur et le mot de passe dans les champs appropriés.

3. Définissez les options de bases de données suivantes, si nécessaire. Les valeurs par défaut sont présentées dans le tableau suivant.

Option Description Par défaut

LoginPrompt Détermine si vous souhaitez que l'utilisateur reçoive une invite de connexion à chaquetentative de connexion de l'application à la base de données.

False

Modification des connexions de bases de RAD Studio pour .NET 2.1 Procédures de bases de données

124

2

Page 131: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

QuoteObjects Spécifie que les noms de tables, les noms de colonnes et les autres objets doiventêtre délimités lors de leur inclusion dans une instruction SQL. Cela est nécessairepour les bases de données autorisant les espaces dans les noms.

False

TransactionIsolation Les verrous partagés sont conservés pendant la lecture des données afin d'éviter deslectures sales (dirty), mais les données peuvent être modifiées avant la fin de latransaction, ce qui aboutit à des lectures non-répétables ou à des données fantômes.Cela spécifie la valeur de la propriété TAdoDbxTransaction. IsolationLevel.

ReadCommitted

4. Vous devez être en mesure d'accepter les valeurs par défaut des paramètres de fournisseur suivants :

Option Par défaut

Assembly Borland.Data.Db2,Version=Current Product Version,Culture=neutral,PublicKeyToken=Token #

Provider DB2

VendorClient db2cli.dll

5. Cliquez sur Tester pour voir si la connexion fonctionne.

6. Cliquez sur OK pour enregistrer la chaîne de connexion.

Pour modifier une connexion Oracle

1. Entrez le chemin de la base de données.

2. Si vous utilisez l'authentification de votre système d'exploitation, définissez OSAuthentication sur True. Cela signifie que le système prend en compte le nom d'utilisateur et le mot de passe de votre système local pour établir la connexion à la base de données.

3. Si vous utilisez l'authentification de base de données, entrez le nom d'utilisateur et le mot de passe dans les champs appropriés. Par exemple, le nom d'utilisateur et le mot de passe Oracle typique de la base de données exemple sont respectivement SCOTT et TIGER.

4. Définissez les options de bases de données suivantes, si nécessaire. Les valeurs par défaut sont présentées dans le tableau suivant.

Option Description Par défaut

LoginPrompt Détermine si vous souhaitez que l'utilisateur reçoive une invite de connexion à chaquetentative de connexion de l'application à la base de données.

False

QuoteObjects Spécifie que les noms de tables, les noms de colonnes et les autres objets doiventêtre délimités lors de leur inclusion dans une instruction SQL. Cela est nécessairepour les bases de données autorisant les espaces dans les noms.

False

TransactionIsolation Les verrous partagés sont conservés pendant la lecture des données afin d'éviter deslectures sales (dirty), mais les données peuvent être modifiées avant la fin de latransaction, ce qui aboutit à des lectures non-répétables ou à des données fantômes.Cela spécifie la valeur de la propriété TAdoDbxTransaction. IsolationLevel.

ReadCommitted

5. Vous devez être en mesure d'accepter les valeurs par défaut des paramètres de fournisseur suivants :

Option Par défaut

Assembly Borland.Data.Oracle,Version=Current Product Version,Culture=neutral,PublicKeyToken=Token #

Provider Oracle

VendorClient oci.dll

6. Cliquez sur Tester pour voir si la connexion fonctionne.

7. Cliquez sur OK pour enregistrer la chaîne de connexion.

2.1 Procédures de bases de données RAD Studio pour .NET Modification des connexions de bases de

125

2

Page 132: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour modifier une connexion MS Access

1. Entrez le nom de la base de données ou naviguez jusqu'à la base de données sur votre disque local ou sur un lecteur réseau, en cliquant sur le bouton points de suspension pour naviguer. Si Office Component Toolkit est installé, vous devriez trouver Northwind dans C:\Program Files\Office Component Toolpack\Data\Northwind.mdb.

2. Entrez le nom d'utilisateur et le mot de passe. Par défaut, essayez généralement admin pour le nom d'utilisateur et laissez vide le champ Mot de passe.

3. Définissez les options de bases de données suivantes, si nécessaire. Les valeurs par défaut sont présentées dans le tableau suivant.

Option Description Par défaut

BlobSize Spécifie la limite supérieure de la taille d'un champ BLOB. 1024

LoginPrompt Détermine si vous souhaitez que l'utilisateur reçoive une invite de connexion à chaquetentative de connexion de l'application à la base de données.

False

QuoteObjects Spécifie que les noms de tables, les noms de colonnes et les autres objets doiventêtre délimités lors de leur inclusion dans une instruction SQL. Cela est nécessairepour les bases de données autorisant les espaces dans les noms, telles que MSAccess.

False

TransactionIsolation Les verrous partagés sont conservés pendant la lecture des données afin d'éviter deslectures sales (dirty), mais les données peuvent être modifiées avant la fin de latransaction, ce qui aboutit à des lectures non-répétables ou à des données fantômes.Cela spécifie la valeur de la propriété TAdoDbxTransaction. IsolationLevel.

ReadCommitted

4. Vous devez être en mesure d'accepter les valeurs par défaut des paramètres de fournisseur suivants :

Option Par défaut

Assembly Borland.Data.Msacc,Version=Current Product Version,Culture=neutral,PublicKeyToken=Token #

Provider MSAccess

VendorClient msjet40.dll

5. Cliquez sur Tester pour voir si la connexion fonctionne.

6. Cliquez sur OK pour enregistrer la chaîne de connexion.

Remarque: Votre chaîne de connexion devrait ressembler à ceci

database=C:\Program Files\Office Component Toolpack\Data\Northwind.mdb;assembly=Borland.Data.Msacc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b;vendorclient=msjet40.dll;provider=MSAccess;username=admin;password=

Pour modifier une connexion Sybase

1. Entrez le chemin de la base de données.

2. Entrez le nom d'utilisateur et le mot de passe dans les champs appropriés.

3. Définissez les options de bases de données suivantes, si nécessaire. Les valeurs par défaut sont présentées dans le tableau suivant.

Option Description Par défaut

BlobSize Spécifie la limite supérieure de la taille d'un champ BLOB. 1024

ClientAppName Nom de l'application client défini par l'application intermédiaire. —

ClientHostName Nom de l'hôte client défini par l'application intermédiaire. —

Modification des connexions de bases de RAD Studio pour .NET 2.1 Procédures de bases de données

126

2

Page 133: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

LoginPrompt Détermine si vous souhaitez que l'utilisateur reçoive une invite de connexion à chaquetentative de connexion de l'application à la base de données.

False

PacketSize Indique le nombre d'octets par paquet réseau transféré au client à partir du serveur debase de données.

512

QuoteObjects Spécifie que les noms de tables, les noms de colonnes et les autres objets doiventêtre délimités lors de leur inclusion dans une instruction SQL. Cela est nécessairepour les bases de données autorisant les espaces dans les noms, telles que MSAccess.

False

TransactionIsolation Les verrous partagés sont conservés pendant la lecture des données afin d'éviter deslectures sales (dirty), mais les données peuvent être modifiées avant la fin de latransaction, ce qui aboutit à des lectures non-répétables ou à des données fantômes.Cela spécifie la valeur de la propriété TAdoDbxTransaction. IsolationLevel.

ReadCommitted

4. Vous devez être en mesure d'accepter les valeurs par défaut des paramètres de fournisseur suivants :

Option Par défaut

Assembly Borland.Data.Sybase,Version=Current Product Version,Culture=neutral,PublicKeyToken=Token#

Provider Sybase

VendorClient libct.dll

5. Cliquez sur Tester pour voir si la connexion fonctionne.

6. Cliquez sur OK pour enregistrer la chaîne de connexion.

Remarque: Votre chaîne de connexion devrait ressembler à ceci

assembly=Borland.Data.Sybase,Version=2.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b;vendorclient=libct.dll;database=Pubs;username=admin;hostname=host1;password=;provider=Sybase

Voir aussi

Présentation de ADO.NET ( see page 14)

Fournisseurs de base de données pour .NET ( see page 27)

Concepteurs de composants ADO.NET ( see page 22)

Conception d'une application de bases de données ASP.NET ( see page 182)

Création de projets de base de données dans l'explorateur de données. ( see page 118)

Passage de paramètres dans une application de base de données ( see page 132)

2.1.12 Construction d'une application de base de données résolvant plusieurs tables

RAD Studio prend en charge la résolution multi-table avec BDP.NET. En particulier, les composants DataSync et DataHub sontconçus pour fournir et résoudre un ensemble de données .NET émanant de plusieurs sources de données hétérogènes. Deplus, ces composants supportent l'affichage de données dynamiques lors de la conception, fournissent et résolvent des donnéesmaître-détail en générant du code SQL optimal pour la résolution de sources de données BDP.

2.1 Procédures de bases de données RAD Studio pour .NET Construction d'une application de base de

127

2

Page 134: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Le DataHub agit en tant que conduite entre un DataSet et un DataSync. La propriété DataPort d'un DataHub peut être réglée surn'importe quelle implémentation IDataProvider. DataSync implémente IDataProvider et possède une collection Providers quipeut contenir tout fournisseur de données .NET implémentant IDbDataAdapter. La méthode GetData de DataSync parcourt tousles DataProviders de la collection et retourne un DataSet. SaveData résout les modifications de DataSet dans la base dedonnées via la collection DataProvider. Lors de la résolution de modifications via un BdpDataAdapter, le résolveur génère ducode SQL optimal. Pour les fournisseurs de données autres que BDP, leur CommandBuilder respectif est employé.

La construction d'une application de base de données qui résout plusieurs tables se compose des étapes suivantes :

1. Créer un projet de base de données simple à partir de l'explorateur de données en y incorporant plusieurs objets BdpDataAdapter permettant la connexion à plusieurs fournisseurs

2. Ajouter et configurer un composant DataSync pour connecter les fournisseurs

3. Ajouter et configurer un composant DataHub pour connecter le DataSync à un DataSet.

Pour créer des projets de base de données dans l'explorateur de données

1. Choisissez Fichier Nouveau Application Windows Forms pour Delphi pour .NET. Le concepteur Windows Forms apparaît.

2. Choisissez Voir Explorateur de données pour accéder à l'explorateur de données.

3. Développez l'arborescence de l'explorateur de données afin d'exposer les fournisseurs et les tables de bases de données que vous souhaitez utiliser. Pour développer les noeuds de fournisseur, vous devez disposer d'une connexion dynamique. Si vous ne disposez pas d'une connexion dynamique, vous devrez probablement modifier la chaîne de connexion.

4. Faites glisser et déposez les tables d'un ou de plusieurs fournisseurs sur la fiche. Pour chaque table que vous déposez sur la fiche, un BdpConnection et un BdpDataAdapter apparaissent dans la corbeille de composants. Si vous ajoutez plusieurs tables du même fournisseur, vous pouvez conserver pour ce fournisseur un seul BdpConnection (et supprimer tous les autres).

5. Configurez chaque composant BdpDataAdapter. Il est inutile de définir les propriétés Active ou DataSet, du fait que le DataSet sera rempli par le composant DataHub.

6. Ajoutez un composant DataSet à votre fiche à partir de la catégorie Composants de données de la palette d'outils.

7. Ajoutez et configurez un composant DataGrid dans la fiche à partir de la catégorie Contrôles de données de la palette d'outils. Définissez la propriété DataSource du DataGrid par le nom du composant DataSet ajouté (dataSet1, par exemple).

Pour ajouter et configurer un composant DataSync

1. Faites glisser un composant DataSync sur la fiche à partir de la catégorie Fournisseur de données Borland de la palette d'outils.

2. Dans la corbeille de composants, sélectionnez le composant DataSync.

3. Dans l'inspecteur d'objets, sélectionnez la propriété Providers, et cliquez sur le bouton points de suspension pour ouvrir l'éditeur de collection DataProvider.

4. Dans l'éditeur de collection DataProvider, ajoutez un DataProvider pour chaque table que vous souhaitez fournir et résoudre. Vous devez disposer d'un DataProvider pour chaque BdpDataAdapter du projet.

5. Pour chaque DataProvider, sélectionnez le DataProvider dans le volet Membres et définissez la propriété DataAdapter par le BdpDataAdapter approprié.

6. Cliquez sur OK pour mettre fin à la configuration de vos DataProvider et refermer la boîte de dialogue Editeur de collection DataProvider.

7. Dans l'inspecteur d'objets, définissez la propriété CommitBehavior pour indiquer la façon dont sont gérés les échecs lors de la résolution. La logique de résolution comporte trois options :

• Atomic — Le programme tente d'effectuer des transactions pour chaque fournisseur. L'échec d'une transaction entraîne l'arrêt du traitement des transactions suivantes et l'annulation des transactions précédentes. Si aucune transaction n'échoue, toutes les transactions sont validées.

• Individual — Le programme tente d'effectuer une transaction pour un fournisseur ; en cas de réussite, elle est validée. La

Construction d'une application de base de RAD Studio pour .NET 2.1 Procédures de bases de données

128

2

Page 135: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

transaction suivante est tentée ; si elle réussit, elle est validée, et le traitement se poursuit. Si une transaction échoue pour un fournisseur, celle-ci est annulée, et le traitement s'arrête.

• ForceIndividual — Le programme tente d'effectuer une transaction pour un fournisseur ; en cas de réussite, elle est validée. La transaction suivante est tentée ; si elle réussit, elle est validée, et le traitement se poursuit. Si une transaction échoue pour un fournisseur, celle-ci est annulée, et la transaction suivante est traitée.

Pour ajouter et configurer un composant DataHub

1. Faites glisser un composant DataHub sur la fiche à partir de la catégorie Fournisseur de données Borland de la palette d'outils.

2. Dans la corbeille de composants, sélectionnez le composant DataHub.

3. Dans l'inspecteur d'objets, définissez la propriété DataPort par le composant DataSync ajouté (DataSync1, par exemple).

4. Définissez la propriété DataSet par le DataSet ajouté (dataSet1, par exemple).

5. Choisissez Exécuter Exécuter. L'application se compile et affiche un Windows Form comportant un DataGrid.

Voir aussi

Présentation de ADO.NET ( see page 14)

Fournisseurs de données pour .NET ( see page 27)

Concepteurs de composants ADO.NET ( see page 22)

Construction d'une application de base de données distribuée ( see page 144)

2.1.13 Passage de paramètres dans une application de base de données

Les procédures suivantes décrivent une application simple qui vous permet de passer la valeur d'un paramètre à un ensemblede données au moment de l'exécution. Les paramètres vous permettent de créer des applications au moment de la conceptionsans connaître exactement les données que l'utilisateur saisira au moment de l'exécution. Cet exemple suppose que vous avezdéjà configuré et connecté votre base de données exemple Interbase Employee. Pour l'illustration, cet exemple utilise leconnecteur par défaut IBConn1, qui est défini à un emplacement standard. L'emplacement de votre base de données peut êtredifférent.

Pour transmettre un paramètre

1. Créez un adaptateur de données et une connexion à la base de données Interbase employee.gdb.

2. Ajoutez un contrôle zone de saisie, un contrôle bouton et un contrôle grille de données à votre fiche.

3. Configurez l'adaptateur de données.

4. Pour ajouter un paramètre à l'adaptateur de données.

5. Configurez la grille de données.

6. Ajoutez du code à l'événement Click du bouton.

7. Compilez l'application et exécutez-la.

Pour créer un adaptateur de données et une connexion

1. Choisissez Fichier Nouveau Application Windows Forms pour Delphi pour .NET ou C#. Le concepteur Windows Forms apparaît.

2. Cliquez sur l'onglet Explorateur de données et explorez pour trouver la connexion IBConn1 sous le noeud Interbase.

2.1 Procédures de bases de données RAD Studio pour .NET Passage de paramètres dans une

129

2

Page 136: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

3. Placez la table EMPLOYEE sur la fiche Windows par glisser-déposer. Cela crée un objet BdpDataAdapter et un objet BdpConnection et affiche leurs icônes dans la corbeille des composants.

4. Sélectionnez l'icône de l'adaptateur de données, puis cliquez sur le verbe de concepteur Configurer l'adaptateur de données dans la zone Verbe de concepteur en bas de l'inspecteur d'objets. Cela affiche la boîte de dialogue Configuration de l'adaptateur de données.

5. Réécrivez l'instruction SQL qui est affichée dans l'onglet Select de la boîte de dialogue :

SELECT EMP_NO, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEE WHERE FIRST_NAME = ?;

Comme vous pouvez le voir, cette instruction limite le nombre de champs. Elle contient également un caractère ? dans la clauseWhere. Le caractère ? est un caractère générique qui représente la valeur du paramètre transmise par votre application aumoment de l'exécution. Il existe au moins deux raisons pour utiliser un paramètre de cette façon. La première raison consiste àdonner à l'application la possibilité de récupérer de nombreuses instances des données dans les colonnes sélectionnées, touten utilisant une valeur différente pour satisfaire la condition. La deuxième raison est que vous ne connaissez pas forcément lesvaleurs réelles au moment de la conception. Vous pouvez imaginer à quel point votre application serait limitée si seules lesdonnées pour lesquelles FIRST_NAME = 'Bob' étaient récupérées.

6. Cliquez sur l'onglet DataSet (Ensemble de données).

7. Cliquez sur Nouveau DataSet.

8. Cliquez sur OK. Cela crée l'ensemble de données représentant votre requête.

Pour ajouter un paramètre à l'adaptateur de données

1. Sélectionnez l'icône de l'adaptateur de données, puis développez les propriétés sous SelectCommand dans la zone de remplissage de l'inspecteur d'objets. Vous devez pouvoir voir votre instruction Select dans la liste déroulante de la propriété SelectCommand.

2. Affectez la valeur 1 à la propriété ParameterCount.

3. Cliquez sur l'entrée (Collection) située à côté de la propriété Parameters. L'éditeur de collection BdpParameter s'affiche.

4. Cliquez sur Ajouter pour ajouter un nouveau paramètre.

5. Renommez le paramètre en emp.

6. Affectez à BdpType String, à DbType Object, à Direction Input, à SourceColumn FIRST_NAME et à ParameterName emp.

7. Cliquez sur OK.

8. Dans l'inspecteur d'objets, initialisez la propriété Active sous Live Data (Données dynamiques) à la valeur True.

Pour ajouter des contrôles à la fiche

1. Faites glisser et déposez un contrôle zone de saisie sur la fiche.

2. Faites glisser et déposez un bouton sur la fiche.

3. Modifiez la propriété Text du bouton en Get Info.

4. Faites glisser et déposez un contrôle grille de données sur la fiche.

5. Organisez les contrôles tels que vous souhaitez les voir apparaître, en vous assurant que DataGrid est assez long pour afficher quatre champs de données.

Pour configurer la grille de données

1. Sélectionnez la grille de données.

2. Initialisez la propriété DataSource avec le nom de l'ensemble de données (dataSet1 par défaut).

3. Initialisez la propriété DataMember à Table1. Cette opération affiche les noms des colonnes spécifiées dans l'instruction SQL que vous avez entrée dans l'adaptateur de données.

Passage de paramètres dans une RAD Studio pour .NET 2.1 Procédures de bases de données

130

2

Page 137: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour ajouter du code à l'événement Click du bouton

1. Double-cliquez sur le bouton pour ouvrir l'éditeur de code.

2. Dans le bloc de code de l'événement button1_Click, ajoutez le code suivant :

bdpSelectCommand1.Close();/* Cela ferme la commande pour s'assurer que nous transmettrons le paramètre à *//* la bdpSelectCommand la plus actuelle. */ bdpDataAdapter1.Active = false;/* Cela nettoie l'adaptateur de données pour que nous ne conservions pas d'anciennes données */ bdpSelectCommand1.Parameters["emp"].Value = textBox1.Text;/* Cela initialise le paramètre avec toute valeur contenue dans le champ texte. */ bdpDataAdapter1.Active = true;/* Cela réactive l'adaptateur de données pour que les données réactualisées apparaissent dans la grille des données. */Self.bdpSelectCommand1.Close();/* Cela ferme la commande pour s'assurer que nous transmettrons le paramètre à *//* la bdpSelectCommand la plus actuelle. */ Self.BdpDataAdapter1.Active := false;/* Cela nettoie l'adaptateur de données pour que nous ne conservions pas d'anciennes données */ Self.bdpSelectCommand1.Parameters['emp'].Value := textBox1.Text;/* Cela initialise le paramètre avec toute valeur contenue dans le champ texte. */ Self.BdpDataAdapter1.Active := true;/* Cela réactive l'adaptateur de données pour que les données réactualisées apparaissent dans la grille des données. */

Si vous avez modifié les noms de l'un de ces éléments, vous devez mettre à jours ces commandes pour répercuter lesnouveaux noms.

3. Enregistrez votre application.

Pour compiler et exécuter l'application

1. Appuyez sur Maj + F9 pour compiler l'application.

2. Appuyez sur F9 pour exécuter l'application.

3. Tapez un nom John, Robert, Roger, Kim, Terri, Katherine ou Ann dans la zone de saisie.

4. Cliquez sur le bouton. Cela affiche le numéro de l'employé, son prénom, son nom de famille et son salaire dans la grille de données. S'il existe plusieurs personnes avec le même prénom, la grille de données affiche toutes les occurrences des employés ayant ce même prénom.

Voir aussi

Présentation de ADO.NET ( see page 14)

Fournisseurs de données pour Microsoft .NET ( see page 27)

Conception d'une application de bases de données Windows Forms

2.1 Procédures de bases de données RAD Studio pour .NET Utilisation de la prévisualisation

131

2

Page 138: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.1.14 Utilisation de la prévisualisation d'adaptateur de données

CodeGear RAD Studio fournit un outil qui permet à une source de données et à un ensemble de données de communiquer.Vous pouvez utiliser la prévisualisation de l'adaptateur de données pour spécifier les données à déplacer vers et depuisl'ensemble de données sous forme d'instructions SQL ou de procédures stockées appelées pour une opération de lecture oud'écriture d'une base de données.

Pour utiliser la prévisualisation de l'adaptateur de données

1. Après avoir déposé un composant BdpDataAdapter sur le concepteur, cliquez sur le verbe de concepteur, Configurer l'adaptateur de données qui apparaît en bas de l'inspecteur d'objets.

2. Cliquez sur l'onglet Prévisualiser pour afficher la prévisualisation de l'adaptateur de données.

3. Pour limiter le nombre de lignes récupérées, cliquez sur la case à cocher Limiter les lignes.

4. Dans la boîte texte Lignes à extraire, entrez le nombre de lignes que doit contenir l'ensemble de résultats.

5. Cliquez sur Actualiser pour réexécuter la requête et remplir la boîte liste avec le nouveau nombre de lignes.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Conception d'une application de bases de données Windows Forms

Utilisation de l'éditeur de texte de commande ( see page 135)

Utilisation du concepteur éditeur de connexion ( see page 136)

Utilisation du concepteur d'ensemble de données ( see page 141)

Utilisation du concepteur adaptateur de données ( see page 136)

2.1.15 Utilisation de l'éditeur de texte de commande

Pour pouvoir créer un ensemble de données, BdpDataAdapter doit avoir au moins une instruction SQL Select définie pour lapropriété CommandText. Une fois construite, cette instruction apparaît comme la propriété CommandText de l'objetBdpCommand du BdpDataAdapter. Vous pouvez entrer cette instruction Select manuellement ou, à l'aide de l'éditeur de textede commande, construire l'instruction, ainsi que les instructions Update, Insert et Delete, en utilisant une simple opération depointer-cliquer. Ainsi, une fois que vous êtes connecté à une source de données dynamiques, vous pouvez voir le nom destables et colonnes de l'éditeur de texte de commande. Vous pouvez construire l'instruction en choisissant des éléments dansdes listes. En outre, si vous créez votre BdpDataAdapter à l'aide de l'explorateur de données et une connexion dynamique àune source de données, une instruction Select (semblable à select * from nomtable) est automatiquement créée. Vouspouvez utiliser cette instruction pour renvoyer toutes les lignes de la source de données nommée, ou vous pouvez modifierl'instruction avant de générer l'ensemble de données.

Pour générer les commandes

1. Sélectionnez une connexion dans la boîte liste déroulante Connexion. Il doit s'agir d'un objet BdpConnection que vous avez déjà défini. L'objet BdpDataAdapter associé doit également être défini, et la propriété Active de l'ensemble de données doit

Utilisation de l'éditeur de texte de RAD Studio pour .NET 2.1 Procédures de bases de données

132

2

Page 139: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

avoir pour valeur True. Cette opération remplit les boîtes liste Tables et Colonnes avec des données issues de la base de données.

2. Sélectionnez une table dans la boîte liste Tables.

3. Sélectionnez chaque colonne devant apparaître dans les instructions SQL. A mesure que vous sélectionnez les noms de colonne, ils apparaissent dans la boîte texte SQL.

4. Activez la case à cocher en regard de chaque type d'instruction à générer.

5. Cliquez sur le bouton Générer SQL.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Conception d'une application de bases de données Windows Forms

Utilisation du concepteur éditeur de connexion ( see page 136)

Utilisation du concepteur adaptateur de données ( see page 136)

Utilisation du concepteur d'ensemble de données ( see page 141)

Utilisation de la prévisualisation d'adaptateur de données ( see page 134)

2.1.16 Utilisation du concepteur adaptateur de données

L'adaptateur de données contient, au minimum, une instruction SQL Select de la propriété de commande SELECT. Vous pouvezentrer cette instruction vous-même ou, à l'aide du concepteur d'adaptateur de données, construire l'instruction Select, ainsi queles instructions Update, Insert et Delete. L'objet BdpCommandBuilder construit les instructions Update, Insert et Delete enfonction des tables et colonnes que vous avez sélectionnées. Le concepteur d'adaptateur de données utilise une connexiondynamique pour extraire les métadonnées à partir desquelles vous pouvez construire les instructions SQL permettant demanipuler les données à déplacer d'un ensemble de données vers votre base de données.

Pour invoquer les commandes

1. Sélectionnez une connexion dans la boîte liste déroulante Connexion. Il doit s'agir d'un objet BdpConnection que vous avez déjà défini. Cette opération remplit les boîtes liste Tables et Colonnes avec des données issues de la base de données.

2. Sélectionnez une table dans la boîte liste Tables.

3. Sélectionnez chaque colonne devant apparaître dans les instructions SQL.

4. Activez la case à cocher en regard de chaque type d'instruction à générer.

5. Cliquez sur le bouton Générer SQL.

6. Modifiez, au besoin, le texte généré, ou sélectionnez d'autres colonnes et cliquez de nouveau sur Générer SQL.

7. Cliquez sur OK.

Remarque: Les composants de commande sont automatiquement créés en fonction des sélections effectuées dans la boîte de dialogue.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

2.1 Procédures de bases de données RAD Studio pour .NET Utilisation du concepteur adaptateur de

133

2

Page 140: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Conception d'une application de bases de données Windows Forms

Utilisation du concepteur éditeur de connexion ( see page 136)

Utilisation de l'éditeur de texte de commande ( see page 135)

Utilisation du concepteur d'ensemble de données ( see page 141)

Utilisation de la prévisualisation d'adaptateur de données ( see page 134)

2.1.17 Utilisation du concepteur éditeur de connexion

Chaque objet connexion peut prendre en charge plusieurs connexions nommées. Ces connexions peuvent représenter desconnexions vers plusieurs bases de données et types de base de données.

Pour ajouter une nouvelle connexion

1. Sélectionnez un composant BdpConnection existant dans le concepteur ou déposez un composant BdpConnection dans le concepteur pour créer un nouvel objet.

2. Cliquez sur l'onglet du concepteur de composant en bas de l'inspecteur d'objets pour afficher la boîte de dialogue Editeur de connexions.

3. Cliquez sur Ajouter pour afficher la boîte de dialogue d'ajout d'une nouvelle connexion.

4. Sélectionnez un fournisseur dans la boîte liste déroulante Nom du fournisseur.

5. Entrez un nouveau nom pour la connexion dans la boîte texte Nom de connexion.

6. Cliquez sur OK.

7. Entrez les valeurs appropriées pour votre source de données.

8. Cliquez sur OK.

Pour supprimer une connexion

1. Mettez en surbrillance le type de connexion.

2. Cliquez sur Retirer. Une boîte de dialogue de confirmation de la suppression apparaît.

3. Cliquez sur Oui.

Pour renommer une connexion

1. Cliquez avec le bouton droit sur la connexion et choisissez Renommer.

2. Tapez le nouveau nom de la connexion.

3. Cliquez sur OK.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Options de mise en pool des connexions ( see page 8)

Conception d'une application de bases de données Windows Forms

Utilisation du concepteur de texte de commande ( see page 135)

Utilisation du concepteur adaptateur de données ( see page 136)

Utilisation du concepteur d'ensemble de données ( see page 141)

Utilisation du concepteur éditeur de RAD Studio pour .NET 2.1 Procédures de bases de données

134

2

Page 141: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Utilisation de la prévisualisation d'adaptateur de données ( see page 134)

2.1.18 Utilisation des ensembles de données standard

L'ensemble de données standard fournit une représentation en mémoire d'une ou plusieurs tables ou vues extraites d'unesource de données connectée. A cause du codage avec indirection de la structure sous-jacente des données, vous ne pouvezvoir que les noms de colonnes de votre source de données pendant l'exécution. Quand vous générez un ensemble de données,cela extrait tout ce que vous avez spécifié dans votre instruction SELECT dans la boîte de dialogue Configuration de l'adaptateurde données. Vous pouvez limiter vos colonnes en changeant l'instruction SELECT et en créant un nouvel ensemble de données.

Pour utiliser les ensembles de données

1. Générez un ensemble de données.

2. Ajoutez plusieurs tables à un ensemble de données.

3. Définissez les clés primaires pour les tables de données de l'ensemble de données.

4. Définissez les propriétés des colonnes de votre ensemble de données.

5. Définissez les contraintes de vos colonnes.

6. Définissez les relations entre les tables de votre ensemble de données.

Pour générer un ensemble de données

1. Dans l'explorateur de données, sélectionnez une source de données.

2. Explorez l'arborescence, puis glissez-déposez le nom d'une table sur votre fiche Windows Form ou Web Form. Cela crée le BdpDataAdapter et le BdpConnection pour cette source de données et affiche les icônes pour ces objets dans la corbeille de composants.

Remarque: Vous pouvez aussi faire glisser une source de données uniquement sur la fiche plutôt que sur une table, mais dans ce cas, RAD Studio créera uniquement pour vous un objet connexion. Vous devrez toujours créer et configurer l'objet BdpDataAdapter explicitement.

3. Cliquez sur l'icône BdpDataAdapter (nommée bdpDataAdapter1 par défaut) pour la sélectionner.

4. Cliquez sur le verbe de concepteur Configurer l'adaptateur de données dans la zone Verbe de concepteur en bas de l'inspecteur d'objets. Cela affiche la boîte de dialogue Configuration de l'adaptateur de données.

5. Si l'instruction SQL qui est préinitialisée dans la boîte de dialogue est acceptable, cliquez sur l'onglet DataSet (Ensemble de données), autrement modifiez l'instruction SQL, puis cliquez sur l'onglet DataSet (Ensemble de données).

6. Sélectionnez le bouton radio Nouveau DataSet.

Conseil: Vous pouvez accepter le nom par défaut ou changer le nom de l'ensemble de données.

7. Cliquez sur OK pour générer l'ensemble de données. Une icône Ensemble de données apparaît dans la corbeille des composants pour indiquer que votre ensemble de données a été créé.

Remarque: En parcourant le code pour l'ensemble de données dans l'éditeur de code, vous pouvez voir que les colonnes sont définies en tant que colonnes de données génériques, dont les propriétés columnName ont pour valeur le nom de la colonne de la table de base de données. Cela diffère de la façon dont un ensemble de données typé est construit : le nom de l'objet est alors dérivé du nom réel de la colonne de la base de données et non attribué en tant que valeur de propriété.

2.1 Procédures de bases de données RAD Studio pour .NET Utilisation des ensembles de données

135

2

Page 142: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour ajouter plusieurs tables à un ensemble de données

1. Dans l'explorateur de données, sélectionnez une source de données.

2. Explorez l'arborescence, puis glissez-déposez les noms de tables multiples, une par une, sur votre fiche Windows Form ou Web Form. Cela crée le BdpDataAdapter pour chaque table et un BdpConnection pour cette source de données, et affiche les icônes pour ces objets dans la corbeille de composants.

3. Cliquez sur l'icône BdpDataAdapter (nommée bdpDataAdapter1 par défaut) pour la sélectionner.

4. Cliquez sur le verbe de concepteur Configurer l'adaptateur de données dans la zone Verbe de concepteur en bas de l'inspecteur d'objets. Cela affiche la boîte de dialogue Configuration de l'adaptateur de données.

5. Si l'instruction SQL qui est préinitialisée dans la boîte de dialogue est acceptable, cliquez sur l'onglet DataSet (Ensemble de données), autrement modifiez l'instruction SQL, puis cliquez sur l'onglet DataSet (Ensemble de données).

6. Sélectionnez le bouton radio Nouveau DataSet.

Conseil: Vous pouvez accepter le nom par défaut ou changer le nom de l'ensemble de données.

7. Cliquez sur OK pour générer l'ensemble de données. Une icône Ensemble de données apparaît dans la corbeille des composants pour indiquer que votre ensemble de données a été créé.

8. Répétez la configuration de l'adaptateur de données pour chacun des autres adaptateurs de données, mais sélectionnez DataSet existant dans l'onglet DataSet (Ensemble de données) en générant les ensembles de données pour tous les adaptateurs de données, sauf pour le premier que vous configurez. Cela génère une table de données pour chaque adaptateur de données et les stocke toutes dans un seul ensemble de données.

Remarque: Il est aussi possible de générer des ensembles de données multiples, soit un par adaptateur de données, soit des combinaisons de tables de données.

Pour définir les clés primaires de chaque table de données dans l'ensemble de données

1. Sélectionnez chaque adaptateur de données tour à tour et positionnez la propriété Active sous Données dynamiques dans l'inspecteur d'objets à True.

2. Sélectionnez l'ensemble de données dans la corbeille de composants.

3. Dans l'inspecteur d'objets, dans la propriété Tables, cliquez sur le bouton points de suspension. Cela affiche l'éditeur de collection de tables. Si vous avez positionné toutes les propriétés Active des adaptateurs de données à True, l'éditeur de collection de tables contiendra un membre pour chaque table de données stockée dans l'ensemble de données correspondant.

4. Sélectionnez une table dans la liste des membres.

5. Dans le champ Clé primaire de la table des propriétés, cliquez sur l'élément DataColumn[] pour afficher une liste de noms de colonnes.

6. Cochez la case grise à côté du nom des colonnes qui composent la clé primaire. Le numéro 1 apparaît dans la case à cocher grise lorsqu'elle est sélectionnée.

7. Définissez les propriétés et les contraintes des colonnes pour vos colonnes de clés primaires.

Pour définir les propriétés de colonnes pour vos colonnes d'ensembles de données

1. Dans l'éditeur de collections de tables, cliquez sur l'élément (Collections) à côté de Colonnes dans le volet Propriétés des tables. Cela affiche l'éditeur de Collections de colonnes pour la colonne sélectionnée.

2. Définissez les valeurs de propriétés pour les colonnes individuelles.

3. Répétez la procédure pour chaque colonne.

Pour définir des contraintes pour vos colonnes

1. Dans l'éditeur de collection de tables, cliquez sur l'élément (Collections) à côté de Contraintes dans le volet Propriétés de

Utilisation des ensembles de données RAD Studio pour .NET 2.1 Procédures de bases de données

136

2

Page 143: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

table. Cela affiche l'éditeur de collection de contraintes pour la colonne sélectionnée.

2. Cliquez sur Ajouter pour ajouter soit une contrainte d'unicité, soit une contrainte de clé primaire.

3. Si vous avez sélectionné une contrainte d'unicité, la boîte de dialogue Contrainte Unique apparaît. Sélectionnez un ou plusieurs noms de colonnes. Vous pouvez aussi cocher la case Clé primaire si vous voulez définir la colonne en tant que clé primaire. En définissant la contrainte d'unicité sur une colonne, vous imposez une règle selon laquelle toutes les valeurs de la colonne doivent être uniques. Cela est utile pour les colonnes qui contiennent des numéros d'identification, tels que des numéros d'employés, des numéros de sécurité sociale, des numéros de pièces, etc.

Remarque: Si vous avez déjà défini une relation clé primaire/clé étrangère entre deux tables, il est possible que vous ne soyez pas capable de définir une colonne en tant que clé primaire, car elle pourrait avoir été déjà définie comme clé primaire, ou à cause d'un conflit avec une autre relation.

4. Si vous avez sélectionné Contrainte de clé étrangère, la boîte de dialogue Contrainte de clé étrangère apparaît. Sélectionnez les tables que vous voulez mettre en relation, en les choisissant dans les listes déroulantes Tables parent et Tables enfant.

5. Cliquez sur Colonnes clé pour sélectionner la colonne de clé primaire dans la liste.

6. Cliquez sur Colonnes clé étrangère pour sélectionner la colonne clé étrangère dans la liste.

Avertissement: Les colonnes clé primaire et clé étrangère doivent avoir le même type de données et contenir des valeurs uniques. Les colonnes qui peuvent contenir des doublons ne sont pas un bon choix pour des clés primaires ou étrangères. Il est fréquent de choisir le même nom de colonne pour les deux tables de votre relation clé primaire-étrangère.

Pour définir les relations entre tables dans l'ensemble de données

1. Une fois que vous avez défini les clés primaires pour chaque table de données, sélectionnez l'ensemble de données dans la corbeille de composants si ce n'est pas déjà fait.

2. Cliquez sur le bouton points de suspension à côté de la propriété Relations dans l'inspecteur d'objets. Cela affiche la boîte de dialogue Editeur de collection de relations vide.

3. Cliquez sur Ajouter. Cette opération affiche la boîte de dialogue Editeur de relation.

4. Dans les listes déroulantes Table parent et Table enfant, choisissez les tables que vous voulez mettre en relation.

5. Cliquez sur le champ Colonnes clé pour choisir une colonne de clé primaire dans la liste des noms de colonnes de la table parent.

6. Cliquez dans le champ Colonnes clé étrangère pour choisir une colonne de clé étrangère dans la liste des noms de colonnes de la table enfant.

Remarque: Si vous avez déjà effectué cette procédure pendant que vous définissiez les contraintes pour vos tables de données, vous allez peut-être découvrir que toutes les valeurs appropriées sont déjà définies.

Avertissement: Les colonnes clé primaire et clé étrangère doivent avoir le même type de données et contenir des valeurs uniques. Les colonnes qui peuvent contenir des doublons ne sont pas un bon choix pour des clés primaires ou étrangères. Il est fréquent de choisir le même nom de colonne pour les deux tables de votre relation clé primaire-étrangère.

7. Cliquez sur OK.

8. Répétez la procédure pour définir des relations supplémentaires entre les mêmes tables de données.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Conception d'une application de bases de données Windows Forms

Utilisation du concepteur de texte de commande ( see page 135)

2.1 Procédures de bases de données RAD Studio pour .NET Utilisation des ensembles de données

137

2

Page 144: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Utilisation du concepteur éditeur de connexion ( see page 136)

Utilisation du concepteur adaptateur de données ( see page 136)

Utilisation de la prévisualisation d'adaptateur de données ( see page 134)

Utilisation d'ensembles de données typés ( see page 141)

2.1.19 Utilisation d'ensembles de données typés

Les ensembles de données typés offrent certains avantages sur les ensembles de données standard. D'une part, ils sont dérivésd'une hiérarchie XML de la table de base de données cible. Le fichier XML contenant la description de l'ensemble de donnéespermet au système de fournir des possibilités étendues d'achèvement du code non disponibles lorsqu'on utilise des ensemblesde données standard. Le fait de typer fortement les méthodes, propriétés et événements de l'ensemble de données permet desvérifications de type au moment de la compilation et peut apporter une amélioration des performances dans certainesapplications.

Pour créer un ensemble de données fortement typé

1. Dans l'explorateur de base de données, sélectionnez la source de données que vous voulez utiliser.

2. Glissez-déposez sur votre fiche le nom de la table de base de données que vous voulez utiliser. Cela affiche une icône BdpConnection et une icône BdpDataAdapter dans la corbeille de composants.

3. Sélectionnez le BdpDataAdapter.

4. Cliquez sur le verbe de concepteur Configurer l'adaptateur de données dans la zone Verbe de concepteur en dessous de l'inspecteur d'objets. Cela affiche la boîte de dialogue Configuration de l'adaptateur de données.

5. Modifiez l'instruction SQL préinitialisée si vous le désirez.

6. Cliquez sur OK.

Remarque: Ne créez pas un ensemble de données en sélectionnant l'onglet DataSet (Ensemble de données)

dans la boîte de dialogue Configurer l'adaptateur de données. Cet onglet concerne uniquement les ensembles de données standard.

7. Cliquez sur le verbe de concepteur Générer l'ensemble de données typé dans la zone Verbe de concepteur en dessous de l'inspecteur d'objets. Cette opération affiche la boîte de dialogue Générer l'ensemble de données.

8. Sélectionnez la table de base de données que vous voulez utiliser.

9. Cliquez sur OK. Cela crée une instance de DataSet typé et affiche une icône <nom DataSet>1 dans la corbeille de composants. Par exemple, si votre ensemble de données est DataSet1, la nouvelle instance sera nommée dataSet11. Vous constaterez également qu'un fichier XML .xsd et un nouveau fichier de programme apparaissent dans le gestionnaire de projet sous votre projet.

Pour modifier l'apparence des colonnes

1. Après avoir créé un nouvel ensemble de données typé, faites glisser un composant DataGrid sur votre fiche.

2. Initialisez la propriété Datasource pour qu'elle pointe sur l'ensemble de données typé et la propriété DataMember pour qu'elle pointe sur la table cible.

3. Cliquez sur l'entrée (Collection) située à côté de la propriété TableStyles. Cela affiche l'éditeur de collection DataGridTableStyle.

4. Cliquez sur Ajouter pour ajouter un nouveau membre à la liste des membres.

5. Cliquez sur la liste déroulante située à côté de la propriété MappingName.

6. Cliquez sur l'entrée (Collection) située à côté de la propriété GridColumnStyles. Cela affiche l'éditeur de collection

Utilisation d'ensembles de données typés RAD Studio pour .NET 2.1 Procédures de bases de données

138

2

Page 145: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

DataGridColumnStyle.

7. Cliquez sur Ajouter pour ajouter un nouvel élément à la liste des membres.

Remarque: Par défaut, l'élément est créé en tant que colonne de champ texte. Vous pouvez aussi développer le bouton Ajouter

et sélectionner le champ BoolColumn si vous voulez un booléen.

8. Cliquez sur la propriété MappingName, sélectionnez la colonne que vous voulez afficher dans votre grille, puis changez toute propriété supplémentaire voulue, y compris le titre qui apparaîtra comme titre de colonne dans la grille d'exécution.

9. Cliquez deux fois sur OK.

Remarque: Quand vous construisez et lancez l'application, seules les colonnes que vous avez définies explicitement en suivant les étapes de cette procédure apparaissent.

Pour modifier la structure de l'ensemble de données

1. Dans le gestionnaire de projet, double-cliquez sur le fichier .xsd qui contient la définition XML de votre ensemble de données.

2. Modifiez le fichier XML en fonction de la structure que vous souhaitez donner à l'ensemble de données. Vous pouvez modifier les types de données, les noms et tout ce qui a trait à la structure.

3. Si le fichier de code du programme (<dataset>.cs ou <dataset>.pas) est ouvert dans l'éditeur de code, refermez-le maintenant.

4. Choisissez Projet Compiler pour recompiler le fichier .xsd. Si vous rouvrez le fichier code du programme, vous vous rendrez compte que le fichier contient les modifications que vous avez apportées au XML dans le fichier .xsd.

Pour définir la propriété Namespace d'un ensemble de données

1. Dans le gestionnaire de projet, double-cliquez sur le fichier .xsd qui contient la définition XML de votre ensemble de données.

2. Recherchez la propriété targetNamespace.

3. Remplacez le texte suivant par un espace de nommage approprié :

http://www.changeme.now/DataSet1.xsd

4. Si le fichier de code du programme (<dataset>.cs ou <dataset>.pas) est ouvert dans l'éditeur de code, refermez-le maintenant.

5. Choisissez Projet Compiler pour recompiler le fichier .xsd. Si vous rouvrez le fichier code du programme, vous vous rendrez compte que la classe InitClass() contient à présent le nouvel espace de nommage.

Voir aussi

Présentation de ADO.NET ( see page 14)

Concepteurs de composants ADO.NET ( see page 22)

Conception d'une application de bases de données Windows Forms

Utilisation de l'éditeur de texte de commande ( see page 135)

Utilisation du concepteur éditeur de connexion ( see page 136)

Utilisation du concepteur adaptateur de données ( see page 136)

Utilisation de la prévisualisation d'adaptateur de données ( see page 134)

Utilisation des ensembles de données standard ( see page 137)

Utilisation des annotations avec un ensemble de données typé

2.1 Procédures de bases de données RAD Studio pour .NET Connexion à une base de données à l'aide

139

2

Page 146: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.1.20 Connexion à une base de données à l'aide du framework de pilote dbExpress

Cette procédure vous indique comment utiliser le framework de pilote dbExpress pour établir la connexion à une base dedonnées et lire ses enregistrements. Dans le code exemple, les fichiers ini dbExpress contiennent toutes les informationsrelatives à la connexion de base de données particulière, telles que le pilote, le nom d'utilisateur, le mot de passe, etc.

Pour établir la connexion à une base de données et lire ses enregistrements

1. Configurez le fichier ini de connexions avec les informations relatives à la base de données auquelle vous allez vous connecter. Ce paramétrage comprend le nom du pilote, le nom de l'utilisateur, le mot de passe, etc.

2. Obtient un objet TDBXConnectionFactory renvoyé par TDBXConnectionFactory.GetConnectionFactory.

3. Obtient un objet TDBXConnection renvoyé par TDBXConnectionFactory.GetConnection.

4. Ouvrez la connexion de base de données en appelant TDBXConnection.Open sur l'instance de TDBXConnection.

5. Obtient un objet TDBXCommand en appelant TDBXConnection.CreateCommand sur l'instance de TDBXConnection.

6. Définissez la propriété Text de TDBXCommand sur la commande SQL désirée. Appelez TDBXCommand.Prepare sur l'instance de TDBXCommand.

7. Exécutez la requête SQL en appelant TDBXCommand.ExecuteQuery, qui renvoie une instance de TDBXReader.

8. Lisez le premier enregistrement de la base de données en appelant TDBXReader.Next. Appelez cette méthode pour récupérer les enregistrements suivants de la base de données.

9. Récupérez toutes les informations souhaitées de la base de données. Par exemple, TDBXReader.GetColumnCount renvoie le nombre de colonnes de la base de données. Les propriétés de TDBXReader, ValueType et Value, contiennent le type de données et la valeur pour un numéro de colonne donné dans l'enregistrement en cours.

// Cet exemple établit la connexion à une base de données avec les fichiers ini.// Ces fichiers doivent être configurés pour la base de données.// Lorsque la connexion est établie, l'exemple lit les valeurs et affiche// les valeurs ANSI des 100 premiers enregistrements dans une zone de liste. // Obtient un TDBXConnection à l'aide d'un TDBXConnectionFactory.// ConnectionName = section dans le fichier ini des connexions.class function TForm1.BuildConnectionFromConnectionName( ConnectionName: WideString): TDBXConnection;var ConnectionFactory: TDBXConnectionFactory; ConnectionProps: TDBXProperties;begin ConnectionFactory := TDBXConnectionFactory.GetConnectionFactory; ConnectionProps := ConnectionFactory.GetConnectionProperties(ConnectionName); Result := ConnectionFactory.GetConnection(ConnectionProps, ConnectionProps.Values[TDBXPropertyNames.UserName], ConnectionProps.Values[TDBXPropertyNames.Password] );end; procedure Connect;var connection: TDBXConnection; command: TDBXCommand; reader: TDBXReader; value: TDBXValue; valueType: TDBXValueType; colCountStr: string; i, j: Integer;

Connexion à une base de données à l'aide RAD Studio pour .NET 2.1 Procédures de bases de données

140

2

Page 147: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

numCols: integer; ListBox1: TListBox; const sqlCommand = 'select * from employee'; begin // Ouvrir la connexion à la base de données. connection := BuildConnectionFromConnectionName('ConnectionName'); connection.Open; // Obtenir la commande command := connection.CreateCommand(); command.Text := sqlCommand; // Exécuter la requête command.Prepare; reader := command.ExecuteQuery; // Obtenir les valeurs de la base de données if reader.Next then begin numCols := reader.GetColumnCount; Str(numCols, colCountStr); ListBox1.Items.Add('Nombre de colonnes = ' + colCountStr); j := 1; repeat for i := 0 to reader.GetColumnCount - 1 do begin valueType := reader.ValueType[i]; if valueType.DataType = TDBXDataTypes.AnsiStringType then begin value := reader.Value[i]; ListBox1.Items.Add(valueType.Name + ' = ' + value.GetString); end else ListBox1.Items.Add(valueType.Name); end; Inc(j); until (j > 100) or not reader.Next; reader.Next; end; // Libérer les ressources command.Free;end;

2.1.21 Construction d'une application de base de données distribuée

La gestion distante de données est fondamentale dans le cadre du développement d'applications de bases de donnéesdistribuées. La technologie distante .NET offre un framework souple et extensible pour les communications inter-processus. Lagestion distante .NET permet d'interagir avec des objets situés dans des domaines d'applications différents, dans des processusdifférents exécutés sur la même machine ou sur des machines différentes d'un même réseau.

A l'aide des composants RemoteServer et RemoteConnection, vous pouvez aisément migrer une application client/serveurutilisant des composants DataHub et DataSync vers une application distante d'ensemble de données multi-niveau.

2.1 Procédures de bases de données RAD Studio pour .NET Construction d'une application de base de

141

2

Page 148: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

RemoteServer implémente IDataService et se présente en tant qu'objet SAO (Server Activated Object) singleton. Côté client, lespropriétés RemoteConnection forment l'URL de connexion au RemoteServer. Channel indique le protocole à utiliser (TCP/IP ouHTTP), Port indique le port sur lequel le RemoteServer écoute les requêtes, et URI désigne l'identificateur de ressource uniquedu RemoteServer.

La construction d'une application distribuée comportant des composants distants se compose des étapes suivantes :

• Construire côté serveur une application Windows Forms possédant une ou plusieurs connexions à un fournisseur de données BDP.NET, un composant DataSync destiné à collecter les connexions et définir le comportement de validation, et un composant RemoteServer afin de définir le protocole et l'URI de communication avec les clients

• Construire côté client une application Windows Forms avec un composant RemoteConnection dont les propriétés indiquent la connexion à l'application serveur, un composant DataHub de transmission de données vers et depuis un DataSet, ainsi qu'un composant DataGrid pour l'affichage des données.

Remarque: Le composant RemoteServer est hébergé dans des applications Windows Forms sans nécessiter d'ajout manuel de code.

Pour créer l'application côté serveur

1. Choisissez Fichier Nouveau Application Windows Forms pour Delphi pour .NET ou C#. Le concepteur Windows Forms apparaît.

2. Choisissez Voir Explorateur de données pour accéder à l'explorateur de données, et développez l'arborescence de l'explorateur de données pour exposer les fournisseurs et les tables de base de données à utiliser. Pour développer les noeuds de fournisseur, vous devez disposer d'une connexion dynamique. Si vous ne disposez pas d'une connexion dynamique, vous devrez probablement modifier la chaîne de connexion.

3. Faites glisser et déposez les tables d'un ou de plusieurs fournisseurs sur la fiche. Pour chaque table que vous déposez sur la fiche, un BdpConnection et un BdpDataAdapter apparaissent dans la corbeille de composants. Si vous ajoutez plusieurs tables du même fournisseur, vous pouvez conserver pour ce fournisseur un seul BdpConnection (et supprimer tous les autres).

4. Configurez chaque composant BdpDataAdapter. Il est inutile de définir la propriété Active ou DataSet, car le DataSet sera rempli par le composant DataHub côté client.

5. Faites glisser un composant DataSync sur la fiche à partir de la catégorie Fournisseur de données Borland de la palette d'outils, et configurez les propriétés de DataSync suivantes dans l'inspecteur d'objets :

Propriété Description

Providers Indique une collection de DataProviders à utiliser en tant que sources de données. Cliquez sur le boutonpoints de suspension pour ouvrir la boîte de dialogue Editeur de collection DataProvider et ajoutez unDataProvider pour chaque table à fournir et à résoudre.

CommitBehavior Indique la logique (Atomic, Individual ou ForceIndividual) pour la gestion des échecs lors de la résolution.

6. Faites glisser un composant RemoteServer sur la fiche à partir de la catégorie Fournisseur de données Borland de la palette d'outils, et configurez les propriétés de RemoteServer suivantes dans l'inspecteur d'objets :

Propriété Description

DataSync Indique le DataSync nécessitant la gestion distante de données. Sélectionnez le DataSync dans la listedéroulante de l'inspecteur d'objets.

AutoStart Indique s'il est nécessaire de démarrer automatiquement le serveur distant lors de l'exécution de l'application.Définissez cette propriété par True.

ChannelType Indique le type de canal : Http (HTTP) ou Tcp (TCP/IP). Sélectionnez le type de canal dans la liste déroulantede l'inspecteur d'objets.

Port Indique le port que le serveur distant écoute. Entrez une nouvelle valeur ou acceptez la valeur du port pardéfaut, 8000.

URI Indique l'URI du serveur distant. Par défaut, la propriété URI contient la même valeur que la propriété Name.

Construction d'une application de base de RAD Studio pour .NET 2.1 Procédures de bases de données

142

2

Page 149: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

7. Choisissez Exécuter Exécuter pour lancer l'application côté serveur.

Pour créer l'application côté client

1. Choisissez Fichier Nouveau Application Windows Forms pour Delphi pour .NET ou C#. Le concepteur Windows Forms apparaît.

2. Faites glisser un composant DataSet vers votre fiche à partir de la catégorie Composants de données de la palette d'outils.

3. Faites glisser un composant DataGrid sur la fiche à partir de la catégorie Contrôles de données de la palette d'outils, puis définissez la propriété DataSource du DataGrid par le nom du composant DataSet ajouté (dataSet1, par exemple).

4. Faites glisser un composant RemoteConnection sur la fiche à partir de la catégorie Fournisseur de données Borland de la palette d'outils, et configurez les propriétés de RemoteConnection suivantes dans l'inspecteur d'objets :

Propriété Description

ProviderType Indique le type de fournisseur publié par le serveur distant. Dans le cas présent, la propriété doit être réglée surBorland.Data.Provider.DataSync. Si le serveur distant s'exécute, vous pouvez sélectionner cette valeur dansla liste déroulante. Sinon, vous devez entrer la valeur.

ChannelType Indique le type de canal : Http (HTTP) ou Tcp (TCP/IP). Sélectionnez le type de canal dans la liste déroulantede l'inspecteur d'objets. Celui-ci doit correspondre à la valeur utilisée pour le serveur distant.

Host Nom ou adresse IP du serveur distant.

Port Indique le port que le serveur distant écoute. Entrez une nouvelle valeur ou acceptez la valeur du port pardéfaut, 8000. Celui-ci doit correspondre à la valeur utilisée pour le serveur distant.

URI Indique l'URI du serveur distant. Ceci doit correspondre à la propriété URI du composant RemoteServer dansl'application du serveur distant.

5. Faites glisser un composant DataHub sur la fiche à partir de la catégorie Fournisseur de données Borland de la palette d'outils, et configurez les propriétés de DataHub suivantes dans l'inspecteur d'objets :

Propriété Description

DataPort Indique la source de données. Indique la propriété DataPort du composant RemoteConnection ajouté(RemoteConnection1, par exemple).

DataSet Indique le DataSet destiné à recevoir les données extraites de la source de données spécifiée. Définissez cettepropriété par le DataSet ajouté (dataSet1, par exemple).

6. Choisissez Exécuter Exécuter. L'application se compile et affiche un Windows Form comportant un composant DataGrid.

Voir aussi

Présentation de ADO.NET ( see page 14)

Fournisseurs de données pour .NET ( see page 27)

Concepteurs de composants ADO.NET ( see page 22)

Construction d'une application de base de données résolvant plusieurs tables ( see page 130)

2.1 Procédures de bases de données RAD Studio pour .NET Construction d'une application de base de

143

2

Page 150: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.2 Procédures d'applications interopérables Cette section propose des informations relatives à la construction d'applications interopérables.

Rubriques

Nom Description

Ajout d'une référence J2EE ( see page 148) RAD Studio fournit un moyen de générer un assemblage .NET à partir d'une archive J2EE. Après la création de l'assemblage, une référence est automatiquement ajoutée à votre projet.

Ajout d'une référence à un serveur COM ( see page 148)

2.2.1 Ajout d'une référence J2EE

RAD Studio fournit un moyen de générer un assemblage .NET à partir d'une archive J2EE. Après la création de l'assemblage,une référence est automatiquement ajoutée à votre projet.

Pour ajouter une référence J2EE

1. Dans le gestionnaire de projet, cliquez avec le bouton droit sur le noeud projet de niveau supérieur et choisissez Ajouter une référence J2EE. La boîte de dialogue de sélection d'une archive J2EE s'affiche.

2. Dans cette boîte de dialogue, naviguez jusqu'au fichier .jar ou .ear )à partir duquel s'effectuera la génération de l'assemblage .NET.

3. Dans la boîte de dialogue de sélection d'une archive J2EE, cliquez sur Ouvrir. La boîte de dialogue de sélection des EJBs dans une liste s'affiche.

4. Dans cette boîte de dialogue, vous pouvez générer un assemblage pour tous les EJBs ou pour des EJBs individuels de l'archive.

2.2.2 Ajout d'une référence à un serveur COM

Pour ajouter une référence à un serveur COM

1. Dans le gestionnaire de projet, cliquez avec le bouton droit de la souris sur le noeud de l'arborescence Références de votre projet, puis sélectionnez Ajouter une référence.

2. Dans la boîte de dialogue Ajout d'une référence, cliquez sur l'onglet Imports COM. L'EDI va parcourir la base de registres système pour rechercher toutes les bibliothèques de types et tous les serveurs COM recensés.

3. Sélectionnez les éléments que vous souhaitez référencer dans votre projet.

Conseil: Vous pouvez sélectionner individuellement plusieurs éléments de la liste en maintenant enfoncée la touche CTRL

pendant que vous cliquez sur chaque élément. Pour sélectionner une plage d'éléments, sélectionnez le premier élément, puis maintenez la touche MAJ enfoncée pendant que vous sélectionnez le deuxième élément.

4. Cliquez sur le bouton Ajouter référence. Tous les éléments que vous avez sélectionnés apparaissent dans la liste Nouvelles références dans la partie inférieure de la boîte de dialogue.

Conseil: Vous pouvez supprimer des éléments de la liste Nouvelles références

. Sélectionnez les éléments, puis cliquez sur le bouton Retirer.

Ajout d'une référence à un serveur COM RAD Studio pour .NET 2.2 Procédures d'applications

144

2

Page 151: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

5. Si le composant COM que vous souhaitez référencer n'apparaît pas dans la liste, cliquez sur le bouton Parcourir pour ajouter une référence explicite à ce composant.

6. Dans la boîte de dialogue de sélection d'une référence, naviguez jusqu'au dossier contenant le composant.

7. Sélectionnez-le, puis cliquez sur Ouvrir.

8. Lorsque vous avez sélectionné tous les serveurs COM que vous vouliez ajouter, cliquez sur OK.

Lorsque vous avez cliqué sur le bouton OK dans la boîte de dialogue Ajout d'une référence, l'EDI génère des assemblages d'interopérabilité pour chaque élément sélectionné, à moins qu'un assemblage PIA (Primary Interop Assembly) n'ait déjà été créé. Ces assemblages s'appellent Interop.NomBiblio.dll, où NomBiblio est le nom de la bibliothèque de types du composant (notez que ce nom peut différer du nom du fichier DLL du contrôle). Les assemblages générés sont stockés dans un dossier appelé COMImports, dans le répertoire de votre projet. Chaque assemblage d'interopérabilité généré est paramétré Copie locale, ce qui signifie qu'à la construction du projet, l'assemblage est automatiquement copié dans le dossier cible de construction.

Il est possible que le dossier COMImports n'existe pas, par exemple si vous déplacez le projet sur une nouvelle machine ou si vous le supprimez de la machine où il réside. Si le dossier COMImports n'existe pas lorsque le projet est rouvert, l'EDI le recrée et régénère les assemblages d'interopérabilité. Pour que cela fonctionne, il faut d'abord recenser les serveurs COM sur la machine sur laquelle le projet réside.

S'il existe un assemblage PIA pour le serveur COM, l'EDI ne génère pas de nouvel assemblage d'interopérabilité. Une référence à l'assemblage PIA est simplement ajoutée et le paramètre Copie locale est désactivé, car les assemblages PIA sont déployés dans le cache de l'assemblage global.

Remarque: Pour voir le paramètre Copie locale sur un assemblage référencé, cliquez avec le bouton droit de la souris sur l'assemblage dans le Gestionnaire de projet

. Le paramètre Copie locale est un élément du menu contextuel. Le projet conservera toujours les références aux assemblages d'interopérabilité, même si le dossier COMImports n'a pas pu être régénéré. Dans ce cas, le Gestionnaire de projet mettra en évidence l'assemblage référencé pour indiquer qu'il n'existe pas actuellement sur la machine.

Voir aussi

Présentation de COM Interop ( see page 40)

Ajout d'un contrôle ActiveX à la palette des outils

2.2 Procédures d'applications RAD Studio pour .NET Ajout d'une référence à un serveur COM

145

2

Page 152: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.3 Procédures de modélisation Cette section propose des informations relatives à la modélisation des applications.

Rubriques

Nom Description

Exportation d'un diagramme de visualisation de code en image ( see page 150) Vous pouvez exporter un diagramme de visualisation de code en image puis ouvrir l'image dans n'importe quel visualiseur graphique qui prend en charge le format de fichier bitmap Windows (.bmp).

Importation et exportation d'un modèle avec XMI (XML Metadata Interchange) ( see page 151)

RAD Studio prend en charge XMI version 1.1. Pour davantage d'informations sur XMI ou pour télécharger la spécification complète, consultez le lien sur le site Web de l'OMG à la fin de ce document.

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code ( see page 152)

Visualisation du code permet de visualiser et de parcourir la structure logique de l'application, à l'inverse de la vue par fichiers du gestionnaire de projet.

Utilisation de la fenêtre Vue globale ( see page 153) Les vastes modèles de production ne tiendront pas en totalité dans la fenêtre de diagramme. Pour visualiser le diagramme, vous pouvez utiliser la fenêtre Vue globale.

2.3.1 Exportation d'un diagramme de visualisation de code en image

Vous pouvez exporter un diagramme de visualisation de code en image puis ouvrir l'image dans n'importe quel visualiseurgraphique qui prend en charge le format de fichier bitmap Windows (.bmp).

Pour exporter un diagramme vers une image

1. Ouvrez un projet.

2. Cliquez sur l'onglet Vue modèle.

3. Cliquez avec le bouton droit sur le noeud diagramme de l'arborescence et choisissez Exporter dans une image

4. Réglez les paramètres de zoom, si nécessaire.

5. Cliquez sur Enregistrer.

6. Nommez l'image et cliquez sur Enregistrer.

Voir aussi

Fonctionnalités UML dans Delphi pour .NET

Présentation des outils de modélisation intégrés

Présentation de la visualisation de code ( see page 57)

Importation et exportation d'un modèle avec XMI ( see page 151)

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code ( see page 152)

Utilisation de la fenêtre Vue globale ( see page 153)

Ajout de colonnes à un composant

Utilisation de l'éditeur d'expression OCL

Importation et exportation d'un modèle RAD Studio pour .NET 2.3 Procédures de modélisation

146

2

Page 153: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.3.2 Importation et exportation d'un modèle avec XMI (XML Metadata Interchange)

RAD Studio prend en charge XMI version 1.1. Pour davantage d'informations sur XMI ou pour télécharger la spécificationcomplète, consultez le lien sur le site Web de l'OMG à la fin de ce document.

Pour importer un modèle au format XMI

1. Exportez le modèle depuis l'outil de modélisation en utilisant le format XMI. Si vous exportez depuis Rational Rose, choisissez XMI version 1.1 en utilisant l'extension Unisys.

2. Dans RAD Studio, choisissez Fichier Nouveau Autre.

3. Sélectionnez Application Windows Forms ECO dans la boîte de dialogue Nouveaux éléments.

Remarque: Au démarrage de la nouvelle application ECO, vous pouvez utiliser Delphi pour .NET ou C#.

4. Ouvrez la fenêtre Vue modèle, cliquez avec le bouton droit sur le noeud projet de niveau supérieur dans l'arborescence, puis choisissez Importer le projet à partir de XMI.

5. Dans la boîte de dialogue Importation XMI, cliquez sur le bouton Parcourir pour sélectionner le fichier XMI exporté à l'étape précédente.

6. Cliquez sur le bouton Importer dans la boîte de dialogue Importation XMI.

RAD Studio génère le code source Delphi ou C# gérant ECO pour les éléments du modèle dans les diagrammes de classes du fichier XMI.

Pour exporter un modèle au format XMI

1. Ouvrez la fenêtre Vue modèle, cliquez avec le bouton droit sur le noeud projet de niveau supérieur dans l'arborescence, puis choisissez Exporter le projet vers XMI.

2. Dans la boîte de dialogue Exportation XMI, sélectionnez la version XMI et le codage XMI appropriés pour l'outil que vous utiliserez au final pour ouvrir le fichier modèle.

3. Cliquez sur le bouton Parcourir pour naviguer vers le dossier de destination.

4. Entrez un nom de fichier cible pour le fichier exporté.

5. Cliquez sur le bouton Exporter dans la boîte de dialogue Exportation XMI.

Voir aussi

Site Web de l'OMG (Object Management Group)

Fonctionnalités UML dans Delphi pour .NET

Présentation des outils de modélisation intégrés

Présentation de la visualisation de code ( see page 57)

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code ( see page 152)

Utilisation de la fenêtre Vue globale ( see page 153)

Ajout de colonnes à un composant

Utilisation de l'éditeur d'expression OCL

2.3 Procédures de modélisation RAD Studio pour .NET Utilisation de la fenêtre Vue modèle et du

147

2

Page 154: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.3.3 Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code

Visualisation du code permet de visualiser et de parcourir la structure logique de l'application, à l'inverse de la vue par fichiers dugestionnaire de projet.

Pour afficher la fenêtre Vue modèle

1. Démarrez un nouveau projet ou chargez un projet existant.

2. Sélectionnez Voir Vue modèle. La fenêtre Vue modèle qui apparaît représente les éléments de votre projet dans une vue arborescente.

Utilisation de la fenêtre Vue modèle avec les diagrammes de visualisation du code

Pour... ...Action

Afficher ou masquer des élémentsimbriqués dans une interface, une classe ouun package UML

Cliquez sur le signe plus (+) ou moins (-) en regard de l'icône de l'élément selonque vous souhaitez afficher ou masquer les éléments imbriqués.

Afficher un diagramme Visualisation ducode pour un espace de nommage .NET,ou une unité Delphi

Développez l'icône espace de nommage ou unité ( ) et double-cliquez surl'icône diagramme ( ) dans l'arborescence vue modèle.

Afficher un diagramme Visualisation ducode pour le projet entier

Développez l'icône du projet ( ) dans l'arborescence Vue modèle, puisdouble-cliquez sur l'icône du diagramme.

Ouvrir l'éditeur de code source sur unélément précis de l'arborescence Vuemodèle

Cliquez avec le bouton droit sur l'élément et choisissez Ouvrir le source. Notezqu'un espace de nommage .NET peut couvrir plusieurs fichiers source. Il n'estpas possible d'ouvrir un fichier source pour un espace de nommage directementdans l'arborescence Vue modèle.

Ouvrir le diagramme Visualisation du codesur un élément précis de l'arborescenceVue modèle

Cliquez avec le bouton droit sur l'élément et choisissez Afficher l'élément sur lediagramme.

Le diagramme Visualisation du code comporte un ensemble de fonctions permettant d'afficher des modèles importants,d'afficher ou de masquer des attributs et des propriétés, etc., et de passer de la représentation graphique du diagrammedirectement au code source de l'élément concerné.

Utilisation du diagramme Visualisation du code

Pour... ...Action

Réorganiser les éléments sur lediagramme

Cliquez sur l'élément et faites-le glisser vers un nouvel emplacement.

Afficher ou masquer les attributs, lesopérations, les propriétés et les typesimbriqués d'un élément sur lediagramme

Cliquez sur le signe plus (+) en regard de la catégorie (attributs, opérations, etc.) àafficher. Cliquez sur le signe moins (-) pour masquer les éléments d'une catégorieprécise.

Disposer automatiquement leséléments sur le diagramme

Cliquez avec le bouton droit n'importe où dans la fenêtre du diagrammeVisualisation du code, puis choisissez Disposition Effectuer une dispositioncomplète ou Disposition Optimiser les tailles.

Imprimer le diagramme Cliquez avec le bouton droit n'importe où dans la fenêtre du diagrammeVisualisation du code, puis choisissez Imprimer.

Utilisation de la fenêtre Vue modèle et du RAD Studio pour .NET 2.3 Procédures de modélisation

148

2

Page 155: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Ouvrir l'éditeur de code source surun élément précis du diagrammeVisualisation du code

Cliquez avec le bouton droit sur l'élément et choisissez Atteindre la définition.

Enregistrer le diagramme en tantqu'image

Cliquez avec le bouton droit n'importe où dans la fenêtre du diagrammeVisualisation du code, puis choisissez Exporter dans une image.

Remarque: A l'exception des liens Présentation de la visualisation de code et Utilisation de la fenêtre Vue globale, les liensci-dessous sont uniquement disponibles dans l'édition Architect de RAD Studio.

Voir aussi

Présentation de la visualisation de code ( see page 57)

Utilisation de la fenêtre Vue globale ( see page 153)

Fonctionnalités UML dans Delphi pour .NET

Présentation des outils de modélisation intégrés

Importation et exportation d'un modèle avec XMI ( see page 151)

Conception d'une interface utilisateur gérant ECO

Ajout de colonnes à un composant

Utilisation de l'éditeur d'expression OCL

2.3.4 Utilisation de la fenêtre Vue globale

Les vastes modèles de production ne tiendront pas en totalité dans la fenêtre de diagramme. Pour visualiser le diagramme, vouspouvez utiliser la fenêtre Vue globale.

Pour parcourir le modèle à l'aide de la fenêtre Vue globale

1. Cliquez sur le bouton Vue globale dans le coin inférieur droit du diagramme. Une vue miniature du diagramme complet s'affiche dans sa fenêtre dimensionnable. Un rectangle plus petit dans la fenêtre Vue globale contient la partie du modèle actuellement affichée sur le diagramme.

2. Cliquez sur le rectangle mobile et faites-le glisser dans la fenêtre Vue globale pour naviguer dynamiquement jusqu'à la partie du diagramme à visualiser.

3. Cliquez n'importe où hors de la fenêtre Vue globale pour la refermer.

Conseil: La fenêtre Vue globale

possède une poignée de dimensionnement dans son angle supérieur gauche. Cliquez sur cette poignée et faites-la glisser pour redimensionner la fenêtre Vue globale. Lors de cette opération, la taille du contenu est adaptée à la nouvelle taille de la fenêtre.

Le redimensionnement est utile quand la taille du modèle ne permet pas de lire le texte de la représentation miniature dans la fenêtre Vue globale.

Remarque: A l'exception des liens Présentation de la visualisation de code et Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code, les liens ci-dessous sont uniquement disponibles dans l'édition Architect de RAD Studio.

Voir aussi

Présentation de la visualisation de code ( see page 57)

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code ( see page 152)

2.3 Procédures de modélisation RAD Studio pour .NET Utilisation de la fenêtre Vue globale

149

2

Page 156: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Fonctionnalités UML dans Delphi pour .NET

Présentation des outils de modélisation intégrés

Importation et exportation d'un modèle avec XMI ( see page 151)

Ajout de colonnes à un composant

Utilisation de l'éditeur d'expression OCL

Utilisation de la fenêtre Vue globale RAD Studio pour .NET 2.3 Procédures de modélisation

150

2

Page 157: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.4 Procédures VCL pour .NET Cette section propose des informations relatives au développement d'applications VCL pour .NET.

Rubriques

Nom Description

Construction d'applications Fiches VCL avec graphiques ( see page 158) Chacune des procédures ci-dessous permet de construire une application Fiche VCL qui utilise des graphiques. Construisez un ou plusieurs exemples. *

1. Dessin de lignes droites.

2. Dessin de rectangles et d'ellipses.

3. Dessin d'un polygone.

4. Affichage d'une image bitmap.

5. Ajout d'un bitmap dans une boîte à options.

Construction d'une application Fiches VCL.NET de base de données ADO.NET ( see page 158)

La procédure suivante indique comment construire une application de base de données ADO.NET. La construction d'une application Fiches VCL ADO.NET comprend les étapes principales suivantes :

1. Définition de la connexion à la base de données.

2. Définition de l'ensemble de données.

3. Installation du fournisseur de données, de l'ensemble de données client et de la source de données.

4. Connexion d'une grille de données aux composants connexion.

5. Exécution de l'application.

Construction d'une application Fiches VCL ( see page 160) La procédure suivante illustre les étapes essentielles de la construction d'une application Fiches VCL avec RAD Studio.

Création d'actions dans une application Fiches VCL ( see page 160) Dans RAD Studio, les procédures suivantes illustrent comment créer des actions avec l'outil ActionList. Vous allez configurer une application simple et créer un menu Edition avec les actions Couper et Coller pour couper et coller un mémo. La création d'une application VCL comprend les étapes principales suivantes :

1. Ajout d'un menu principal, d'une liste d'actions et d'outils mémo à une fiche.

2. Création des actions Couper et Coller.

3. Ajout des actions au menu principal et association à la catégorie d'actions d'édition.

4. Construction et exécution de l'application.

Construction d'une application Fiches VCL Hello World ( see page 162) L'application Fiches VCL Hello World illustre les étapes essentielles de la création d'une application Fiches VCL. L'application utilise une fiche VCL, un contrôle et un événement, et affiche une boîte de dialogue en réponse à une action de l'utilisateur.La création de l'application Hello World comprend les étapes suivantes :

1. Création d'une fiche VCL.NET avec un contrôle bouton.

2. Ecriture du code pour afficher "Hello World" quand l'utilisateur clique sur le bouton.

3. Exécution de l'application.

2.4 Procédures VCL pour .NET RAD Studio pour .NET

151

2

Page 158: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Utilisation de ActionManager pour créer des actions dans une application Fiches VCL ( see page 163)

Dans RAD Studio, la procédure suivante illustre comment créer des actions avec ActionManager. Elle configure une interface utilisateur simple avec une zone de texte, adaptée à une application d'édition de texte, et explique comment créer un élément de menu fichier avec une action d'ouverture de fichier. La construction d'une application VCL avec ActionManager comprend les étapes principales suivantes :

1. Ajout d'une action d'ouverture de fichier au composant ActionManager sur une fiche.

2. Création du menu principal.

3. Ajout de l'action au menu.

4. Construction et exécution de l'application.

Conception d'une application Fiches VCL de bases de données dbExpress.NET ( see page 164)

Les procédures suivantes indiquent comment construire une application de base de données dbExpress. La construction d'une application Fiches VCL dbExpress.NET comprend les étapes principales suivantes :

1. Définition de la connexion à la base de données.

2. Installation de l'ensemble de données unidirectionnel.

3. Installation du fournisseur de données, de l'ensemble de données client et de la source de données.

4. Connexion d'une grille de données aux composants connexion.

5. Exécution de l'application.

Construction d'une application avec des composants XML ( see page 165) Cet exemple crée une application Fiches VCL qui utilise un composant XMLDocument pour afficher le contenu d'un fichier XML.

Modifications requises en raison du support 64 bits .NET 2.0 ( see page 167) Des changements ont été apportés afin de prendre en charge .NET 2.0 64 bits. Ces changements peuvent nécessiter des modifications de code mineures afin que les applications existantes fonctionnent correctement. Ce document décrit ces modifications en détail. Il existe deux zones générales :

1. Patterns de code modifiés

2. Déclarations de l'API Windows pour certains callbacks et enregistrements

Avertissement: Ces modifications sont nécessaires en raison des changements apportés pour la prise en charge des systèmes 64 bits. Elles doivent être effectuées pour les applications conçues pour les systèmes 32 bits et 64 bits.

Création d'un nouveau composant VCL .NET ( see page 170) Vous pouvez utiliser l'expert Nouveau composant VCL pour créer un nouveau composant VCL .NET et l'ajouter à la palette d'outils.

Affichage d'une image bitmap dans une application Fiches VCL ( see page 171) Ces procédures chargent une image bitmap à partir d'un fichier et l'affichent sur une fiche VCL.

1. Création d'une fiche VCL avec un contrôle bouton.

2. Fourniture d'une image bitmap.

3. Codage du gestionnaire d'événement onClick du bouton pour charger et afficher une image bitmap.

4. Construction et exécution de l'application.

Dessin de rectangles et d'ellipses dans une application Fiches VCL ( see page 172)

Ces procédures dessinent un rectangle et une ellipse dans une fiche VCL.

1. Création d'une fiche VCL.

2. Codage du gestionnaire d'événement OnPaint de la fiche pour dessiner un rectangle et une ellipse.

3. Construction et exécution de l'application.

RAD Studio pour .NET 2.4 Procédures VCL pour .NET

152

2

Page 159: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Dessin d'un rectangle arrondi dans une application Fiches VCL ( see page 173) Ces procédures dessinent un rectangle arrondi dans une fiche VCL.

1. Création d'une fiche VCL.

2. Codage du gestionnaire d'événement OnPaint de la fiche pour dessiner un polygone.

3. Construction et exécution de l'application.

Dessin de lignes droites dans une application Fiches VCL ( see page 173) Ces procédures dessinent deux diagonales droites sur une image dans une fiche VCL.

1. Création d'une fiche VCL.

2. Codage du gestionnaire d'événement OnPaint de la fiche pour dessiner les lignes droites.

3. Construction et exécution de l'application.

Insertion d'une image bitmap dans un contrôle d'une application Fiches VCL ( see page 174)

Ces procédures ajoutent une image bitmap à une boîte à options d'une application Fiches VCL.

1. Création d'une fiche VCL.

2. Ajout de composants à la fiche.

3. Définition des propriétés des composants dans l'inspecteur d'objets.

4. Ecriture des gestionnaires d'événements pour l'action de dessin des composants.

5. Construction et exécution de l'application.

Importation de contrôles .NET dans VCL.NET ( see page 176) Dans certains cas, vous souhaiterez peut-être utiliser des composants .NET sur vos fiches VCL.NET. Il n'existe pas de moyen direct d'utiliser des composants .NET. Vous pouvez en revanche envelopper les composants dans une enveloppe ActiveX, que vous pouvez ensuite ajouter à votre application VCL.NET. Pour ce faire, RAD Studio propose l'expert Importation .NET.

2.4.1 Construction d'applications Fiches VCL avec graphiques

Chacune des procédures ci-dessous permet de construire une application Fiche VCL qui utilise des graphiques. Construisez unou plusieurs exemples. *

1. Dessin de lignes droites.

2. Dessin de rectangles et d'ellipses.

3. Dessin d'un polygone.

4. Affichage d'une image bitmap.

5. Ajout d'un bitmap dans une boîte à options.

Voir aussi

Présentation de VCL.NET ( see page 76)

Dessin de lignes droites dans une application VCL ( see page 173)

Dessin de rectangles et d'ellipses dans une application VCL ( see page 172)

Dessin d'un rectangle arrondi dans une application VCL ( see page 173)

Affichage d'une image bitmap dans une application VCL ( see page 171)

2.4 Procédures VCL pour .NET RAD Studio pour .NET Construction d'applications Fiches VCL

153

2

Page 160: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Insertion d'une image bitmap dans une boîte à options d'une application VCL ( see page 174)

2.4.2 Construction d'une application Fiches VCL.NET de base de données ADO.NET

La procédure suivante indique comment construire une application de base de données ADO.NET.

La construction d'une application Fiches VCL ADO.NET comprend les étapes principales suivantes :

1. Définition de la connexion à la base de données.

2. Définition de l'ensemble de données.

3. Installation du fournisseur de données, de l'ensemble de données client et de la source de données.

4. Connexion d'une grille de données aux composants connexion.

5. Exécution de l'application.

Pour ajouter un composant connexion ADO

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL. Le concepteur de fiches VCL apparaît.

2. A partir de la catégorie dbGO de la palette d'outils, placez un composant TADOConnection sur la fiche.

3. Double-cliquez sur le composant TADOConnection pour afficher la boîte de dialogue Chaîne de connexion.

4. Si nécessaire, sélectionnez Utiliser la chaîne de connexion, puis cliquez sur le bouton Construire pour afficher la boîte de dialogue Propriétés des liaisons.

5. Sur la page Fournisseur de la boîte de dialogue, sélectionnez Fournisseur Microsoft Jet 4.0 OLE DB puis cliquez sur le bouton Suivant pour afficher la page Connexion.

6. Sur la page Connexion, cliquez sur le bouton points de suspension pour naviguer jusqu'à la base de données dbdemos.mdb. Le chemin d'accès par défaut de cette base de données est C:\Program Files\Fichiers communs\Borland Shared\Data.

7. S'il n'est pas déjà rempli, entrez Admin dans le champ Nom d'utilisateur et cochez la case Mot de passe vide.

8. Cliquez sur Tester la connexion pour confirmer la connexion. L'état de la connexion s'affiche dans une boîte de dialogue.

9. Cliquez deux fois sur OK pour fermer les boîtes de dialogue Propriétés de liaison et Chaîne de connexion.

Pour configurer l'ensemble de données

1. A partir de la catégorie dbGO, double-cliquez sur un composant TADODataSet pour le placer sur la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété Connection de la catégorie Liaisons sur ADOConnection1.

3. Affectez une commande SQL à la propriété CommandText ; par exemple, Select * from orders. Vous pouvez soit taper l'instruction Select dans l'inspecteur d'objets, soit cliquer sur les points de suspension à droite de CommandText pour afficher l'éditeur de texte de commande, dans lequel vous pouvez construire votre propre instruction de requête.

Conseil: Si vous avez besoin d'une assistance particulière lorsque vous utilisez l'éditeur de CommandText

, cliquez sur le bouton Aide ou appuyez sur la touche F1.

4. Définissez la propriété Active sur True pour ouvrir l'ensemble de données. Vous êtes invité à vous connecter.

5. Entrez Admin comme nom d'utilisateur.

6. Laissez le champ du mot de passe vide.

Construction d'une application Fiches RAD Studio pour .NET 2.4 Procédures VCL pour .NET

154

2

Page 161: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour ajouter le fournisseur

1. Dans la catégorie Accès aux données de la palette d'outils, double-cliquez sur un composant TDataSetProvider pour le placer en haut de la fiche.

2. Dans l'inspecteur d'objets, définissez la propriété DataSet sur la valeur ADODataSet1.

Pour ajouter l'ensemble de données client

1. Dans la catégorie Accès aux données de la palette d'outils, double-cliquez sur un composant TClientDataSet pour le placer à droite du composant DataSetProvider sur la fiche.

2. Dans l'inspecteur d'objets, définissez la propriété ProviderName sur DataSetProvider1.

3. Définissez la propriété Active sur True pour permettre la transmission des données à votre application. Une source de données se connecte à l'ensemble de données client par des contrôles orientés données. Chaque contrôle orienté données doit être associé à un composant source de données afin de pouvoir afficher et manipuler des données. De même, tous les ensembles de données doivent être associés à un composant source de données afin que leurs données puissent être affichées et manipulées dans les contrôles orientés données de la fiche.

Pour ajouter la source de données

1. Dans la catégorie Accès aux données de la palette d'outils, double-cliquez sur un composant TDataSource pour le placer à droite du composant ClientDataSet sur la fiche.

2. Dans l'inspecteur d'objets, définissez la propriété DataSet sur ClientDataSet1.

Pour connecter un DataGrid au DataSet

1. Dans la catégorie Contrôles de données de la palette d'outils, double-cliquez sur un composant TDBGrid pour le placer sur la fiche.

2. Dans l'inspecteur d'objets, définissez la propriété DataSource sur DataSource1.

3. Sélectionnez Exécuter Exécuter. Vous êtes invité à vous connecter.

4. Entrez Admin comme nom d'utilisateur.

5. Laissez le champ du mot de passe vide.

6. Cliquez sur OK. L'application se compile et affiche une fiche VCL comportant un composant DBGrid.

Voir aussi

Présentation de VCL.NET ( see page 76)

Conception d'une application Fiches VCL de bases de données dbExpress.NET ( see page 164)

2.4.3 Construction d'une application Fiches VCL

La procédure suivante illustre les étapes essentielles de la construction d'une application Fiches VCL avec RAD Studio.

Pour créer une fiche VCL

1. Choisissez Fichier Nouveau Autre. La boîte de dialogue Nouveaux éléments apparaît.

2. Sélectionnez Projets Delphi pour .NET.

3. Double-cliquez sur Application Fiches VCL. Le concepteur de fiches VCL apparaît.

4. A partir de la palette d'outils, placez des composants sur la fiche pour créer l'interface utilisateur.

5. Ecrivez le code des contrôles.

2.4 Procédures VCL pour .NET RAD Studio pour .NET Construction d'une application Fiches VCL

155

2

Page 162: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour associer du code à un contrôle

1. Double-cliquez sur un composant de la fiche. L'éditeur de code apparaît, avec le curseur dans le bloc de code du gestionnaire d'événement.

2. Codez la logique de votre application.

3. Enregistrez et compilez l'application.

Voir aussi

Présentation de VCL.NET ( see page 76)

2.4.4 Création d'actions dans une application Fiches VCL

Dans RAD Studio, les procédures suivantes illustrent comment créer des actions avec l'outil ActionList. Vous allez configurerune application simple et créer un menu Edition avec les actions Couper et Coller pour couper et coller un mémo.

La création d'une application VCL comprend les étapes principales suivantes :

1. Ajout d'un menu principal, d'une liste d'actions et d'outils mémo à une fiche.

2. Création des actions Couper et Coller.

3. Ajout des actions au menu principal et association à la catégorie d'actions d'édition.

4. Construction et exécution de l'application.

Pour ajouter le menu principal, la liste d'actions et le mémo à une fiche

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL pour créer une nouvelle fiche.

2. Cliquez sur l'onglet Conception pour passer au concepteur de fiches VCL.

3. Dans la catégorie Standard de la palette d'outils, placez un composant TMainMenu, TActionList et TMemo sur la fiche.

Pour créer les actions

1. Double-cliquez sur ActionList1 dans la fiche. L'éditeur ActionList s'affiche.

2. Sélectionnez Nouvelle action standard dans la liste déroulante pour afficher la boîte de dialogue Classes d'actions standard.

3. Faites défiler la liste jusqu'à l'action TEditCut, sélectionnez-la puis cliquez sur OK. EditCut1 s'affiche dans la liste Actions de l'éditeur.

4. Sélectionnez Nouvelle action standard dans la liste déroulante pour afficher la boîte de dialogue Classes d'actions standard.

5. Faites défiler la liste jusqu'à l'action TEditPaste, sélectionnez-la puis cliquez sur OK. EditPaste1 s'affiche dans la liste Actions de l'éditeur.

6. Fermez la fenêtre de l'éditeur ActionList.

Pour ajouter les actions Couper et Coller à la catégorie Edition du menu principal

1. Double-cliquez sur MainMenu1 dans la fiche. L'éditeur MainMenu1 s'affiche avec la première catégorie de commande vide sélectionnée.

2. Dans l'inspecteur d'objets, entrez Edition pour la propriété Caption puis appuyez sur la touche ENTREE. Edition apparaît comme première catégorie de commandes.

3. Cliquez sur Edition pour afficher une action vide sous cette catégorie.

4. Cliquez sur l'action vide pour la sélectionner.

Création d'actions dans une application RAD Studio pour .NET 2.4 Procédures VCL pour .NET

156

2

Page 163: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

5. Dans l'inspecteur d'objets, sélectionnez EditCut1 dans la liste déroulante d'actions de la propriété Action, située dans la catégorie Liaison.

6. Si elle n'est pas déjà remplie, développez la liste des propriétés Action, entrez Couper pour la propriété Caption, Edition pour la catégorie, puis appuyez sur Entrée. Couper apparaît comme première action.

7. Dans l'éditeur MainMenu1, cliquez sur la seconde action vide sous Couper pour la sélectionner.

8. Dans l'inspecteur d'objets, sélectionnez EditPaste dans la liste déroulante d'actions de la propriété Action, située dans la catégorie Liaison.

9. Développez la liste des propriétés Action, entrez Coller pour la propriété Caption, Edition pour la catégorie, puis appuyez sur Entrée. Coller apparaît comme seconde action.

Pour construire et exécuter l'application

1. Enregistrez tous les fichiers du projet.

2. Choisissez Exécuter Exécuter. L'application s'exécute et affiche une fiche avec la barre de menus principale et le menu Edition.

3. Dans l'application, sélectionnez le texte du mémo.

4. Choisissez Edition Couper. Le texte est coupé du mémo.

5. Choisissez Edition Coller. Le texte est collé dans le mémo.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'une application Fiches VCL ( see page 160)

2.4.5 Construction d'une application Fiches VCL Hello World

L'application Fiches VCL Hello World illustre les étapes essentielles de la création d'une application Fiches VCL. L'applicationutilise une fiche VCL, un contrôle et un événement, et affiche une boîte de dialogue en réponse à une action de l'utilisateur.

La création de l'application Hello World comprend les étapes suivantes :

1. Création d'une fiche VCL.NET avec un contrôle bouton.

2. Ecriture du code pour afficher "Hello World" quand l'utilisateur clique sur le bouton.

3. Exécution de l'application.

Pour créer une fiche VCL

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL. Le concepteur de fiches VCL apparaît.

2. Cliquez sur l'onglet Conception pour passer à la vue Fiche.

3. Dans la catégorie Standard de la palette d'outils, placez un composant TButton sur la fiche.

Pour afficher la chaîne "Hello World"

1. Sélectionnez Button1 sur la fiche.

2. Dans l'inspecteur d'objets, double-cliquez sur le gestionnaire d'événement OnClick de l'onglet Evénements. L'éditeur de code s'affiche, avec le curseur placé dans le bloc du gestionnaire d'événement TForm1.Button1Click.

3. Placez le curseur avant le mot réservé begin, puis appuyez sur la touche Entrée. Cette action crée une nouvelle ligne au-dessus du bloc de code.

4. Placez le curseur sur la nouvelle ligne créée, puis tapez la déclaration de variable suivante :

2.4 Procédures VCL pour .NET RAD Studio pour .NET Construction d'une application Fiches VCL

157

2

Page 164: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

var s: string;

5. Placez le curseur dans le bloc de code, puis tapez le code suivant :

s:= 'Hello World!';ShowMessage(s);

Pour exécuter l'application "Hello World"

1. Enregistrez les fichiers de votre projet.

2. Choisissez Exécuter Exécuter pour construire et exécuter l'application. La fiche apparaît avec un bouton appelé Button1.

3. Cliquez sur Button1. Une boîte de dialogue affiche le message "Hello World!".

4. Cliquez sur OK pour fermer le message.

5. Fermez la fiche VCL pour revenir à l'EDI.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'une application Fiches VCL ( see page 160)

2.4.6 Utilisation de ActionManager pour créer des actions dans une application Fiches VCL

Dans RAD Studio, la procédure suivante illustre comment créer des actions avec ActionManager. Elle configure une interfaceutilisateur simple avec une zone de texte, adaptée à une application d'édition de texte, et explique comment créer un élément demenu fichier avec une action d'ouverture de fichier.

La construction d'une application VCL avec ActionManager comprend les étapes principales suivantes :

1. Ajout d'une action d'ouverture de fichier au composant ActionManager sur une fiche.

2. Création du menu principal.

3. Ajout de l'action au menu.

4. Construction et exécution de l'application.

Pour ajouter une action d'ouverture de fichier à ActionManager

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL pour créer une nouvelle fiche.

2. A partir de la page Supplément de la palette d'outils, ajoutez un composant TActionManager sur la fiche.

3. Double-cliquez sur le composant TActionManager pour afficher l'éditeur Gestionnaire d'action.

Conseil: Pour afficher les libellés des composants non visuels comme TActionManager, choisissez Outils->Options d'environnement

. Sur l'onglet Concepteur, cochez Afficher les libellés des composants et cliquez sur OK.

4. Au besoin, cliquez sur l'onglet Actions.

5. Sélectionnez Nouvelle action standard dans la liste déroulante pour afficher la boîte de dialogue Classes d'actions standard.

6. Faites défiler jusqu'à la catégorie Fichier et cliquez sur l'action TFileOpen.

7. Cliquez sur OK pour fermer la boîte de dialogue.

8. Dans l'éditeur Gestionnaire d'actions, sélectionnez la catégorie Fichier. Ouvrir... s'affiche dans la boîte liste Actions : .

Utilisation de ActionManager pour créer RAD Studio pour .NET 2.4 Procédures VCL pour .NET

158

2

Page 165: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

9. Cliquez sur Fermer pour fermer l'éditeur.

Pour créer le menu principal et y ajouter l'action Fichier

1. A partir de la page Supplément de la palette d'outils, placez un composant TActionMainMenuBar sur la fiche.

2. Ouvrez l'éditeur Gestionnaire d'actions et sélectionnez la catégorie Fichier dans la zone de liste Catégories.

3. Faites glisser Fichier sur la barre de menus vide. Fichier apparaît dans la barre de menus.

4. Cliquez sur Fermer pour fermer l'éditeur.

Pour construire et exécuter l'application

1. Sélectionnez Exécuter Exécuter. L'application s'exécute et affiche une fiche avec la barre de menus principale et le menu Fichier.

2. Sélectionnez Fichier Ouvrir. La boîte de dialogue d'ouverture de fichier s'affiche.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'une application Fiches VCL ( see page 160)

2.4.7 Conception d'une application Fiches VCL de bases de données dbExpress.NET

Les procédures suivantes indiquent comment construire une application de base de données dbExpress.

La construction d'une application Fiches VCL dbExpress.NET comprend les étapes principales suivantes :

1. Définition de la connexion à la base de données.

2. Installation de l'ensemble de données unidirectionnel.

3. Installation du fournisseur de données, de l'ensemble de données client et de la source de données.

4. Connexion d'une grille de données aux composants connexion.

5. Exécution de l'application.

Pour ajouter un composant de connexion dbExpress

1. Choisissez Fichier Nouveau Application Fiches VCL. Le concepteur de fiches VCL apparaît.

2. A partir de la catégorie dbExpress de la palette d'outils, placez un composant TSQLConnection sur la fiche.

3. Double-cliquez sur le composant TSQLConnection pour afficher l'éditeur de connexion.

4. Dans l'éditeur de connexion, définissez la liste Nom de connexion sur IBConnection.

5. Dans la zone Paramètres de connexion, indiquez dans le champ Base de données le chemin d'accès au fichier de base de données InterBase appelé employee.gdb. Par défaut, le fichier se trouve dans C:\Program Files\Fichiers communs\CodeGear Shared\Data.

6. Acceptez la valeur des champs Nom d'utilisateur (sysdba) et Mot de passe (masterkey).

7. Pour tester la connexion, cliquez sur le bouton représenté par une coche (situé juste au-dessus de la liste Nom de connexion).

Remarque: Par défaut, vous êtes invité à vous connecter. Utilisez le mot de passe masterkey. Si la connexion fonctionne, un message de confirmation apparaît. Si vous ne parvenez pas à vous connecter à la base de données, vérifiez que vous avez installé InterBase et que le serveur est démarré.

2.4 Procédures VCL pour .NET RAD Studio pour .NET Conception d'une application Fiches VCL

159

2

Page 166: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

8. Cliquez sur OK pour fermer l'éditeur de connexions et enregistrer les modifications.

Pour configurer l'ensemble de données unidirectionnel

1. Dans la catégorie dbExpress de la palette d'outils, placez un composant TSQLDataSet en haut de la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété SQLConnection sur SQLConnection1.

3. Affectez une commande SQL à la propriété CommandText ; par exemple, Select * from sales. Pour la commande SQL, vous pouvez soit taper une instruction Select dans l'inspecteur d'objets, soit cliquer sur les points de suspension à droite de CommandText pour afficher l'éditeur de texte de commande, dans lequel vous pouvez construire votre propre instruction de requête.

Conseil: Si vous avez besoin d'une assistance particulière lorsque vous utilisez l'éditeur de texte de commande

, cliquez sur le bouton Aide ou appuyez sur la touche F1.

4. Dans l'inspecteur d'objets, définissez la propriété Active sur True pour ouvrir l'ensemble de données

Pour ajouter le fournisseur

1. Dans la catégorie Accès aux données de la palette d'outils, placez un composant TDataSetProvider en haut de la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété DataSet sur SQLDataSet1.

Pour ajouter l'ensemble de données client

1. Dans la catégorie Accès aux données de la palette d'outils, placez un composant TClientDataSet à droite du composant DataSetProvider sur la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété ProviderName sur DataSetProvider1.

3. Définissez la propriété Active sur True pour permettre la transmission des données à votre application.

Une source de données se connecte à l'ensemble de données client par des contrôles orientés données. Chaque contrôle orienté données doit être associé à un composant source de données afin de pouvoir afficher et manipuler des données. De même, tous les ensembles de données doivent être associés à un composant source de données afin que leurs données puissent être affichées et manipulées dans les contrôles orientés données de la fiche.

Pour ajouter la source de données

1. Dans la catégorie Accès aux données de la palette d'outils, placez un composant TDataSource à droite du composant ClientDataSet sur la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété DataSet sur ClientDataSet1.

Pour connecter un DataGrid au DataSet

1. Dans la catégorie Contrôles de données de la palette d'outils, placez un composant TDBGrid sur la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété DataSource sur DataSource1.

3. Enregistrez tous les fichiers du projet.

4. Sélectionnez Exécuter Exécuter. Vous êtes invité à saisir un mot de passe.

5. Entrez masterkey comme mot de passe. L'application se compile et affiche une fiche VCL.NET comportant un composant DBGrid.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'une application avec des RAD Studio pour .NET 2.4 Procédures VCL pour .NET

160

2

Page 167: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.4.8 Construction d'une application avec des composants XML

Cet exemple crée une application Fiches VCL qui utilise un composant XMLDocument pour afficher le contenu d'un fichier XML.

Les étapes de base sont les suivantes :

1. Création d'un document XML.

2. Création d'une fiche VCL.

3. Positionnement d'un composant XMLDocument sur la fiche et association au fichier XML.

4. Création de composants VCL pour permettre l'affichage du contenu du fichier XML.

5. Ecriture de gestionnaires d'événements pour afficher le contenu des noeuds enfants XML.

6. Compilez l'application et exécutez-la.

Pour créer le document XML

1. Copiez le texte ci-dessous dans un fichier dans un éditeur de texte.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?><!DOCTYPE StockHoldings [ <!ELEMENT StockHoldings (Stock+)> <!ELEMENT Stock (name)> <!ELEMENT Stock (price)> <!ELEMENT Stock (symbol)> <!ELEMENT Stock (shares)>]> <StockHoldings> <Stock exchange="NASDAQ"> <name>Borland</name> <price>10.375</price> <symbol>BORL</symbol> <shares>100</shares> </Stock> <Stock exchange="NYSE"> <name>MyCompany</name> <price>8.75</price> <symbol>MYCO</symbol> <shares type="preferred">25</shares> </Stock></StockHoldings>

2. Enregistrez le fichier sur votre disque local en tant que document XML. Donnez-lui un nom semblable à stock.xml.

3. Ouvrez le document dans votre navigateur. Le contenu devrait s'afficher sans erreur.

Remarque: Dans le navigateur, vous pouvez choisir Voir->Source

pour consulter le fichier source dans l'éditeur de texte.

Pour créer une fiche avec un composant XMLDocument

1. Démarrez un nouveau projet.

2. Choisissez Fichier Nouveau Autre.

3. Dans la boîte de dialogue Nouveaux éléments, sélectionnez Projets Delphi pour .NET.

2.4 Procédures VCL pour .NET RAD Studio pour .NET Construction d'une application avec des

161

2

Page 168: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

4. Double-cliquez sur Application Fiches VCL. Le concepteur de fiches VCL apparaît.

5. A partir de la catégorie Internet de la palette d'outils, placez un composant TXMLDocument sur la fiche.

6. Dans l'inspecteur d'objets, cliquez sur les points de suspension à côté de la propriété FileName, recherchez le fichier XML que vous avez créé et ouvrez-le. Le fichier XML est associé au composant TXMLDocument.

7. Dans l'inspecteur d'objets, définissez la propriété Active sur la valeur True.

Pour configurer les composants VCL

1. Sur la page Standard de la palette d'outils, placez un composant TMemo sur la fiche.

2. Sur la page Standard de la palette d'outils, placez deux composants TButton sur la fiche juste au-dessus de Memo1.

3. Dans l'inspecteur d'objets, avec Button1 sélectionné, entrez Borland pour la propriété Caption.

4. Dans l'inspecteur d'objets, avec Button2 sélectionné, entrez MyCompany pour la propriété Caption.

Pour afficher le contenu des noeuds enfants dans le fichier XML

1. Sélectionnez Button1.

2.  Dans l'inspecteur d'objets, double-cliquez sur l'événement OnClick de l'onglet Evénements. Le code s'affiche, le curseur placé dans le bloc du gestionnaire de l'événement TForm1.Button1Click.

3. Entrez le code suivant pour afficher le cours de l'action du premier noeud enfant quand l'utilisateur clique sur le bouton Borland :

BorlandStock:=XMLDocument1.DocumentElement.ChildNodes[0]; Price:= BorlandStock.ChildNodes['price'].Text; Memo1.Text := Price;

4. Ajoutez une section var juste au-dessus du bloc de code, au-dessus de l'instruction begin dans le gestionnaire d'événement, puis entrez les déclarations de variables locales suivantes :

var BorlandStock: IXMLNode; Price: string;

5. Sélectionnez Button2.

6. Dans l'inspecteur d'objets, double-cliquez sur l'événement OnClick sur l'onglet Evénements. Le code s'affiche, avec le curseur placé dans le bloc du gestionnaire d'événement TForm1.Button2Click.

7. Entrez le code suivant pour afficher le cours de l'action du second noeud enfant quand l'utilisateur clique sur le bouton MyCompany :

MyCompany:=XMLDocument1.DocumentElement.ChildNodes[1];Price:= MyCompany.ChildNodes['price'].Text;Memo1.Text := Price;

8. Ajoutez une section var juste au-dessus du bloc de code, au-dessus de l'instruction begin dans le gestionnaire d'événement, puis entrez les déclarations de variables locales suivantes :

var MyCompany: IXMLNode; Price: string;

Pour compiler et exécuter l'application

1. Sélectionnez Exécuter Exécuter pour compiler et exécuter l'application. L'application affiche deux boutons et un mémo.

2. Cliquez sur le bouton Borland. Le cours de l'action s'affiche.

3. Cliquez sur le bouton MyCompany. Le cours de l'action s'affiche.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'une application Fiches VCL ( see page 160)

Modifications requises en raison du RAD Studio pour .NET 2.4 Procédures VCL pour .NET

162

2

Page 169: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.4.9 Modifications requises en raison du support 64 bits .NET 2.0

Des changements ont été apportés afin de prendre en charge .NET 2.0 64 bits. Ces changements peuvent nécessiter desmodifications de code mineures afin que les applications existantes fonctionnent correctement. Ce document décrit cesmodifications en détail. Il existe deux zones générales :

1. Patterns de code modifiés

2. Déclarations de l'API Windows pour certains callbacks et enregistrements

Avertissement: Ces modifications sont nécessaires en raison des changements apportés pour la prise en charge des systèmes 64 bits. Elles doivent être effectuées pour les applications conçues pour les systèmes 32 bits et 64 bits.

Pour effectuer les modifications nécessaires pour les divers patterns de code

1. Instructions Case L'utilisation d'un handle dans une instruction case ne se compile plus. Remplacez les instructions :

case Msg.WParam of

par l'une des instructions suivantes :

case Msg.WParam.ToInt64 of // Case spécifique à VCL.NETInt64(Msg.WParam) of // Compatible avec VCL/Win32

2. Transtypage en enumérations Un handle ne peut plus être directement transtyper en un type énuméré. Remplacez le code :

LEnum := TEnum(GetWindowLong(...));

par ceci :

LEnum := TEnum(GetWindowLong(...).ToInt64);

3. Utilisation de handles avec des ensembles La surcharge des opérateurs d'ensembles n'est pas supportée. Ainsi, le code :

if Msg.WParam in [1..5] then

doit être remplacé par l'une des instructions suivantes :

if Msg.WParam.ToInt64 in [1..5] then // spécifique à VCL.NETif Int64(Msg.WParam) in [1..5] then // Compatible à VCL/Win32

4. Indexation dans les tableaux L'utilisation d'un handle pour indexer dans un tableau ne se compile plus. Un code tel que :

S := StrArray[Msg.WParam];

doit être changé par l'une des instructions suivantes :

S := StrArray[Msg.WParam.ToInt64]; // spécifique à VCL.NETS := StrArray[Int64(Msg.WParam)]; // Compatible avec VCL/Win32

5. Adoption d'une taille de handle spécifique Le code supposé fonctionner sur les plates-formes 64 bits ne devrait pas prendre implicitement la valeur d'un handle ou un IntPtr se trouve dans l'étendue Int32. Dans le cas d'un IntPtr, la méthode ToInt32 déclenche une exception de débordement s'il ne se trouve pas dans l'étendue. Un code tel que :

LIntPtr := IntPtr.Create(Buffer.ToInt32 + 10);

doit être changé par la forme suivante :

LIntPtr := IntPtr.Create(Buffer.ToInt64 + 10);

De la même façon, le code suivant :

var DC: HDC;

2.4 Procédures VCL pour .NET RAD Studio pour .NET Modifications requises en raison du

163

2

Page 170: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

begin ... SendMessage(Window, Message, Integer(DC), 0);end;

doit être remplacé par :

var DC: HDC;begin ... SendMessage(Window, Message, WPARAM(DC), 0);end;

Pour effectuer les modifications nécessaires dans les callbacks Windows

1. Examinez la première colonne du tableau ci-dessous pour déterminer si vous avez utilisé une de ces unités.

2. Si vous avez utilisé une unité, déterminez si vous avez utilisé un des callbacks de cette unité listé dans la seconde colonne de la table.

3. Pour chaque occurrence d'un tel callback, modifiez les paramètres notés dans la colonne 3 de façon appropriée.

Unité Callback Détails

DDEml TFNCallback Types des paramètres Data1 et Data2 modifiés

MMSystem TFNDriverProc Type du paramètre dwDriverId modifié

MMSystem TFNDrvCallBack Types des paramètres dwUser, dw1 et dw2 modifiés

MMSystem TFNTimeCallBack Types des paramètres dwUser, dw1 et dw2 modifiés

RichEdit TEditStreamCallBack Type du paramètre dwCookie modifié

Windows TFNWndProc Types WParam, LParam et Result modifiés

Windows TFNWndEnumProc Type du paramètre LParam modifié

Windows TFNTimerProc Type du paramètre P3 modifié

Windows TFNAPCProc Type du paramètre dwParam modifié

Windows TFNDlgProc Type Result modifié

Windows TFNSendAsyncProc Type du paramètre P3 modifié

Windows TFNPropEnumProcEx Type du paramètre P4 modifié

WinInet PFN_AUTH_NOTIFY Type du paramètre dwContext modifié

Pour effectuer les modifications nécessaires dans les enregistrements Variant

1. Examinez la première colonne du tableau ci-dessous pour déterminer si vous avez utilisé une de ces unités.

2. Si vous avez utilisé une unité, déterminez si vous avez utilisé un des enregistrements de cette unité listé dans la seconde colonne de la table.

3. Pour chacun de ces enregistrements, trouvez tous les endroits où un champ a été transmis en tant que paramètre var ayant été modifié en une propriété et modifiez le code de façon appropriée. Le compilateur vous avertit si vous devez effectuer la mise à jour.

Unité Enregistrement

ActiveX TPictDesc

ActiveX TPropSpec

Modifications requises en raison du RAD Studio pour .NET 2.4 Procédures VCL pour .NET

164

2

Page 171: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ActiveX TStgMedium

ActiveX TTypeDesc

ActiveX TVarDesc

ActiveX TVariantArg

CommCtrl TPropSheetHeader

CommCtrl TPropSheetPage

CommCtrl TTVInsertStruct

CommCtrl TTVInsertStructA

CommCtrl TTVInsertStructW

MMSystem TMixerControlDetails

ShlObj TStrRet

Windows TInput

Windows TProcessHeapEntry

Windows TSystemInfo

WinSpool TPrinterNotifyInfoData

Voir aussi

Modifications requises en raison du support 64 bits .NET 2.0 ( see page 62)

2.4.10 Création d'un nouveau composant VCL .NET

Vous pouvez utiliser l'expert Nouveau composant VCL pour créer un nouveau composant VCL .NET et l'ajouter à la paletted'outils.

Procédures générales de création d'un nouveau composant VCL .NET

1. Créez un package(.dll).

2. Créez votre nouveau composant VCL .NET :

1. Spécifiez le composant ancêtre.

2. Spécifiez le nom de la classe.

3. Recensez votre composant et ajoutez-le à la VCL.

Pour créer un package

1. Choisissez Fichier->Nouveau->Autre->Projets Delphi pour .NET->Package.

2. RAD Studio crée le package et l'affiche dans le gestionnaire de projets.

Pour créer votre nouveau composant VCL .NET

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Nouveaux fichiers Composant VCL. Cela affiche la première page de l'expert Nouveau composant VCL et charge la liste des composants ancêtre.

2. Sur la page Composant ancêtre de la boîte de dialogue Nouveau composant VCL, sélectionnez un composant ancêtre dans la liste et cliquez sur Suivant.

3. Sur la page Composant de la boîte de dialogue Nouveau composant VCL, examinez les valeurs par défaut de Nom de

2.4 Procédures VCL pour .NET RAD Studio pour .NET Création d'un nouveau composant VCL

165

2

Page 172: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

classe, Page de palette, Nom d'unité et Chemin de recherche. Vous pouvez accepter les valeurs par défaut ou entrer les valeurs de votre choix.

4. Cliquez sur Suivant. A ce stade, le gestionnaire de projets doit maintenant lister votre nouveau composant .NET VCL dans le package que vous avez créé.

Pour recenser votre composant dans la VCL

1. Choisissez Composants->Composants .NET installés.

2. Sélectionnez l'onglet Composants VCL .NET.

3. Cliquez sur Ajouter.

4. Dans la boîte de dialogue Sélection d'un package/assemblage VCL .NET, cliquez sur le package qui contient le composant .NET VCL que vous venez de créer.

5. Sur la palette d'outils, cherchez l'unité dans laquelle votre composant .NET VCL a été installé. In that unit, you should see your .NET VCL component listed.

Voir aussi

Présentation de VCL pour .NET ( see page 76)

2.4.11 Affichage d'une image bitmap dans une application Fiches VCL

Ces procédures chargent une image bitmap à partir d'un fichier et l'affichent sur une fiche VCL.

1. Création d'une fiche VCL avec un contrôle bouton.

2. Fourniture d'une image bitmap.

3. Codage du gestionnaire d'événement onClick du bouton pour charger et afficher une image bitmap.

4. Construction et exécution de l'application.

Pour créer une fiche VCL et un bouton

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL. Le concepteur de fiches VCL apparaît.

2. Dans la catégorie Standard de la palette d'outils, placez un composant TButton sur la fiche.

Pour fournir une image bitmap

1. Créez un répertoire dans lequel stocker les fichiers de votre projet.

2. Localisez une image bitmap et copiez-la dans le répertoire de votre projet.

3. Enregistrez tous les fichiers du projet dans le répertoire de votre projet.

Pour écrire le gestionnaire d'événement OnClick

1. Dans la catégorie Entrée de l'onglet Evénements, double-cliquez sur l'événement OnClick de Button1. L'éditeur de code s'affiche, le curseur placé dans le bloc du gestionnaire de l'événement TForm1.Button1Click.

2. Entrez le code de gestion d'événement suivant, en remplaçant MyFile.bmp par le nom de l'image bitmap du répertoire de votre projet :

Rect := TRect.Create(0,0,100,100); Bitmap := TBitmap.Create; try Bitmap.LoadFromFile('MyFile.bmp');

Affichage d'une image bitmap dans une RAD Studio pour .NET 2.4 Procédures VCL pour .NET

166

2

Page 173: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Form1.Canvas.Brush.Bitmap := Bitmap; Form1.Canvas.FillRect(Rect); finally Form1.Canvas.Brush.Bitmap := nil; Bitmap.Free; end;

Conseil: Vous pouvez modifier la taille du rectangle à afficher en ajustant les valeurs du paramètre Rect.

3. Dans la section var du code, ajoutez ces déclarations de variable :

Bitmap : TBitmap;Rect : TRect;

Pour exécuter le programme

1. Enregistrez tous les fichiers du projet.

2. Choisissez Exécuter Exécuter.

3. Cliquez sur le bouton pour afficher l'image bitmap dans un rectangle de 100 x 100 pixels dans le coin supérieur gauche de la fiche.

Voir aussi

Présentation de VCL.NET ( see page 76)

Dessin de lignes droites dans une application VCL ( see page 173)

Dessin de rectangles et d'ellipses dans une application VCL ( see page 172)

Dessin d'un rectangle arrondi dans une application VCL ( see page 173)

Insertion d'une image bitmap dans un contrôle d'une application Fiches VCL ( see page 174)

2.4.12 Dessin de rectangles et d'ellipses dans une application Fiches VCL

Ces procédures dessinent un rectangle et une ellipse dans une fiche VCL.

1. Création d'une fiche VCL.

2. Codage du gestionnaire d'événement OnPaint de la fiche pour dessiner un rectangle et une ellipse.

3. Construction et exécution de l'application.

Pour créer une fiche VCL

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL.

2. Dans l'inspecteur d'objets, cliquez sur l'onglet Conception, si nécessaire, pour afficher Form1.

Pour écrire le gestionnaire d'événement OnPaint

1. Dans l'inspecteur d'objets, cliquez sur l'onglet Evénements.

2. Double-cliquez sur l'événement OnPaint dans la catégorie Divers de l'onglet Evénements. L'éditeur de code s'affiche, le curseur placé dans le bloc du gestionnaire de l'événement TForm1.FormPaint.

3. Entrez le code de gestion d'événement suivant :

Canvas.Rectangle (0, 0, ClientWidth div 2, ClientHeight div 2);Canvas.Ellipse (0, 0, ClientWidth div 2, ClientHeight div 2);

2.4 Procédures VCL pour .NET RAD Studio pour .NET Dessin de rectangles et d'ellipses dans une

167

2

Page 174: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour exécuter le programme

1. Enregistrez tous les fichiers du projet.

2. Choisissez Exécuter Exécuter.

3. L'application s'exécute et affiche un rectangle dans le quart supérieur gauche de la fiche, avec une ellipse au milieu du rectangle.

Voir aussi

Présentation de VCL.NET ( see page 76)

Dessin d'un rectangle arrondi dans une application Fiches VCL ( see page 173)

2.4.13 Dessin d'un rectangle arrondi dans une application Fiches VCL

Ces procédures dessinent un rectangle arrondi dans une fiche VCL.

1. Création d'une fiche VCL.

2. Codage du gestionnaire d'événement OnPaint de la fiche pour dessiner un polygone.

3. Construction et exécution de l'application.

Pour créer une fiche VCL

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL.

2. Dans le concepteur, cliquez sur la fiche, si nécessaire, pour afficher les propriétés de Form1 dans l'inspecteur d'objets.

Pour écrire le gestionnaire d'événement OnPaint

1. Dans l'inspecteur d'objets, cliquez sur l'onglet Evénements.

2. Double-cliquez sur le gestionnaire d'événement OnPaint dans la catégorie Visuel. L'éditeur de code s'affiche, le curseur placé dans le bloc du gestionnaire de l'événement TForm1.FormPaint.

3. Entrez le code de gestion d'événement suivant :

Canvas.RoundRect(0, 0, ClientWidth div 2, ClientHeight div 2, 10, 10);

Pour exécuter le programme

1. Enregistrez tous les fichiers du projet.

2. Sélectionnez Exécuter Exécuter.

3. L'application s'exécute et affiche un rectangle arrondi dans le quart supérieur gauche de la fiche.

Voir aussi

Présentation de VCL.NET ( see page 76)

Dessin de rectangles et d'ellipses dans une application Fiches VCL ( see page 172)

Dessin de lignes droites dans une RAD Studio pour .NET 2.4 Procédures VCL pour .NET

168

2

Page 175: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.4.14 Dessin de lignes droites dans une application Fiches VCL

Ces procédures dessinent deux diagonales droites sur une image dans une fiche VCL.

1. Création d'une fiche VCL.

2. Codage du gestionnaire d'événement OnPaint de la fiche pour dessiner les lignes droites.

3. Construction et exécution de l'application.

Pour créer une fiche VCL et y placer une image

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL.

2. Cliquez sur l'onglet Conception, si nécessaire, pour afficher Form1 dans l'inspecteur d'objets.

Pour écrire le gestionnaire d'événement OnPaint

1. Dans l'inspecteur d'objets, cliquez sur l'onglet Evénements.

2. Dans la catégorie Visuel, double-cliquez sur l'événement OnPaint. L'éditeur de code s'affiche, le curseur placé dans le bloc du gestionnaire de l'événement TForm1.FormPaint.

3. Entrez le code de gestion d'événement suivant :

with Canvas do begin MoveTo(0,0); LineTo(ClientWidth, ClientHeight); MoveTo(0, ClientHeight); LineTo(ClientWidth, 0); end;

Pour exécuter le programme

1. Enregistrez tous les fichiers du projet.

2. Choisissez Exécuter Exécuter. L'application s'exécute et affiche une fiche avec deux diagonales.

Conseil: Pour que le crayon devienne vert, insérez l'instruction suivante après la première instruction MoveTo() dans le code du gestionnaire d'événement : Pen.Color := clRed; Essayez d'utiliser d'autres propriétés des objets canevas et crayon.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'applications Fiches VCL avec graphiques ( see page 158)

Dessin de rectangles et d'ellipses dans une application Fiches VCL ( see page 172)

Dessin d'un rectangle arrondi dans une application Fiches VCL ( see page 173)

Affichage d'une image bitmap dans une application Fiches VCL ( see page 171)

2.4 Procédures VCL pour .NET RAD Studio pour .NET Insertion d'une image bitmap dans un

169

2

Page 176: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.4.15 Insertion d'une image bitmap dans un contrôle d'une application Fiches VCL

Ces procédures ajoutent une image bitmap à une boîte à options d'une application Fiches VCL.

1. Création d'une fiche VCL.

2. Ajout de composants à la fiche.

3. Définition des propriétés des composants dans l'inspecteur d'objets.

4. Ecriture des gestionnaires d'événements pour l'action de dessin des composants.

5. Construction et exécution de l'application.

Pour créer une fiche VCL avec un composant ComboBox

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Application Fiches VCL. Le concepteur de fiches VCL apparaît.

2. Cliquez sur l'onglet Conception pour afficher la fiche.

3. A partir de la catégorie Win32 de la palette d'outils, placez un composant TImageList sur la fiche.

4. Dans la catégorie Standard de la palette d'outils, placez un composant TComboBox sur la fiche.

Pour définir les propriétés d'un composant

1. Sélectionnez ComboBox1 sur la fiche.

2. Dans l'inspecteur d'objets, définissez la liste déroulante de la propriété Style sur csOwnerDrawFixed.

3. Dans l'inspecteur d'objets, cliquez sur [...] à côté de la propriété Items. L'éditeur de liste de chaînes s'affiche.

4. Entrez une chaîne à associer à l'image bitmap, par exemple MyImage, puis cliquez sur OK.

5. Double-cliquez sur ImageList1 dans la fiche. L'éditeur ImageList s'affiche.

6. Cliquez sur le bouton Ajouter pour afficher la boîte de dialogue d'ajout d'images.

7. Recherchez sur votre disque local une image bitmap à afficher dans la boîte à options.

8. Sélectionnez une très petite image comme une icône. Copiez-la dans le répertoire de votre projet et cliquez sur Ouvrir. L'image s'affiche dans l'éditeur ImageList.

9. Cliquez sur OK pour fermer l'éditeur.

Pour ajouter le code du gestionnaire d'événement

1. Dans le concepteur, sélectionnez ComboBox1.

2. Dans l'inspecteur d'objets, cliquez sur l'onglet Evénements.

3. Double-cliquez sur l'événement OnDrawItem. L'éditeur de code s'affiche, avec le curseur placé dans le bloc du gestionnaire d'événement DrawItem.

4. Entrez le code suivant pour ce gestionnaire d'événement :

ComboBox1.Canvas.FillRect(rect);ImageList1.Draw(ComboBox1.Canvas, Rect.Left, Rect.Top, Index);ComboBox1.Canvas.TextOut(Rect.Left+ImageList1.Width+2, Rect.Top, ComboBox1.Items[Index]);

Pour exécuter le programme

1. Enregistrez tous les fichiers du projet.

Insertion d'une image bitmap dans un RAD Studio pour .NET 2.4 Procédures VCL pour .NET

170

2

Page 177: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2. Choisissez Exécuter Exécuter. L'application s'exécute et affiche une fiche avec une boîte à options.

3. Cliquez sur la liste déroulante de la boîte à options. L'image bitmap et la chaîne de texte apparaissent en tant qu'élément de la liste.

Voir aussi

Présentation de VCL.NET ( see page 76)

Construction d'applications Fiches VCL avec graphiques ( see page 158)

2.4.16 Importation de contrôles .NET dans VCL.NET

Dans certains cas, vous souhaiterez peut-être utiliser des composants .NET sur vos fiches VCL.NET. Il n'existe pas de moyendirect d'utiliser des composants .NET. Vous pouvez en revanche envelopper les composants dans une enveloppe ActiveX, quevous pouvez ensuite ajouter à votre application VCL.NET. Pour ce faire, RAD Studio propose l'expert Importation .NET.

Pour utiliser des composants .NET dans une fiche VCL.NET

1. Exécution de l'expert d'importation de contrôles WinForm.

2. Construction du package pour créer un fichier assemblage.

3. Ajout de l'assemblage à la palette d'outils.

Pour exécuter l'expert d'importation de contrôles WinForm

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Package de contrôles WinForm. Cela démarre l'expert d'importation de contrôles WinForm.

2. Spécifiez le fichier suivant :

c:\Windows\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll

3. Cliquez sur Suivant. Cette action affiche la seconde page de l'expert d'importation de contrôles WinForm, qui contient la liste de tous les composants disponibles.

4. Cochez les cases en regard des composants à importer.

Remarque: Si vous voulez importer tous les composants, cliquez sur le bouton Tout activer

.

5. Cliquez sur Suivant. Cette action affiche la troisième page de l'expert, qui comporte des options de génération pour les unités.

6. Acceptez les valeurs par défaut et cliquez sur Suivant. Cette action affiche la quatrième page de l'expert, dans laquelle vous pouvez définir un emplacement et un nom pour le fichier package.

7. Cliquez sur Suivant. Cette action affiche la cinquième page de l'expert, dans laquelle vous pouvez écraser des fichiers portant le même nom.

8. Cliquez sur Suivant. Cette action lance le processus de génération et affiche des messages d'état pour chaque fichier au fur et à mesure de leur création, y compris pour le fichier package (.dpk).

9. Si vous souhaitez importer des contrôles supplémentaires, cliquez sur Nouveau. Sinon, cliquez sur Terminer. Le package contenant les unités apparaît dans le gestionnaire de projet.

Pour construire et ajouter le package

1. Sélectionnez le noeud du package dans le gestionnaire de projet.

2. Dans le menu principal, choisissez Projet Construire <nom_projet>, où <nom_projet> représente le nom de votre projet. Cette action crée le fichier assemblage qui contient le package et les unités.

2.4 Procédures VCL pour .NET RAD Studio pour .NET Importation de contrôles .NET dans

171

2

Page 178: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

3. Choisissez Composant Composants .NET installés.

4. Cliquez sur l'onglet Composants VCL .NET.

5. Cliquez sur Ajouter.

6. Sélectionnez l'assemblage package, puis cliquez sur Ouvrir. L'emplacement dépend de l'emplacement du répertoire des options de votre projet. Il se peut aussi que le fichier se trouve dans votre répertoire de documents par défaut.

7. Cliquez sur OK. Les contrôles individuels apparaissent dans la palette d'outils sous la catégorie Contrôles WinForm. Vous pouvez maintenant ajouter ces contrôles à vos applications Fiches VCL.NET.

Voir aussi

Présentation de VCL.NET ( see page 76)

Importation de contrôles .NET dans RAD Studio pour .NET 2.4 Procédures VCL pour .NET

172

2

Page 179: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.5 Procédures ASP.NET Cette section propose des informations relatives au développement d'applications ASP.NET Web Forms.

Rubriques

Nom Description

Conception d'une application ASP .NET ( see page 181) Les procédures suivantes décrivent les étapes générales nécessaires à la construction d'un projet ASP.NET simple. Pour des rubriques plus avancées, voir les informations connexes après la procédure.

Conception d'une application de bases de données ASP.NET ( see page 182) La procédure suivante décrit les étapes minimales requises pour construire une application ASP.NET simple de base de données comme BDP.NET. Une fois les objets connexion requis générés, le projet affiche les données dans un DataGrid.Pour consulter un exemple de base de données plus détaillé utilisant d'autres technologies de base de données pour ASP.NET 2.0, voir Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185).BDP.NET comprend des concepteurs de composants facilitant la création d'applications de base de données. Au lieu de déposer des composants individuels sur un concepteur, puis de les configurer séparément, utilisez des concepteurs... suite ( see page 182)

Développement d'une application ASP.NET avec des contrôles de base de données, Partie 1 ( see page 185)

Cet exemple montre comment créer une page Web qui contient un contrôle GridView et un contrôle de base de données. Cet exemple illustre les opérations suivantes :

• Ajout d'un composant ASP.NET à une fiche.

• Utilisation de la fenêtre Tâches intelligentes.

• Configuration et connexion à une source de données.

• Utilisation du SQL pour lire les données d'une base de données.

• Exécution de l'application dans un navigateur.

Remarque: Vous pouvez créer des projets ASP.NET seulement dans CodeGear RAD Studio, et non dans les personnalités Win32.

Construction d'une application ASP.NET avec des contrôles de base de données, Partie 2 ( see page 187)

Cet exemple présente un plus ample développement d'une page Web contenant un contrôle GridView et un contrôle de base de données. Les étapes ajoutent davantage de capacités au contrôle GridView, incluant l'édition. Cet exemple illustre les opérations suivantes :

• Utilisation de la fenêtre Tâches intelligentes.

• Changement de la configuration d'une source de données.

• Exécution de l'application dans un navigateur.

Construction d'une application ASP.NET avec des contrôles de base de données, Partie 3 ( see page 188)

Cet exemple présente un plus ample développement d'une page Web avec un contrôle GridView et un contrôle de base de données. Il ajoute un contrôle FormView pour insérer des lignes. Cet exemple illustre les opérations suivantes :

• Ajout d'un composant ASP.NET à une fiche.

• Utilisation de la fenêtre Tâches intelligentes.

• Edition du balisage pour changer l'apparence d'un composant.

• Exécution de l'application dans un navigateur.

2.5 Procédures ASP.NET RAD Studio pour .NET

173

2

Page 180: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Construction d'une application "Hello World" ASP.NET ( see page 189) Malgré sa simplicité, l'application "Hello World" ASP.NET illustre les étapes essentielles de la création d'une application ASP.NET. L'application utilise une fiche Web, des contrôles et un événement permettant d'afficher un résultat en réponse à une action de l'utilisateur.

Construction d'un plan de site ASP .NET ( see page 190) Cet exemple montre comment créer un site Web avec un SiteMap (plan de site), Menu, SiteMapPath et une master page. Un fichier web.sitemap est un fichier XML qui décrit la structure d'un site web. Une master page sert de modèle pour les pages du site Web. Un Menu et un SiteMapPath vous permettent de naviguer sur un site Web. Cet exemple illustre les opérations suivantes :

• Création d'un plan de site Web.

• Création d'une master page.

• Ajout d'un Menu et d'un SiteMapPath à une master page.

• Utilisation de la fenêtre Tâches intelligentes.

• Ajout de pages contenu référençant la master... suite ( see page 190)

Création d'une application de porte-documents avec des contrôles DB Web ( see page 194)

Les contrôles DB Web, la mise en cache XML et les adaptateurs de données BDP.NET permettent de créer des applications de porte-documents côté serveur. Vous pouvez créer ce type d'application uniquement lorsque vous employez l'authentification utilisateur pour garantir que chaque utilisateur possède un exemplaire unique du fichier XML. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Construction d'une application avec les contrôles DB Web ( see page 195) Les procédures suivantes décrivent les étapes minimales requises pour construire une application ASP.NET simple de base de données à l'aide des contrôles DB Web et de BDP.NET. Une fois les objets connexion requis générés, le projet affiche les données dans un DBWebGrid avec un DBWebNavigator. Des informations supplémentaires sont fournies pour les autres contrôles DB Web courants.Les utilisateurs doivent déjà être familiarisés avec la création d'un projet ASP.NET à l'aide de BDP.NET.La construction d'une application ASP.NET avec les contrôles DB Web et BDP.NET comprend trois étapes principales :

1. Préparez un projet ASP.NET avec BDP.NET ou d'autres composants de connexion.... suite ( see page 195)

Conversion d'éléments HTML en contrôles serveur ( see page 196) A la différence des contrôles Web, les éléments HTML ne peuvent pas, par défaut, être contrôlés par programme. Cependant, vous pouvez convertir un élément HTML en contrôle serveur, puis écrire du code pour accéder à l'élément ou le modifier. La plupart des éléments HTML figurant dans la palette d'outils peuvent être convertis à l'aide de la commande Exécuter comme un contrôle serveur. Les éléments HTML qui n'apparaissent pas dans la palette d'outils (body, par exemple) peuvent être convertis manuellement. Les procédures suivantes expliquent comment convertir un élément table HTML à l'aide de la commande Exécuter comme un contrôle... suite ( see page 196)

Création d'un fichier XML pour des contrôles DB Web ( see page 197) Vous pouvez utiliser des fichiers XML en tant que source de données, en particulier si vous souhaitez prototyper des applications sans effectuer des lectures et des écritures dans une base de données. Vous devez d'abord créer le fichier XML. Le contrôle DBWebDataSource fournit un moyen performant de créer le fichier XML à partir de données issues d'une base de données. Cette procédure suppose que vous pouvez créer une connexion à une base de données dynamique contenant les données que vous souhaitez employer. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser... suite ( see page 197)

Création de métadonnées pour un ensemble de données ( see page 199) Lorsque vous choisissez d'utiliser un fichier XML pour une source de données dans une application ASP.NET utilisant les contrôles DB Web, vous pouvez avoir besoin de créer les métadonnées afin de structurer les données XML de votre ensemble de données. Si vous avez choisi de créer un fichier XML sans fichier de schéma XML (.xsd), vous devez créer manuellement les métadonnées. Cette procédure suppose que vous avez déjà créé un fichier XML contenant des données. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.... suite ( see page 199)

RAD Studio pour .NET 2.5 Procédures ASP.NET

174

2

Page 181: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Création d'un répertoire virtuel ( see page 200) Lorsque vous créez une application ASP.NET, l'EDI génère automatiquement un répertoire virtuel basé sur les paramètres de la boîte de dialogue Nouvelle application Web ASP.NET. Toutefois, l'EDI peut également créer un répertoire virtuel pour une application que vous n'avez pas créée dans l'EDI, telle que les applications démo du dossier DBWeb. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Ajout de valeurs agrégées avec DBWebAggregateControl ( see page 200) Vous pouvez utiliser DBWebAggregateControl pour appliquer l'une des fonctions d'agrégation standard à une colonne de données. Le contrôle affiche la valeur agrégée dans une zone de texte qui prend également en charge un libellé lié. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Débogage et mise à jour d'applications ASP.NET ( see page 201) Lors de l'installation de RAD Studio, le programme d'installation a demandé l'autorisation de mise à jour du fichier machine.config sur votre ordinateur. Ces informations sont nécessaires pour le débogage d'applications RAD Studio sous IIS. Si vous avez répondu Oui à cette invite, des informations du débogueur Borland ont été écrites dans le fichier machine.config et seront disponibles pour les applications que vous avez créées avec Delphi 8. Vous n'avez pas à effectuer cette procédure.Si vous avez répondu Non à cette invite, les informations du débogueur sont écrites dans le ficher web.config de l'application quand vous créez une application ASP.NET... suite ( see page 201)

Déploiement d'une application ASP.NET avec Blackfish SQL vers un système sans RAD Studio ( see page 202)

Vous pouvez déployer une application ASP.NET avec Blackfish SQL vers un système sans RAD Studio.

Génération de messages HTTP dans ASP.NET ( see page 203) Lors de la tentative de débogage d'applications ASP.NET, vous pourrez constater que les messages d'erreur sont parfois mystérieux, voire incompréhensibles. Ceci peut être dû à une option de configuration d'Internet Explorer. Pour faciliter le débogage, vous devez modifier cette option.

Liaison de colonnes dans un contrôle DBWebGrid ( see page 203) Vous souhaiterez parfois modifier l'ordre dans lequel les colonnes apparaissent dans un contrôle DBWebGrid. Vous pouvez réaliser cette tâche en effectuant une liaison manuelle des colonnes, à partir du constructeur de propriétés. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Définition de permissions pour l'utilisation de fichiers XML ( see page 204) Pour éviter les erreurs de permissions lors de l'utilisation d'un fichier XML en tant que source de données, vous devez accorder des droits aux clients qui emploieront vos applications ASP.NET. Pour ce faire, vous pouvez procéder de deux façons comme indiqué ci-dessous. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Dépannage d'applications ASP.NET ( see page 205) A la différence des applications Windows traditionnelles, les applications web sont dépendantes de serveurs et de ressources qui ne se trouvent pas directement sous leur contrôle ou sous celui de l'utilisateur. Les applications web sont souvent des combinaisons hybrides de ressources client, serveur et réseau. Les éléments à vérifier sont l'installation ASP.NET, l'installation et la configuration IIS et la sécurité. Ces trois zones de recherche sont étendues et complexes. Les procédures suivantes fournissent des solutions à quelques-uns des problèmes les plus courants. Remarque: Les suggestions suivantes ne s'appliquent qu'à IIS 5.1.

Utilisation de l'expert Contrôle DB Web ( see page 208) L'expert Contrôle DB Web vous aide à créer un contrôle web orienté données basé sur un contrôle web standard. Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Utilisation du gestionnaire de déploiement ASP.NET ( see page 208) Vous pouvez ajouter un gestionnaire de déploiement ASP.NET à un projet d'application ASP.NET pour vous aider à déployer l'application. Le gestionnaire de déploiement détermine quels fichiers sont requis pour le déploiement, demande le nom du répertoire de destination et des informations de connexion, puis copie les fichiers dans ce répertoire. Le gestionnaire de déploiement génère une liste de fichiers à copier basée sur les noms des fichiers de votre répertoire de projet ; vous pouvez inclure ou exclure des fichiers de cette liste selon vos besoins. Vous pouvez utiliser le bouton droit de la souris, lorsque la fenêtre Gestionnaire de déploiement... suite ( see page 208)

2.5 Procédures ASP.NET RAD Studio pour .NET

175

2

Page 182: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Utilisation de l'éditeur de balise HTML ( see page 211) Lorsque vous créez ou modifiez un fichier HTML, vous pouvez utiliser la fenêtre Editeur de balise, située sous le concepteur de fiches, pour éditer les balises HTML. Par exemple, si vous utilisez une fiche Web ASP.NET, l'éditeur de balise n'est pas supporté. Si vous utilisez une fiche HTML, vous pouvez afficher l'éditeur de balise dans le concepteur en sélectionnant Voir Editeur de balise. L'éditeur de balise permet d'examiner et de modifier des balises HTML tout en affichant les contrôles correspondants dans le concepteur situé au dessus. L'éditeur de balise vous permet d'utiliser les fonctionnalités d'achèvement de code,... suite ( see page 211)

Gestion de contrôles utilisateur ASP.NET ( see page 213) Les contrôles utilisateur permettent de réutiliser la fonctionnalité d'interface utilisateur commune entre applications web ASP.NET. Par exemple, vous pourriez créer un contrôle utilisateur encapsulant un écran de connexion. Vous pourriez ensuite ajouter le contrôle utilisateur à n'importe quelle fiche Web nécessitant la fonctionnalité écran de connexion. Pour plus d'informations sur les contrôles utilisateur, cliquez sur le lien à la fin de cette rubrique.

2.5.1 Conception d'une application ASP .NET

Les procédures suivantes décrivent les étapes générales nécessaires à la construction d'un projet ASP.NET simple. Pour desrubriques plus avancées, voir les informations connexes après la procédure.

Pour créer un projet ASP.NET

1. Créez un nouveau projet ASP.NET en cliquant sur Fichier Nouveau Application Web ASP.NET. La boîte de dialogue Nouvelle application Web ASP.NET apparaît.

2. Dans le champ Nom, entrez le nom du projet.

3. Acceptez le chemin par défaut figurant dans le champ Chemin ou entrez un autre chemin dans ce même champ.

Pour modifier les paramètres de serveur Web (facultatif)

1. Dans la boîte de dialogue Nouvelle application Web ASP.NET, cliquez sur Afficher les options. La boîte de dialogue se développe en laissant apparaître d'autres options de serveur.

2. Définissez les différents attributs de lecture et d'écriture requis ou acceptez les paramètres par défaut.

Conseil: Dans la plupart des cas, les paramètres par défaut sont suffisants.

3. Cliquez sur OK. Le concepteur de fiches Web apparaît.

Pour créer une page ASP.NET

1. Assurez-vous que le concepteur est visible.

2. A partir de la palette d'outils, faites glisser des composants dans le concepteur pour définir l'interface utilisateur.

3. Ajoutez la logique de code sous-jacent aux composants.

Pour ajouter la logique de code sous-jacent à un composant

1. Dans le concepteur, double-cliquez sur le composant auquel vous souhaitez appliquer la logique. Le concepteur de code sous-jacent apparaît, avec le curseur placé entre des crochets de gestionnaire d'événement.

2. Ajoutez votre logique.

Pour visualiser et modifier le balisage

1. Cliquez sur l'onglet ApplicationName.aspx de l'éditeur de code pour visualiser le balisage, qui montre les informations des composants HTML et ASP.NET.

2. Modifiez le balisage.

Conception d'une application ASP .NET RAD Studio pour .NET 2.5 Procédures ASP.NET

176

2

Page 183: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

3. Enregistrez le fichier.

Pour exécuter l'application

1. Exécutez l'application en cliquant sur Exécuter Exécuter.

2. Vous pouvez également cliquer avec le bouton droit sur l'éditeur de code et sélectionner Afficher dans le navigateur sur le menu contextuel.

3. Ceci a pour effet d'enregistrer et de compiler l'application. Après avoir compilé l'application, le fichier .aspx généré affiche du code HTML dans le navigateur web par défaut.

Voir aussi

Présentation de ASP.NET ( see page 84)

Construction d'une application "Hello World" ASP.NET ( see page 189)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 187)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 188)

Construction d'un sommaire de site ASP .NET ( see page 190)

2.5.2 Conception d'une application de bases de données ASP.NET

La procédure suivante décrit les étapes minimales requises pour construire une application ASP.NET simple de base dedonnées comme BDP.NET. Une fois les objets connexion requis générés, le projet affiche les données dans un DataGrid.

Pour consulter un exemple de base de données plus détaillé utilisant d'autres technologies de base de données pour ASP.NET2.0, voir Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185).

BDP.NET comprend des concepteurs de composants facilitant la création d'applications de base de données. Au lieu dedéposer des composants individuels sur un concepteur, puis de les configurer séparément, utilisez des concepteurs BDP.NETpour créer et configurer rapidement des composants base de données. La procédure suivante illustre de façon concrète lesprincipaux composants de ASP.NET, ADO.NET et BDP.NET.

La construction d'une application ASP.NET avec des composants de base de données comprend quatre étapes principales :

1. Créer un projet ASP.NET.

2. Configurer des composants connexion de base de données et une source de données.

3. Ajouter un appel à DataBind.

4. Connecter un DataGrid aux composants connexion.

Conseil: Pour le test, utilisez la base de données employee.gdb incluse avec Interbase, si celui-ci est inclus avec votre version du produit.

Pour créer un projet ASP.NET

1. Choisissez Fichier Nouveau Application Web ASP.NET. La boîte de dialogue Nouvelle application Web ASP.NET apparaît.

2. Dans le champ Nom, entrez le nom du projet.

3. Utilisez le chemin par défaut figurant dans le champ Chemin ou entrez le chemin du projet.

2.5 Procédures ASP.NET RAD Studio pour .NET Conception d'une application de bases de

177

2

Page 184: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour modifier les paramètres de serveur Web (facultatif)

1. Dans la boîte de dialogue Nouvelle application Web ASP.NET, cliquez sur Afficher les options. La boîte de dialogue se développe en laissant apparaître d'autres options de serveur.

2. Définissez les différents attributs de lecture et d'écriture requis ou acceptez les paramètres par défaut.

Conseil: Dans la plupart des cas, les paramètres par défaut sont suffisants.

3. Cliquez sur OK. Le concepteur de fiches Web apparaît.

Pour configurer des composants de données

1. Faites glisser et déposez un composant BdpDataAdapter sur le concepteur. Au besoin, sélectionnez BdpDataAdapter.

2. Dans l'inspecteur d'objets, sélectionnez Configurer l'adaptateur de données. La boîte de dialogue de configuration de l'adaptateur de données apparaît.

3. Au besoin, sélectionnez l'onglet Commande. Dans la liste déroulante Connexion, sélectionnez Nouvelle connexion.

4. La boîte de dialogue Fournisseur de données Borland : Editeur de connexions apparaît.

Conseil: Vous pouvez également utiliser l'explorateur de données pour faire glisser et déposer une table sur la surface du concepteur. L'explorateur de données définit automatiquement la chaîne de connexion.

Pour définir une connexion :

1. Dans la boîte de dialogue Fournisseur de données Borland : Editeur de connexions, sélectionnez l'élément approprié dans la liste Connexions.

2. Dans Paramètres de connexion, entrez le chemin de Base de données.

Remarque: S'il s'agit d'une base de données située sur le disque local, préfixez le chemin avec localhost:

. Si vous utilisez Interbase, par exemple, vous entrerez le chemin de votre base de données Interbase. localhost:C:\Program Files\Borland\Interbase\Examples\Database\employee.gdb (ou le chemin correspondant sur votre système).

3. Complétez les champs Nom d'utilisateur et Mot de passe pour la base de données.

4. Cliquez sur Tester pour confirmer la connexion. Une boîte de dialogue confirme l'état de la connexion.

5. Cliquez sur OK pour retourner dans la boîte de dialogue Fournisseur de données Borland : Editeur de connexions.

6. Cliquez sur OK pour retourner dans la boîte de dialogue de configuration de l'adaptateur de données. Les zones Tables et Colonnes de la page Commande sont mises à jour avec les informations de la connexion.

Pour définir une commande :

1. Dans la zone de sélection, entrez une commande SQL.

Conseil: Pour la base de données Interbase, employee.gdb, vous pourriez entrer select * from SALES

, par exemple.

2. Cliquez sur l'onglet de prévisualisation des données.

3. Cliquez sur Actualiser. Les données de colonne et de ligne apparaissent.

4. Cliquez sur l'onglet DataSet (Ensemble de données).

5. Assurez-vous que Nouveau DataSet (Nouvel ensemble de données) est sélectionné.

6. Cliquez sur OK. De nouveaux composants pour DataSet et BdpConnection apparaissent sur le concepteur.

7. Sélectionnez le composant BdpDataAdapter.

Conception d'une application de bases de RAD Studio pour .NET 2.5 Procédures ASP.NET

178

2

Page 185: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

8. Dans l'inspecteur d'objets, sélectionnez la liste déroulante de la propriété Active et définissez la valeur sur True.

Pour connecter un DataGrid à un DataSet

1. Faites glisser et déposez un contrôle web DataGrid sur le concepteur. Au besoin, sélectionnez DataGrid.

2. Dans l'inspecteur d'objets, sélectionnez la liste déroulante de la propriété DataSource. Sélectionnez le composant DataSet généré précédemment (il s'agit par défaut de DataSet1).

3. Dans l'inspecteur d'objets, sélectionnez la liste déroulante de la propriété DataMember. Sélectionnez la table appropriée. L'objet DataGrid affiche les données à partir de l'objet DataSet.

Pour ajouter un appel à DataBind

1. Utilisez la liste déroulante de l'inspecteur d'objets pour sélectionner la fiche Web (WebForm1 est la valeur par défaut).

2. Dans l'inspecteur d'objets, sélectionnez l'onglet Evénements.

3. Définissez l'événement Load sur Page_Load.

4. Dans l'inspecteur d'objets, double-cliquez sur Page_Load. Le concepteur de code sous-jacent apparaît, avec le curseur placé entre des crochets de gestionnaire d'événement.

5. Code de l'appel à DataBind :

this.dataGrid1.DataBind();Self.dataGrid1.DataBind();

Remarque: Si vous utilisez des contrôles orientés données, par exemple à partir d'un fournisseur tiers, vous n'avez peut-êtrepas besoin de coder l'appel à DataBind.

6. Choisissez Exécuter Exécuter. L'application se compile puis le serveur HTTP affiche une fiche Web comportant la grille de données.

Bien que présentant un nombre minimum d'étapes requises pour construire un projet de base de données, la procédure précédente illustre de façon concrète les composants principaux des architectures ASP.NET, ADO.NET et BDP.NET, notamment : fournisseurs, ensembles de données et adaptateurs. L'adaptateur se connecte à la source de données physique via un fournisseur, en envoyant une commande qui lira des données à partir de la source de données et remplira un ensemble de données. Une fois l'ensemble de données rempli, une grille de données affiche ses données.

Utilisez d'autres concepteurs BDP.NET pour modifier et gérer les composants de votre projet.

Voir aussi

Présentation de ASP.NET ( see page 84)

Présentation de ADO.NET ( see page 14)

Fournisseurs de données pour .NET ( see page 27)

Concepteurs de composants ADO.NET ( see page 22)

Création de projets de base de données dans l'explorateur de données. ( see page 118)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 187)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 188)

2.5.3 Développement d'une application ASP.NET avec des contrôles de base de données, Partie 1

Cet exemple montre comment créer une page Web qui contient un contrôle GridView et un contrôle de base de données. Cet

2.5 Procédures ASP.NET RAD Studio pour .NET Développement d'une application

179

2

Page 186: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

exemple illustre les opérations suivantes :

• Ajout d'un composant ASP.NET à une fiche.

• Utilisation de la fenêtre Tâches intelligentes.

• Configuration et connexion à une source de données.

• Utilisation du SQL pour lire les données d'une base de données.

• Exécution de l'application dans un navigateur.

Remarque: Vous pouvez créer des projets ASP.NET seulement dans CodeGear RAD Studio, et non dans les personnalités Win32.

Pour créer une page contenant un contrôle GridView et un contrôle base de données

1. Créez un nouveau projet ASP.NET en cliquant sur Fichier Nouveau Application Web ASP.NET.

2. Dans la boîte de dialogue Nouvelle application Web ASP.NET, nommez votre projet :

• Acceptez le chemin par défaut figurant dans le champ Chemin ou entrez un autre chemin dans ce même champ.

• Choisissez Cassini ou IIS comme serveur dans le menu déroulant Serveur. Cliquez sur OK.

3. (Facultatif) Dans la boîte de dialogue Nouvelle application Web ASP.NET, cliquez sur Afficher les options. La boîte de dialogue se développe et fait apparaître d'autres options de serveur. Définissez les différents attributs de lecture et d'écriture requis ou acceptez les paramètres par défaut.

Conseil: Dans la plupart des cas, les paramètres par défaut sont suffisants.

4. Assurez-vous que l'onglet Conception est sélectionné dans l'éditeur de code. Dans la palette d'outils sous Data Web 2.0, double-cliquez sur le composant GridView pour ajouter le composant à votre application.

5. Affichez la fenêtre Tâches intelligentes du composant GridView en cliquant sur la flèche du coin supérieur droit du GridView ou sur l'option Tâches intelligentes du menu contextuel de GridView.

6. Pour connecter le GridView à une source de données, cliquez sur <Nouvelle source de données> dans la liste déroulante Choisir la source de données. Cela affiche le dialogue Choisir un type de source de données, partie de l'expert Configuration de la source de données.

7. Dans le dialogue Choisir un type de source de données, sélectionnez Base de données. Entrez un ID pour la source de données et cliquez sur OK pour afficher la boîte de dialogue Choisir votre connexion de données.

8. Sur le dialogue Choisir votre connexion de données, cliquez sur Nouvelle connexion.

9. Le dialogue Choisir la source de données liste plusieurs sources de données, déterminées par votre configuration. La liste peut comporter :

• AdoDbx : AdoDbx Client

• Microsoft SQL Server : Microsoft SQL Server

• Blackfish SQL : Blackfish SQL Server Sélectionnez dans les listes la source de données et le fournisseur de données relatifs à cette source de données. Cliquez ensuite sur Continuer.

10. Sur le dialogue Ajouter une connexion, entrez les informations de connexion adéquates.

• Cliquez sur Avancées pour entrer d'autres informations détaillées de connexion pour votre source de données, si nécessaire.

• Cliquez sur le bouton Tester la connexion pour tester la connexion. Cliquez sur OK pour fermer la boîte de dialogue.

11. Sur le dialogue Choisir votre connexion de données, cliquez sur Suivant pour poursuivre la configuration de la source de données.

12. Sur le dialogue Enregistrer la chaîne de connexion dans le fichier de configuration de l'application, entrez un nom et cochez Oui, enregistrer cette connexion sous. Ainsi, la propriété ConnectionString de la source de données référence le nom entré plutôt que la chaîne de connexion réelle. Le fichier web.config de ce projet contient la chaîne de connexion basée sur les informations entrées. Cliquez sur Suivant.

Développement d'une application RAD Studio pour .NET 2.5 Procédures ASP.NET

180

2

Page 187: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

13. Sur le dialogue Configurer l'instruction Select, définissez le bouton radio pour spécifier une instruction SQL Select personnalisée ou générer une instruction SQL Select pour la base de données à laquelle vous êtes connecté. En cas de génération SQL, sélectionnez la table dans la liste déroulante Nom, cochez les colonnes souhaitées, et cliquez facultativement sur les boutons WHERE, ORDER BY ou Avancées pour qualifier l'instruction SQL. Le champ Instruction SELECT montre l'instruction SQL générée. En cas de spécification directe du SQL, cliquez sur Suivant pour afficher la boîte de dialogue Définir les instructions personnalisées ou les procédures stockées et complétez les champs. Facultativement, cliquez sur Constructeur de requêtes pour afficher une boîte de dialogue vous permettant de créer graphiquement une instruction SELECT. Vous pouvez créer des instructions SQL pour les instructions SELECT, UPDATE, INSERT et DELETE en cliquant sur les onglets correspondants. Cliquez sur Suivant dans l'un des dialogues pour poursuivre avec la configuration de la source de données.

Remarque: Si vous spécifiez directement le SQL, vous ne pouvez pas utiliser la fonctionnalité pour générer automatiquement les instructions INSERT, UPDATE ou DELETE.

Remarque: Le constructeur de requêtes

peut seulement construire des instructions SELECT.

14. (Facultatif) Sur le dialogue Tester la requête, cliquez sur Tester la requête pour tester la requête SQL. Si la requête réussit, les données appropriées sont affichées dans le dialogue. Cliquez sur Terminer pour achever la configuration de la source de données.

15. (Facultatif) Si vous sélectionnez le composant SQLDataSource sur l'onglet concepteur, notez que la propriété ConnectionString contient l'information de chaîne de connexion. Les données de la chaîne de connexion sont également stockées dans le fichier web.config de l'élément connectionStrings.

16. (Facultatif) Cliquez sur l'onglet WebForm.aspx de l'éditeur de code pour visualiser le balisage, qui montre les informations des composants HTML et ASP.NET. Vous pouvez voir que la propriété Columns de GridView contient des champs liés aux noms de colonnes de la table de votre base de données.

17. Pour afficher la page dans un navigateur Web, cliquez avec le bouton droit sur l'éditeur de code et sélectionnez Afficher dans le navigateur sur le menu contextuel. Le projet se construit en affichant une fenêtre de statut de la construction qui se ferme à l'achèvement de la construction. Le navigateur affiche une table de la base de données sur laquelle vous travaillez.

C'est la fin de la partie 1 de l'exemple.

Voir aussi

Présentation de ASP.NET ( see page 84)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 187)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 188)

Construction d'un sommaire de site ASP .NET ( see page 190)

2.5.4 Construction d'une application ASP.NET avec des contrôles de base de données, Partie 2

Cet exemple présente un plus ample développement d'une page Web contenant un contrôle GridView et un contrôle de base dedonnées. Les étapes ajoutent davantage de capacités au contrôle GridView, incluant l'édition. Cet exemple illustre lesopérations suivantes :

• Utilisation de la fenêtre Tâches intelligentes.

• Changement de la configuration d'une source de données.

• Exécution de l'application dans un navigateur.

Pour ajouter la fonctionnalité d'édition au contrôle GridView

1. Ouvrez ou reprenez le développement avec le projet décrit dans Construction d'une application de base de données

2.5 Procédures ASP.NET RAD Studio pour .NET Construction d'une application ASP.NET

181

2

Page 188: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ASP.NET ( see page 185). A la fin de cette phase, le volet Conception de l'éditeur de code affichait un contrôle GridView et un contrôle SqlDataSource.

2. Pour activer les fonctionnalités d'affichage de GridView, ouvrez la fenêtre Tâches intelligentes du composant GridView en cliquant sur la flèche située près du coin supérieur droit du contrôle GridView. Cochez Activer le tri, Activer la sélection et Activer la pagination. La représentation à la conception du GridView a été mise à jour.

3. Pour afficher la page dans un navigateur Web, cliquez avec le bouton droit sur l'éditeur de code et cliquez sur Afficher dans le navigateur dans le menu contextuel. La pagination, le tri et la sélection sont à présent supportés par cette grille. Vous pouvez trier chaque colonne en cliquant sur le nom de colonne en haut de la colonne. "Sélectionner" ne semble pas fonctionner car le format du GridView ne met pas en évidence les lignes sélectionnées. La pagination n'est pas activée si les données tiennent sur une seule page.

4. Revenez au volet Concepteur de l'éditeur de code. Ouvrez la fenêtre Tâches intelligentes du GridView et cliquez sur Format automatique pour afficher la boîte de dialogue Format automatique. Choisissez Classique. La description du fichier webform1.aspx du composant asp:GridView comporte maintenant des propriétés de style qui ont été modifiées en sélectionnant Classique sur le dialogue Format automatique.

5. A ce stade, la sélection des lignes est activée. Pour activer l'édition des lignes, vous devez reconfigurer la connexion. Sur la fenêtre Tâches intelligentes du GridView, cliquez sur Configurer la source de données. Cliquez sur Suivant dans le dialogue Choisir votre connexion de données. Cliquez sur le bouton Avancées dans le dialogue Configurer l'instruction Select. Sur le dialogue Options de génération SQL avancées, cochez Générer les instructions INSERT, UPDATE et DELETE. Cliquez sur OK pour fermer le dialogue Options de génération SQL avancées.

Remarque: Vous ne pouvez pas utiliser le dialogue Options de génération SQL avancées

si vous choisissez de générer vos propres instructions SQL dans le dialogue Configurer l'instruction Select.

6. Cliquez sur Suivant puis sur Terminer dans le dialogue Configurer l'instruction Select pour quitter l'expert.

7. La fenêtre Tâches intelligentes du GridView contient les cases à cocher Activer l'édition et Activer la suppression. Cochez ces deux cases. Le contrôle GridView du volet Conception affiche à présent les liens Editer et Supprimer.

8. Pour afficher la page dans un navigateur Web, cliquez avec le bouton droit sur l'éditeur de code et cliquez sur Afficher dans le navigateur dans le menu contextuel. Les liens Editer, Supprimer et Sélectionner devraient fonctionner pour chaque ligne.

C'est la fin de la partie 2 de l'exemple.

Voir aussi

Présentation de ASP.NET ( see page 84)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 188)

Construction d'un sommaire de site ASP .NET ( see page 190)

2.5.5 Construction d'une application ASP.NET avec des contrôles de base de données, Partie 3

Cet exemple présente un plus ample développement d'une page Web avec un contrôle GridView et un contrôle de base dedonnées. Il ajoute un contrôle FormView pour insérer des lignes. Cet exemple illustre les opérations suivantes :

• Ajout d'un composant ASP.NET à une fiche.

• Utilisation de la fenêtre Tâches intelligentes.

• Edition du balisage pour changer l'apparence d'un composant.

• Exécution de l'application dans un navigateur.

Construction d'une application ASP.NET RAD Studio pour .NET 2.5 Procédures ASP.NET

182

2

Page 189: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour ajouter un contrôle FormView

1. Ouvrez ou reprenez le développement avec le projet décrit dans Construction d'une application de base de données ASP.NET ( see page 187). A la fin de cette phase, le volet Conception de l'éditeur de code affichait un contrôle GridView et un contrôle SqlDataSource.

2. Assurez-vous que l'onglet Conception est sélectionné dans l'éditeur de code. Ajoutez une nouvelle ligne à la fin de la conception Web en appuyant sur les touches Ctrl-Fin, puis sur la touche Entrée. Dans la palette d'outils sous Données Web, double-cliquez sur un composant FormView qui est ajouté à la fiche.

3. Affichez la fenêtre Tâches intelligentes pour le composant FormView en cliquant sur l'onglet situé dans le coin supérieur droit du composant. Dans le menu déroulant Choisir la source de données, sélectionnez la source de données que vous aviez préalablement ajoutée et configurée. Sur l'onglet Conception, le composant FormView affiche les champs de données.

4. Cliquez sur Format automatique dans la fenêtre Tâches intelligentes du FormView. Sur la boîte de dialogue Format automatique, sélectionnez Ardoise et cliquez sur OK.

5. Dans l'onglet Conception, sélectionnez le composant FormView. Dans l'inspecteur d'objets, changez la valeur de la propriété DefaultMode en Insert. Cette modification vous permet d'utiliser le contrôle FormView pour ajouter des lignes dans la base de données.

6. L'apparence initiale du contrôle FormView comporte des libellés et des champs sur la même ligne. L'apparence du contrôle FormView est définie par le balisage de l'entrée InsertItemTemplate du fichier de balisage Default.aspx. Affichez le texte de Default.aspx en cliquant sur l'onglet Default.aspx en bas du volet Default.aspx. Afin de placer les libellés et les champs sur des lignes séparées, modifiez Default.aspx et ajoutez des balises <br/> immédiatement après les libellés de colonne. Le contrôle FormView a maintenant les libellés et les champs sur des lignes séparées.

7. Affichez la page dans un navigateur Web, en cliquant avec le bouton droit sur l'éditeur de code et en sélectionnant l'option Afficher dans le navigateur du menu contextuel. La fiche est à présent affichée avec le contrôle FormView pour l'insertion de lignes.

L'exemple est terminé.

Voir aussi

Présentation de ASP.NET ( see page 84)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 185)

Construction d'une application ASP.NET avec des contrôles de base de données ( see page 187)

Construction d'un sommaire de site ASP .NET ( see page 190)

2.5.6 Construction d'une application "Hello World" ASP.NET

Malgré sa simplicité, l'application "Hello World" ASP.NET illustre les étapes essentielles de la création d'une applicationASP.NET. L'application utilise une fiche Web, des contrôles et un événement permettant d'afficher un résultat en réponse à uneaction de l'utilisateur.

Pour créer un projet ASP.NET

1. Créez un nouveau projet ASP.NET en cliquant sur Fichier Nouveau Application Web ASP.NET. La boîte de dialogue Nouvelle application Web ASP.NET apparaît.

2. Dans le champ Nom, entrez HelloWorld comme nom d'application.

3. Acceptez le chemin par défaut figurant dans le champ Chemin ou entrez un autre chemin.

2.5 Procédures ASP.NET RAD Studio pour .NET Construction d'une application "Hello

183

2

Page 190: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour modifier les paramètres de serveur Web (facultatif)

1. Dans la boîte de dialogue Nouvelle application Web ASP.NET, cliquez sur Afficher les options. La boîte de dialogue se développe en laissant apparaître d'autres options de serveur.

2. Définissez les différents attributs de lecture et d'écriture requis ou acceptez les paramètres par défaut.

Conseil: Pour la plupart des projets ASP.NET, les paramètres par défaut sont suffisants.

3. Cliquez sur OK. Le concepteur de fiches Web apparaît.

Pour créer la page ASP.NET

1. Si nécessaire, cliquez sur la vue Conception.

2. Dans la catégorie Contrôles Web de la palette d'outils, faites glisser un composant Button sur la surface du concepteur. Le contrôle Button apparaît sur le concepteur. Assurez-vous que le contrôle est sélectionné.

3. Dans l'inspecteur d'objets, définissez la propriété Text sur Hello, world!.

Pour associer du code au contrôle bouton

1. Dans le concepteur, double-cliquez sur le contrôle Button. Le concepteur de code sous-jacent apparaît, avec le curseur placé entre des crochets de gestionnaire d'événement.

2. Codez la logique de l'application :

button1.Text = "Hello, développeur !";button1.Text := 'Hello, développeur !';

3. Choisissez Fichier Enregistrer pour enregistrer l'application.

Pour exécuter l'application "Hello World"

1. Choisissez Exécuter Exécuter. L'application se compile puis le serveur HTTP affiche dans le navigateur par défaut une fiche Web comportant le bouton "Hello, world!".

2. Cliquez sur le bouton "Hello, world!". Le serveur insère la réponse, "Hello, développeur!" dans la page mise à jour.

3. Fermez le navigateur Web pour revenir à l'EDI.

Voir aussi

Présentation de ASP.NET ( see page 84)

Conception d'une application ASP .NET ( see page 181)

Construction d'une application de base de données ASP.NET ( see page 182)

2.5.7 Construction d'un plan de site ASP .NET

Cet exemple montre comment créer un site Web avec un SiteMap (plan de site), Menu, SiteMapPath et une master page. Unfichier web.sitemap est un fichier XML qui décrit la structure d'un site web. Une master page sert de modèle pour les pages dusite Web. Un Menu et un SiteMapPath vous permettent de naviguer sur un site Web. Cet exemple illustre les opérationssuivantes :

• Création d'un plan de site Web.

• Création d'une master page.

• Ajout d'un Menu et d'un SiteMapPath à une master page.

Construction d'un plan de site ASP .NET RAD Studio pour .NET 2.5 Procédures ASP.NET

184

2

Page 191: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

• Utilisation de la fenêtre Tâches intelligentes.

• Ajout de pages contenu référençant la master page sur le site.

• Exécution de l'application dans un navigateur.

L'exemple crée le site Web en plusieurs étapes, chaque étape étant construite d'après les étapes précédentes.

Remarque: Vous pouvez créer des projets ASP.NET seulement dans CodeGear RAD Studio, et non dans les personnalités Win32.

Pour ajouter un plan de site (SiteMap)

1. Créez un nouveau projet ASP.NET en cliquant sur Fichier Nouveau Application Web ASP.NET.

2. Dans la boîte de dialogue Nouvelle application Web ASP.NET, nommez votre projet ou utilisez la valeur par défaut. Acceptez le chemin par défaut figurant dans le champ Chemin ou entrez un autre chemin dans ce même champ. Choisissez Cassini ou IIS comme serveur dans le menu déroulant Serveur.

3. (Facultatif) Dans la boîte de dialogue Nouvelle application Web ASP.NET, cliquez sur Afficher les options. La boîte de dialogue se développe et fait apparaître d'autres options de serveur. Définissez les différents attributs de lecture et d'écriture requis ou acceptez les paramètres par défaut.

Conseil: Dans la plupart des cas, les paramètres par défaut sont suffisants.

4. Ajoutez un nouveau fichier web.sitemap au projet en cliquant sur Fichier Nouveau Autre. Dans la boîte de dialogue Nouveaux éléments sous Nouveaux fichiers ASP.NET, sélectionnez Plan du site et cliquez sur OK. L'EDI affiche un nouvel onglet Web.sitemap avec un texte modèle de plan de site.

5. Remplacez le texte du modèle sur l'onglet Web.sitemap par le texte suivant :

<?xml version="1.0" encoding="utf-8" ?><siteMap> <siteMapNode title="Home" url="~/home.aspx" > <siteMapNode title="Book 1" url="~/book1/book1.aspx" > <siteMapNode title="Chapter 1" url="~/book1/chapter1/chapter1.aspx" > </siteMapNode> </siteMapNode> </siteMapNode></siteMap>

Ce XML définit une hiérarchie des pages dans le site. Enregistrez cette modification en cliquant sur Fichier Enregistrer ou enentrant Ctrl-S.

Pour ajouter une master page

1. Ajoutez une nouvelle master page au projet en cliquant sur Fichier Nouveau Autre. Dans la boîte de dialogue Nouveaux éléments sous Nouveaux fichiers ASP.NET, sélectionnez Master Page ASP.NET et cliquez sur OK. Sur le dialogue Nouvelle Master Page, le nom par défaut de la master page est MasterPage1.master. Vous pouvez entrer un autre nom, mais vous devez utiliser l'extension .master. Cliquez sur OK. L'EDI affiche un nouvel onglet MasterPage1.master contenant une nouvelle master page avec un emplacement de contenu. Le contenu par défaut d'une master page est un contrôle ContentPlaceHolder unique, utilisé pour indiquer où le contenu peut être inséré dans les pages contenu référençant cette master page. Cet exemple utilise seulement un ContentPlaceHolder, mais vous pouvez avoir plusieurs ContentPlaceHolder sur une master page.

2. Cliquez sur l'onglet MasterPage1.master en bas de la master page pour visualiser son balisage. Avant d'ajouter les contrôles Menu et SiteMapPath à la master page, ajoutez certains éléments <div> pour contrôler le positionnement de ces contrôles. Pour ce faire, remplacez le texte de l'élément body de la master page par le texte suivant :

<body> <form runat="server"> <div id="titlediv" style="WIDTH: 100%"> <h1>Sample</h1> </div> <div id="breadcrumbdiv" style="WIDTH: 100%"> </div>

2.5 Procédures ASP.NET RAD Studio pour .NET Construction d'un plan de site ASP .NET

185

2

Page 192: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

<div id="menudiv" style="FLOAT: left; WIDTH: 33%"> </div> <div id="contentdiv" style="FLOAT: left; WIDTH: 66%"> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder> </div> </form></body>

Enregistrez cette modification en cliquant sur Fichier Enregistrer ou en entrant Ctrl-S. La master page a maintenantplusieurs divisions qui apparaissent sous forme de rectangles dans le volet Conception. L'emplacement de contenu estégalement décalé sur le côté droit de la page. Les master pages sont utilisées pour construire des pages contenu. Tous leséléments d'une master page apparaissent sur une page contenu basée sur cette master page. Si la master page est modifiée,cette modification se propage sur les pages contenu dérivées de celle-ci.

Pour ajouter un menu et un SiteMapPath sur la master page

1. Pour ajouter un menu, visualisez le volet Conception de la master page. Faites glisser un contrôle Menu de la palette d'outils sous Navigation dans le <div> immédiatement sur la gauche du ContentPlaceHolder. Positionnez le Menu afin que sa partie supérieure soit alignée avec la partie supérieure du ContentPlaceHolder.

2. Affichez la fenêtre Tâches intelligentes du contrôle Menu en cliquant sur la flèche du coin supérieur droit du Menu ou en cliquant sur l'option Tâches intelligentes du menu contextuel de Menu.

3. Pour connecter le Menu à une source de données, cliquez sur <Nouvelle source de données> dans la liste déroulante Choisir la source de données de la fenêtre Tâches intelligentes. Cela affiche le dialogue Choisir un type de source de données.

4. Sur le dialogue Choisir un type de source de données, sélectionnez le type de source de données Plan du site. Entrez un ID pour la source de données ou utilisez l'ID par défaut et cliquez sur OK pour ajouter la source de données.

5. Pour personnaliser le contrôle Menu, cliquez sur le Menu. Dans l'inspecteur d'objets, définissez la propriété StaticDisplayLevels sur 3. C'est le nombre de niveaux affichés dans le Menu. Notez que le menu affiche les données du fichier XML SiteMap dans le volet Conception.

6. Pour ajouter un SiteMapPath, visualisez le volet Conception de la master page. Faites glisser un contrôle SiteMapPath de la palette d'outils sous Navigation dans le second <div> à partir du haut de la master page, juste au-dessus du <div> contenant le Menu. Un SiteMapPath présente le chemin utilisé pour obtenir une page et permet de retracer vos étapes.

Le menu et le SiteMapPath sont utilisés pour la navigagtion du site.

Pour ajouter une page contenu

1. Créez une nouvelle page contenu en cliquant sur Fichier New Autre. Dans la boîte de dialogue Nouveaux éléments sous Nouveaux fichiers ASP.NET, sélectionnez Page contenu ASP.NET et cliquez sur OK. Dans le dialogue Nouvelle page contenu, nommez la page Home.aspx. Sélectionnez ~/MasterPage1.master dans le menu déroulant Fichier master page. Dans la page contenu résultante, les éléments gris sont les éléments dont la page contenu hérite de la master page : tout à l'exception du contrôle ContentPlaceHolder. Ces éléments sont grisés pour indiquer qu'ils sont en lecture seule. Seul le contrôle ContentPlaceHolder peut être modifié.

2. Dans la partie inférieure du volet Home.aspx, cliquez sur l'onglet Home.aspx. Sur la première ligne, définissez l'attribut Title sur Title="Home". Enregistrez cette modification en cliquant sur Fichier Enregistrer ou en entrant Ctrl-S.

3. La page contenu (home.aspx) a un seul contrôle Content qui correspond au contrôle ContentPlaceHolder de la master page (masterpage1.master). Pour personnaliser la page contenu, cliquez sur l'onglet Conception dans la partie inférieure du volet Home.aspx. Cliquez à l'intérieur de l'élément ContentPlaceHolder et tapez Home.

Cette page contenu servira de page d'accueil du site.

Pour créer le contenu d'un site

1. Pour créer un contenu de site, vous devez créer des pages contenu et des dossiers pour les contenir. Pour créer un nouveau dossier, cliquez avec le bouton droit sur le projet dans le gestionnaire de projets et cliquez sur Ajouter nouveau Dossier. Entrez Book1 comme nom de dossier.

Construction d'un plan de site ASP .NET RAD Studio pour .NET 2.5 Procédures ASP.NET

186

2

Page 193: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2. Cliquez avec le bouton droit sur le dossier Book1 dans le gestionnaire de projets et cliquez sur Ajouter nouveau Autre. Dans la boîte de dialogue Nouveaux éléments sous Nouveaux fichiers ASP.NET, sélectionnez Page contenu ASP.NET et cliquez sur OK. Dans le dialogue Nouvelle page contenu, nommez la page Book1.aspx. Sélectionnez ~/MasterPage1.master dans le fichier master page.

3. Dans la partie inférieure du volet Book1.aspx, cliquez sur l'onglet Book1.aspx. Sur la première ligne, définissez l'attribut Title sur Title="Book1". Enregistrez cette modification en cliquant sur Fichier Enregistrer ou en entrant Ctrl-S.

4. Dans la partie inférieure du volet Book1.aspx, cliquez sur l'onglet Conception. Cliquez à l'intérieur de l'élément ContentPlaceHolder et entrez Book1.

5. Ajoutez un dossier dans le dossier Book1. Cliquez avec le bouton droit sur le dossier Book1 dans le gestionnaire de projets et cliquez sur Ajouter nouveau Dossier. Entrez Chapter1 comme nom de dossier.

6. Cliquez avec le bouton droit sur le dossier Chapter1 dans le gestionnaire de projets et cliquez sur Ajouter nouveau Autre. Dans la boîte de dialogue Nouveaux éléments sous Nouveaux fichiers ASP.NET, sélectionnez Page contenu ASP.NET et cliquez sur OK. Dans le dialogue Nouvelle page contenu, nommez la page Chapter1.aspx. Sélectionnez ~/MasterPage1.master dans le fichier master page.

7. Dans la partie inférieure du volet Chapter1.aspx, cliquez sur l'onglet Chapter1.aspx. Sur la première ligne, définissez l'attribut Title sur Title="Chapter1". Enregistrez cette modification en cliquant sur Fichier Enregistrer ou en entrant Ctrl-S.

8. Dans la partie inférieure du volet Chapter1.aspx, cliquez sur l'onglet Conception. Cliquez à l'intérieur de l'élément ContentPlaceHolder et entrez Chapter1.

Les pages et les dossiers ont été ajoutés afin de correspondre aux éléments appropriés du fichier XML sitemap. C'est la fin de l'ajout d'un contenu de site.

Pour terminer le site

1. Le fichier Default.aspx n'est plus nécessaire. Cliquez avec le bouton droit sur Default.aspx dans le gestionnaire de projets et cliquez sur Supprimer. Cliquez sur Oui dans le dialogue de confirmation.

2. Vous devez définir une page de démarrage, c'est-à-dire la première page affichée lors de l'exécution de l'application. Dans le gestionnaire de projets, cliquez avec le bouton droit sur Home.aspx et sélectionnez Définir comme page de démarrage dans le menu contextuel.

L'application est maintenant prête pour l'exécution.

Pour visualiser la page dans un navigateur Web

1. Pour exécuter l'application et la visualiser dans un navigateur, cliquez sur Exécuter Exécuter. Le projet se construit en affichant une fenêtre de statut de la construction qui se ferme à l'achèvement de la construction.

2. La page d'acceuil doit être affichée dans un navigateur Web.

3. Cliquez sur Book1 dans le menu pour afficher la page Book1. Cliquez sur Chapter1 pour afficher la page Chapter1.

4. Notez que le SiteMapPath est mis à jour pour afficher l'emplacement dans le site de la page actuellement affichée. Vous pouvez cliquer sur les noeuds pour accéder aux pages précédentes du chemin.

Le projet est terminé.

Voir aussi

Présentation de ASP.NET ( see page 84)

Construction d'une application de base de données ASP.NET 2.0 ( see page 185)

Construction d'une application de base de données ASP.NET 2.0 ( see page 187)

Construction d'une application de base de données ASP.NET 2.0 ( see page 188)

2.5 Procédures ASP.NET RAD Studio pour .NET Création d'une application de

187

2

Page 194: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.5.8 Création d'une application de porte-documents avec des contrôles DB Web

Les contrôles DB Web, la mise en cache XML et les adaptateurs de données BDP.NET permettent de créer des applications deporte-documents côté serveur. Vous pouvez créer ce type d'application uniquement lorsque vous employez l'authentificationutilisateur pour garantir que chaque utilisateur possède un exemplaire unique du fichier XML.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour créer une application de porte-documents

1. Créez une application BDP.NET.

2. Ajoutez un contrôle DBWebDataSource et liez-le à l'ensemble de données BDP.

3. Configurez le contrôle DBWebDataSource pour générer des fichiers XML et XSD.

4. Configurez les propriétés AutoUpdateCache et UseUniqueFileName.

5. Configurez un événement OnApplyChangesRequest pour appeler la méthode AutoUpdate du BdpDataAdapter.

6. Exécution de l'application.

Pour configurer les propriétés AutoUpdateCache et UseUniqueFileName

1. Construisez une application de base de données ASP.NET standard utilisant les composants BDP.NET et le composant DBWebDataSource.

2. Dans le composant DBWebDataSource, indiquez les noms des fichiers XML et XSD à créer.

Remarque: Il est préférable de créer ces fichiers dans le répertoire du projet ou dans un sous-répertoire ne dépendant pas du répertoire du projet, habituellement sur votre serveur web.

3. Définissez la propriété AutoUpdateCache sur True.

4. Définissez UseUniqueFileName sur True.

5. Sélectionnez l'onglet Evénements pour le composant DBWebDataSource.

6. Double-cliquez sur le champ OnApplyChangesRequest pour afficher le gestionnaire d'événement dans l'éditeur de code.

7. Ajoutez le code suivant :

BdpDataAdapter1.AutoUpdate;

8. Choisissez Exécuter Exécuter. Lors de sa première exécution, l'application crée le fichier XSD à l'aide des métadonnées du serveur.

Lorsqu'un utilisateur exécute l'application pour la première fois, celle-ci extrait des données à partir du serveur. Lorsque l'utilisateur modifie des données, l'application enregistre ces modifications sur le serveur dans un fichier unique dont le nom s'appuie sur celui de l'utilisateur. Si l'utilisateur arrête l'application et la redémarre ultérieurement, l'application restaure les données spécifiques de l'utilisateur. L'utilisateur peut alors annuler ou modifier les données. A chaque appel réussi de OnApplyChangesRequest, l'application supprime les fichiers utilisateur uniques et en crée de nouveaux.

Avertissement: Si les tables ou les colonnes auxquelles a accédé l'application sont altérées après l'exécution de l'application, vous devez supprimer le fichier XSD pour éviter toute discordance entre le fichier XSD et les métadonnées du serveur. Autrement, vous risquez d'être confronté à des erreurs d'exécution et à un comportement imprévisible.

Voir aussi

Présentation des contrôles Borland DB Web ( see page 87)

Création d'une application de RAD Studio pour .NET 2.5 Procédures ASP.NET

188

2

Page 195: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Utilisation de fichiers XML avec des contrôles DB Web ( see page 98)

Conception d'une application avec des contrôles DB Web ( see page 195)

2.5.9 Construction d'une application avec les contrôles DB Web

Les procédures suivantes décrivent les étapes minimales requises pour construire une application ASP.NET simple de base dedonnées à l'aide des contrôles DB Web et de BDP.NET. Une fois les objets connexion requis générés, le projet affiche lesdonnées dans un DBWebGrid avec un DBWebNavigator. Des informations supplémentaires sont fournies pour les autrescontrôles DB Web courants.

Les utilisateurs doivent déjà être familiarisés avec la création d'un projet ASP.NET à l'aide de BDP.NET.

La construction d'une application ASP.NET avec les contrôles DB Web et BDP.NET comprend trois étapes principales :

1. Préparez un projet ASP.NET avec BDP.NET ou d'autres composants de connexion.

2. Faites glisser et déposez un composant DBWebDataSource sur le concepteur et définissez sa propriété DataSource sur un DataSet, DataView ou DataTable.

3. Faites glisser et déposez un composant DBWebGrid et d'autres contrôles sur le concepteur.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devez utiliser à la place les contrôles Web standard.

Pour préparer un projet ASP.NET pour des contrôles DB Web :

1. Créer un projet ASP.NET.

2. Configurez les composants BDP.NET ou d'autres composants d'accès aux données, en définissant la propriété DataSource sur un DataSet, DataView ou DataTable existant.

Conseil: Pour plus d'informations sur la définition des composants d'accès aux données BDP.NET, reportez-vous à la procédure de construction d'une application de base de données ASP.NET. Au lieu d'utiliser un DataGrid et d'ajouter un appel DataBind, vous allez utiliser les contrôles DB Web sans appel DataBind dans la procédure suivante.

Pour configurer un DBWebDataSource

1. Placez un composant DBWebDataSource sur le concepteur.

2. Dans l'inspecteur d'objets, sélectionnez la propriété DataSource.

3. Sélectionnez une source de données existante (appelée par défaut dataSet1).

Pour configurer des contrôles DB Web

1. Placez un composant DBWebNavigator sur le concepteur.

2. Dans l'inspecteur d'objets, sélectionnez une source de données dans la propriété DBDataSource.

3. Dans l'inspecteur d'objets, sélectionnez un DataTable à partir de la liste déroulante de la propriété TableName.

Conseil: Si aucun TableName n'est disponible, vérifiez que la propriété Active du BdpDataAdapter est définie par True.

4. Placez un composant DBWebGrid sur le concepteur.

5. Dans l'inspecteur d'objets, sélectionnez la source de données à partir de la liste déroulante de la propriété DBDataSource.

6. Dans l'inspecteur d'objets, sélectionnez un DataTable à partir de la liste déroulante de la propriété TableName. La grille

2.5 Procédures ASP.NET RAD Studio pour .NET Construction d'une application avec les

189

2

Page 196: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

affiche des données.

7. Placez d'autres contrôles DB Web si nécessaire.

8. Définissez de façon appropriée les valeurs des propriétés DBDataSource, TableName et autres.

Remarque: Pour les contrôles colonne orientés données (comme DBWebTextBox, DBWebImage, DBWebMemo et DBWebCalendar), définissez aussi la propriété ColumnName. Pour les contrôles références orientés données (comme DBWebDropDownList, DBWebListBox et DBWebRadioButtonList), définissez également les propriétés LookupTableName, DataTextField et DataValueField.

9. Choisissez Exécuter Exécuter. L'application se compile puis le serveur HTTP affiche une fiche Web avec DBWebGrid affichant les données.

Conseil: Les composants web déposés à partir de la palette d'outils

sont placés en position absolue sur une fiche Web ASP.NET. Un double clic sur des composants de la palette d'outils les laisse dans la disposition du flux ASP.NET. La disposition du flux est beaucoup plus facile à gérer. Par exemple, des contrôles en position absolue sur une fiche web peuvent écraser d'autres contrôles en cas de modification de leur taille pendant l'exécution. L'écrasement peut se produire quand vous ajoutez ou supprimez des lignes d'un contrôle grille, ce qui modifie sa taille.

Voir aussi

Conception d'une application de bases de données ASP.NET

Contrôles CodeGear DB Web ( see page 87)

Utilisation de fichiers XML avec des contrôles DB Web ( see page 98)

Présentation de l'expert des contrôles DB Web ( see page 92)

Présentation de ASP.NET ( see page 84)

Présentation de ADO.NET ( see page 14)

Fournisseurs de données pour .NET ( see page 27)

Concepteurs de composants ADO.NET ( see page 22)

2.5.10 Conversion d'éléments HTML en contrôles serveur

A la différence des contrôles Web, les éléments HTML ne peuvent pas, par défaut, être contrôlés par programme. Cependant,vous pouvez convertir un élément HTML en contrôle serveur, puis écrire du code pour accéder à l'élément ou le modifier. Laplupart des éléments HTML figurant dans la palette d'outils peuvent être convertis à l'aide de la commande Exécuter commeun contrôle serveur. Les éléments HTML qui n'apparaissent pas dans la palette d'outils (body, par exemple) peuvent êtreconvertis manuellement.

Les procédures suivantes expliquent comment convertir un élément table HTML à l'aide de la commande Exécuter comme uncontrôle serveur et comment convertir un élément body manuellement.

Pour convertir un élément de table HTML en contrôle serveur

1. Alors que l'application ASP.NET est ouverte, affichez le concepteur.

2. A partir de la palette d'outils, ajoutez l'élément Tableau HTML de la catégorie Eléments HTML dans le concepteur.

3. Cliquez à l'aide du bouton droit sur l'élément Tableau dans le concepteur, puis choisissez Exécuter comme un contrôle serveur. L'icône contrôle serveur est ajoutée à l'élément Tableau. Dans le fichier .aspx, les attributs id="TABLE1" et runat="server" sont ajoutés à la balise table. Dans le fichier sous-jacent, TABLE1 est déclaré à l'aide de System.Web.UI.HtmlControls.HtmlTable.

Conversion d'éléments HTML en contrôles RAD Studio pour .NET 2.5 Procédures ASP.NET

190

2

Page 197: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

4. Vous pouvez à présent référencer TABLE1 dans le code. A titre d'essai, ajoutez un composant Button de la catégorie Contrôles Web de la palette d'outils au concepteur.

5. Double-cliquez sur le bouton. L'éditeur de code s'ouvre sur l'événement click du bouton.

6. Ajoutez la ligne suivante au gestionnaire d'événement pour modifier en bleu la couleur d'arrière-plan du tableau. Notez que TABLE1 est l'identificateur ajouté automatiquement à la balise table à l'étape 3.

TABLE1.BgColor := 'blue';TABLE1.BgColor = "blue";

7. Choisissez Exécuter Exécuter pour lancer l'application.

8. Cliquez sur le bouton pour modifier la couleur de la table.

Pour convertir manuellement un élément HTML body en contrôle serveur

1. Alors que l'application ASP.NET est ouverte, affichez le fichier .aspx.

2. Ajoutez les attributs runat="server" et id="identifier" à la balise body, identifier étant un identificateur de description tel que bodytag.

3. Ajoutez la déclaration suivante à la section strict protected du fichier sous-jacent :

bodytag: System.Web.UI.HtmlControls.HtmlGenericControl;protected System.Web.UI.HtmlControls.HtmlGenericControl bodytag;

4. Vous pouvez à présent référencer bodytag dans le code. A titre d'essai, ajoutez un composant Button de la catégorie Contrôles Web de la palette d'outils au concepteur.

5. Double-cliquez sur le bouton. L'éditeur de code s'ouvre sur l'événement click du bouton.

6. Ajoutez la ligne suivante pour modifier en jaune la couleur d'arrière-plan de la fiche Web.

bodytag.Attributes['bgcolor'] := 'yellow';bodytag.Attributes["bgcolor"] = "yellow";

7. Choisissez Exécuter Exécuter pour lancer l'application.

8. Cliquez sur le bouton pour modifier la couleur d'arrière-plan de la fiche.

Voir aussi

Choix entre éléments HTML et contrôles Web

2.5.11 Création d'un fichier XML pour des contrôles DB Web

Vous pouvez utiliser des fichiers XML en tant que source de données, en particulier si vous souhaitez prototyper desapplications sans effectuer des lectures et des écritures dans une base de données. Vous devez d'abord créer le fichier XML. Lecontrôle DBWebDataSource fournit un moyen performant de créer le fichier XML à partir de données issues d'une base dedonnées. Cette procédure suppose que vous pouvez créer une connexion à une base de données dynamique contenant lesdonnées que vous souhaitez employer.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour créer et utiliser un fichier XML

1. Créez une application ASP.NET utilisant les contrôles DB Web.

2. Indiquez le fichier XML comme source de données d'une nouvelle application ASP.NET.

Pour créer une application ASP.NET utilisant des contrôles DBWeb

1. Choisissez Fichier Nouveau Application Web ASP.NET pour Delphi pour .NET.

2.5 Procédures ASP.NET RAD Studio pour .NET Création d'un fichier XML pour des

191

2

Page 198: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2. Créez une connexion de base de données et un adaptateur de données utilisant les contrôles BDP.NET ou d'autres contrôles adaptateur de données.

3. Faites glisser et déposez un contrôle DBWebDataSource sur le concepteur à partir de la zone DB Web de la palette d'outils.

4. Dans la propriété XMLFileName ou XMLSchemaFile, indiquez le nom d'un fichier qui n'existe pas encore.

5. Générez un ensemble de données à partir de l'adaptateur de données.

6. Définissez la propriété DataSource du DBWebDataSource sur dataSet1.

7. Définissez la propriété Active de l'adaptateur de données sur True.

8. Choisissez Exécuter Exécuter. Ceci permet non seulement d'exécuter l'application mais également de créer le fichier XML ou XSD et de le remplir avec des données du DataSet.

Pour indiquer le fichier XML comme source de données d'une nouvelle application ASP.NET

1. Choisissez Fichier Nouveau Application Web ASP.NET pour Delphi pour .NET.

2. Faites glisser et déposez un composant DataSet sur le concepteur à partir de la zone Composants de données de la palette d'outils.

3. Faites glisser et déposez un contrôle DBWebDataSource sur le concepteur à partir de la zone DB Web de la palette d'outils.

4. Indiquez le nom du fichier XML existant au niveau de la propriété XMLFileName du contrôle DBWebDataSource.

Remarque: Si vous avez créé un fichier XSD au lieu d'un fichier XML, indiquez ici le nom du fichier XSD.

5. Indiquez le composant DataSet au niveau de la propriété DataSource du contrôle DBWebDataSource.

6. Faites glisser et déposez un contrôle DBWebGrid sur le concepteur à partir de la zone DB Web de la palette d'outils.

7. Définissez la propriété DBDataSource du DBWebGrid sur le nom du DBWebDataSource

8. Choisissez Exécuter Exécuter pour afficher l'application. L'application extrait des données du DataSet et du fichier XML pour remplir le DBWebGrid.

Avertissement: Il est possible de spécifier un fichier XML existant dans la propriété XMLFileName de votre DBWebDataSource ainsi qu'un BdpDataAdapter actif et son DataSet. Vous pouvez exécuter l'application pour que les contrôles DBWeb affichent les données extraites du fichier XML. Cependant, cela ne constitue pas l'utilisation ni le comportement habituel des fonctionnalités XML du DBWebDataSource. Bien que les données de votre fichier XML puissent s'afficher correctement, les résultats d'une mise à jour ou de toute autre opération sur les données seront imprévisibles.

Voir aussi

Utilisation de fichiers XML avec des contrôles DBWeb ( see page 98)

Présentation des contrôles DBWeb Borland ( see page 87)

Conception d'une application avec des contrôles DBWeb ( see page 195)

Définition de permissions pour l'utilisation de fichiers XML ( see page 204)

Conception d'une application de bases de données ASP.NET ( see page 182)

2.5.12 Création de métadonnées pour un ensemble de données

Lorsque vous choisissez d'utiliser un fichier XML pour une source de données dans une application ASP.NET utilisant lescontrôles DB Web, vous pouvez avoir besoin de créer les métadonnées afin de structurer les données XML de votre ensemble

Création de métadonnées pour un RAD Studio pour .NET 2.5 Procédures ASP.NET

192

2

Page 199: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

de données. Si vous avez choisi de créer un fichier XML sans fichier de schéma XML (.xsd), vous devez créer manuellement lesmétadonnées. Cette procédure suppose que vous avez déjà créé un fichier XML contenant des données.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour configurer l'application

1. Choisissez Fichier Nouveau Application Web ASP.NET pour Delphi pour .NET.

2. Faites glisser et déposez un contrôle DBWebDataSource sur la fiche.

3. Faites glisser et déposez un composant DataSet sur la fiche.

4. Cliquez sur le bouton points de suspension (...) à côté de la propriété XMLFileName du DBWebDataSource et recherchez le fichier XML.

5. Sélectionnez le composant DataSet dans la corbeille de composants.

6. Cliquez sur la propriété Tables (Collection) pour afficher l'éditeur de collection de tables.

Pour créer les métadonnées

1. Cliquez sur Ajouter pour ajouter une nouvelle table à la collection. A titre d'essai, nous utiliserons les enregistrements XML suivants.

<?xml version="1.0" standalone="yes"> /// Déclaration XML<NewSongs> /// <song> devient le nom de table dans l'ensemble de données. <song> /// <songid> devient Column1 dans l'ensemble de données. <songid>1001</songid> /// <title> devient Column2 dans l'ensemble de données. <title>Mary Had a Little Lamb</title> </song> <song> <songid>1003</songid> <title>Twinkle, Twinkle Little Star</title> </song></NewSongs>

2. Changez la propriété TableName en song.

3. Cliquez sur la propriété Columns (Collection) pour afficher l'éditeur de collection de colonnes.

4. Cliquez sur Ajouter pour ajouter une nouvelle colonne.

5. Changez la propriété ColumnName en songid.

6. Cliquez sur Ajouter pour ajouter une autre nouvelle colonne.

7. Changez la propriété ColumnName en title.

8. Cliquez sur Fermer pour fermer l'éditeur de collection de colonnes.

9. Cliquez sur Fermer pour fermer l'éditeur de collection de tables. Vous venez de créer les métadonnées correspondant aux données du fichier XML.

Voir aussi

Utilisation de fichiers XML avec des contrôles DBWeb ( see page 98)

2.5 Procédures ASP.NET RAD Studio pour .NET Création d'un répertoire virtuel

193

2

Page 200: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.5.13 Création d'un répertoire virtuel

Lorsque vous créez une application ASP.NET, l'EDI génère automatiquement un répertoire virtuel basé sur les paramètres de laboîte de dialogue Nouvelle application Web ASP.NET.

Toutefois, l'EDI peut également créer un répertoire virtuel pour une application que vous n'avez pas créée dans l'EDI, telle queles applications démo du dossier DBWeb.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour créer un répertoire virtuel pour une application existante

1. Ouvrez le fichier projet de l'application ASP.NET dans l'EDI.

2. Choisissez Projet Options Débogueur ASP.NET. Les paramètres par défaut de l'application sont affichés. Acceptez les paramètres par défaut ou modifiez-les à votre guise.

3. Si vous créez un répertoire virtuel à utiliser avec IIS (Internet Information Server), cliquez sur le bouton Options du serveur pour afficher la boîte de dialogue Configurer le répertoire virtuel. Si vous modifiez le nom du répertoire virtuel ou son alias, vous pouvez également modifier les permissions associées au répertoire virtuel.

4. Cliquez sur OK pour revenir aux options du projet.

5. Cliquez sur OK pour quitter les options du projet.

Le répertoire virtuel est créé, vous permettant d'exécuter l'application.

2.5.14 Ajout de valeurs agrégées avec DBWebAggregateControl

Vous pouvez utiliser DBWebAggregateControl pour appliquer l'une des fonctions d'agrégation standard à une colonne dedonnées. Le contrôle affiche la valeur agrégée dans une zone de texte qui prend également en charge un libellé lié.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour créer et configurer un DBWebAggregateControl

1. Créez une application Web ASP.NET et ajoutez votre connexion de base de données, adaptateur de données, ensemble de données et composant DBWebDataSource à l'application.

2. Définissez la propriété Active du BdpDataAdapter sur True.

3. Placez un composant DBWebAggregateControl sur le concepteur de fiche Web.

4. Définissez la propriété DBDataSource du DBWebAggregateControl sur DBWebDataSource1, qui est le nom par défaut du composant DBWebDataSource.

5. Définissez la propriété TableName.

6. Choisissez la valeur de la propriété AggregateType dans la liste déroulante.

7. Choisissez la propriété ColumnName dans la liste déroulante. La zone de texte est remplie avec la valeur basée sur le type d'agrégat et les valeurs de la colonne que vous avez sélectionnée.

Remarque: Si vous pensez que la colonne sélectionnée peut contenir des valeurs NULL, définissez la propriété

Ajout de valeurs agrégées avec RAD Studio pour .NET 2.5 Procédures ASP.NET

194

2

Page 201: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

IgnoreNullValues sur True ; autrement, il se peut qu'un message d'erreur soit émis.

Pour définir le libellé de DBWebAggregateControl

1. Dans l'inspecteur d'objets, entrez le libellé dans le champ de propriété Caption.

2. Choisissez une position dans la liste déroulante de la propriété CaptionPosition.

Voir aussi

Contrôles CodeGear DB Web ( see page 87)

Conception d'une application avec des contrôles DB Web ( see page 195)

2.5.15 Débogage et mise à jour d'applications ASP.NET

Lors de l'installation de RAD Studio, le programme d'installation a demandé l'autorisation de mise à jour du fichiermachine.config sur votre ordinateur. Ces informations sont nécessaires pour le débogage d'applications RAD Studio sousIIS. Si vous avez répondu Oui à cette invite, des informations du débogueur Borland ont été écrites dans le fichiermachine.config et seront disponibles pour les applications que vous avez créées avec Delphi 8. Vous n'avez pas àeffectuer cette procédure.

Si vous avez répondu Non à cette invite, les informations du débogueur sont écrites dans le ficher web.config de l'applicationquand vous créez une application ASP.NET avec RAD Studio. Cependant, vous devrez ajouter ces informations manuellementà web.config pour les applications qui ont créées avec Delphi 8. Autrement, si vous tentez de déboguer votre applicationDelphi 8 avec RAD Studio, il se peut que vous receviez l'erreur suivante :

Impossible de démarrer le débogage sur le serveur web. Impossible de s'attacher au processusde travail ASP.NET (généralement aspnet_wp.exe ou w3wp.exe).

Pour mettre à jour le fichier web.config pour une application ASP.NET Delphi 8

1. Ouvrez le fichier web.config dans l'EDI ou un éditeur de texte.

2. Remplacez les lignes suivantes :

<compilation debug="true" defaultLanguage="c#"></compilation>

par ceci :

<compilation defaultLanguage="c#" debug="true"> <assemblies> <add assembly="Borland.dbkasp, Version=9.0.0.1, Culture=neutral, PublicKeyToken=b0524c541232aae7"/> </assemblies></compilation> <httpModules> <add name="DbgConnect" type = "Borland.DbkAsp.DbkConnModule, Borland.dbkasp,Version=9.0.0.1, Culture=neutral, PublicKeyToken=b0524c541232aae7"/></httpModules>

3. Enregistrez le fichier web.config.

4. Ouvrez le projet d'application dans l'EDI et exécutez-le.

Remarque: Avant de déployer une application ASP.NET, vous devez désactiver le débogage et retirer les références du

2.5 Procédures ASP.NET RAD Studio pour .NET Débogage et mise à jour d'applications

195

2

Page 202: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

débogueur dans le fichier web.config

, comme décrit dans la rubrique ci-dessous.

Voir aussi

Utilisation du gestionnaire de déploiement ASP.NET ( see page 208)

2.5.16 Déploiement d'une application ASP.NET avec Blackfish SQL vers un système sans RAD Studio

Vous pouvez déployer une application ASP.NET avec Blackfish SQL vers un système sans RAD Studio.

Pour déployer une application ASP.NET avec Blackfish SQL vers un système ne comportant pas CodeGear RAD Studio

1. Créez une application ASP.NET. Dans le fichier web.config du projet, définissez l'entrée connectionString pour utiliser le client local Blackfish SQL. Voici une entrée exemple d'un fichier web.config :

<connectionStrings> <!-- ConnectionString local : Utiliser la chaîne ci-dessous pour la connexion au fournisseur en utilisant le client local --> <add name="BlackfishSqlAspNet" connectionString="database=|DataDirectory|bsql_aspnetdb.jds; user=user;password=password;create=true" providerName="Borland.Data.BlackfishSQL.LocalClient"/></connectionStrings>

2. Construisez l'application.

3. Déployez l'application comme décrit dans Utilisation du gestionnaire de déploiement ASP.NET ( see page 101).

4. Déployez les fichiers suivants dans le répertoire bin :

• Borland.Delphi.dll

• Borland.VclRtl.dll

• Borland.Web.Provider.dll

• Borland.Data.BlackfishSQL.LocalClient.dll

• BlackfishSQL.slip

5. Copiez une base de données Blackfish SQL dans le répertoire App_Data qui est créé dans le répertoire projet lors de l'exécution de l'application.

6. Exécutez l'application.

Voir aussi

Déploiement d'applications ASP.NET ( see page 101)

Utilisation du gestionnaire de déploiement ASP.NET ( see page 101)

2.5.17 Génération de messages HTTP dans ASP.NET

Lors de la tentative de débogage d'applications ASP.NET, vous pourrez constater que les messages d'erreur sont parfoismystérieux, voire incompréhensibles. Ceci peut être dû à une option de configuration d'Internet Explorer. Pour faciliter ledébogage, vous devez modifier cette option.

Génération de messages HTTP dans RAD Studio pour .NET 2.5 Procédures ASP.NET

196

2

Page 203: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour générer des messages d'erreur plus compréhensibles

1. Dans Internet Explorer (si vous utilisez ce navigateur), choisissez Outils Options Internet.

2. Cliquez sur l'onglet Avancé.

3. Désélectionnez l'option Afficher des messages d'erreur HTTP simplifiés.

4. Cliquez sur OK. Ceci désactive les messages simplifiés, ce qui permettra d'obtenir des messages ASP.NET significatifs.

Voir aussi

Présentation de ASP.NET ( see page 84)

Dépannage d'applications ASP.NET ( see page 205)

2.5.18 Liaison de colonnes dans un contrôle DBWebGrid

Vous souhaiterez parfois modifier l'ordre dans lequel les colonnes apparaissent dans un contrôle DBWebGrid. Vous pouvezréaliser cette tâche en effectuant une liaison manuelle des colonnes, à partir du constructeur de propriétés.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour ouvrir le constructeur de propriétés

1. Démarrez une nouvelle application ASP.NET.

2. Ajoutez un fournisseur de données.

3. Ajoutez un objet DBWebDataSource et connectez-le à un ensemble de données généré.

4. Ajoutez un contrôle DBWebGrid à votre fiche Web.

5. Cliquez sur le verbe de concepteur du Constructeur de propriétés en bas de l'inspecteur d'objets. Cette opération affiche le constructeur de propriétés.

Pour changer l'ordre des colonnes

1. Sur le constructeur de propriétés, cliquez sur l'onglet Général.

2. Définissez le DataSource sur le DBWebDataSource ou sur l'ensemble de données sur lequel pointe le DBWebDataSource.

3. Cliquez sur l'onglet Colonnes.

4. Sélectionnez les colonnes à afficher dans la liste Colonnes disponibles.

5. Cliquez sur le bouton flèche droite pour ajouter les colonnes dans la liste Colonnes sélectionnées.

6. Si vous le souhaitez, réorganisez l'ordre des colonnes dans la liste Colonnes sélectionnées.

7. Vous pouvez changer le nom de l'en-tête de colonne tel qu'il apparaît dans la grille en modifiant le texte En-tête.

8. Cliquez sur Appliquer.

9. Cliquez sur OK.

Avertissement: Si vous choisissez de lier les colonnes de cette façon, vous devez définir la propriété AutoGenerateColumns sur False. L'affectation de la valeur True à cette propriété déclenche une erreur d'exécution, et ne permet pas la restriction visible des colonnes à la conception. Si la même colonne est liée à une grille plusieurs fois, vous pouvez obtenir une erreur d'exécution.

2.5 Procédures ASP.NET RAD Studio pour .NET Liaison de colonnes dans un contrôle

197

2

Page 204: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Contrôles DBWeb CodeGear ( see page 87)

Conception d'une application avec des contrôles DBWeb ( see page 195)

2.5.19 Définition de permissions pour l'utilisation de fichiers XML

Pour éviter les erreurs de permissions lors de l'utilisation d'un fichier XML en tant que source de données, vous devez accorderdes droits aux clients qui emploieront vos applications ASP.NET. Pour ce faire, vous pouvez procéder de deux façons commeindiqué ci-dessous.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour attribuer des droits utilisateur quand la propriété UseUniqueFileName a pour valeur false

1. Cliquez à l'aide du bouton droit sur le menu Démarrer de Windows et choisissez Explorer.

2. Choisissez Outils Options des dossiers.

3. Choisissez l'onglet Affichage.

4. Désélectionnez l'option Utiliser le partage de fichiers simple.

5. Cliquez sur Appliquer à tous les dossiers.

6. Cliquez sur OK.

7. Localisez le fichier XML en cours d'utilisation dans le projet, puis cliquez à l'aide du bouton droit et sélectionnez Propriétés.

8. S'il est disponible, sélectionnez l'onglet Sécurité.

9. Ajoutez l'utilisateur Tout le monde et attribuez les droits complets au fichier.

Pour attribuer des droits aux utilisateurs quand UseUniqueFileName a pour valeur true et que l'authentification utilisateur est en cours d'utilisation

1. Dans la boîte de dialogue Comptes d'utilisateurs du panneau de configuration Windows, créez un utilisateur.

2. Dans le répertoire virtuel IIS où votre application web est construite, créez le dossier CacheFiles. En général, les répertoires virtuels IIS se trouvent dans C:\Inetpub\wwwroot.

3. A l'aide de l'explorateur Windows, recherchez le dossier CacheFiles.

4. Cliquez avec le bouton droit et choisissez Propriétés.

5. Choisissez l'onglet Sécurité et ajoutez l'utilisateur créé à l'étape 1.

6. Ajoutez les droits complets au dossier.

7. Déplacez le fichier XML dans ce dossier.

8. Réglez sur ce fichier la propriété XMLFileName du DBWebDataSource de votre application.

Remarque: Assurez-vous que l'option Utiliser le partage de fichiers simple

de la boîte de dialogue Options des dossiers Windows n'est pas sélectionnée.

Voir aussi

Utilisation de fichiers XML avec des contrôles DB Web ( see page 98)

Définition de permissions pour l'utilisation RAD Studio pour .NET 2.5 Procédures ASP.NET

198

2

Page 205: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Création d'un fichier XML pour des contrôles DB Web ( see page 197)

2.5.20 Dépannage d'applications ASP.NET

A la différence des applications Windows traditionnelles, les applications web sont dépendantes de serveurs et de ressourcesqui ne se trouvent pas directement sous leur contrôle ou sous celui de l'utilisateur. Les applications web sont souvent descombinaisons hybrides de ressources client, serveur et réseau.

Les éléments à vérifier sont l'installation ASP.NET, l'installation et la configuration IIS et la sécurité. Ces trois zones derecherche sont étendues et complexes. Les procédures suivantes fournissent des solutions à quelques-uns des problèmes lesplus courants.

Remarque: Les suggestions suivantes ne s'appliquent qu'à IIS 5.1.

Pour dépanner votre application ASP.NET

1. Installez ou réinstallez ASP.NET.

2. Créez ou vérifiez votre compte utilisateur ASP.NET.

3. Installez ou réinstallez IIS.

4. Démarrez ou redémarrez IIS.

5. Configurez IIS pour que l'application soit reconnue.

6. Ajoutez des types de documents à IIS.

7. Définissez l'authentification anonyme.

8. Contrôlez la connexion de base de données, si nécessaire.

Pour installer ou réinstaller ASP.NET

1. Choisissez Démarrer Exécuter pour afficher la boîte de dialogue d'exécution.

2. Entrez cmd /e dans la zone de liste déroulante Ouvrir.

3. Cliquez sur OK.

4. Accédez aux répertoires c:\Windows\Microsoft.NET\Framework\v1.1.4322.

5. Entrez la commande aspnet_regiis.exe -i.

6. Appuyez sur Entrée.

Remarque: Pour connaître les différents commutateurs de l'utilitaire aspnet_regiis.exe

, indiquez ? au lieu de -i immédiatement après la commande.

Pour créer ou vérifier votre compte utilisateur ASP.NET.

1. Choisissez Démarrer Panneau de configuration Comptes d'utilisateur pour afficher la liste des comptes d'utilisateur de votre système.

2. Si vous ne possédez pas de compte d'utilisateur ASPNET, créez-en un.

3. Redémarrez votre ordinateur.

Avertissement: N'attribuez pas de privilèges d'administration à l'utilisateur ASPNET. Ceci crée une faille de sécurité sur votre système et rend les applications ASP.NET déployées vulnérables au piratage. Créez un utilisateur anonyme.

2.5 Procédures ASP.NET RAD Studio pour .NET Dépannage d'applications ASP.NET

199

2

Page 206: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour installer ou réinstaller IIS

1. Choisissez Démarrer Panneau de configuration Ajout/Suppression de programmes. Cette opération affiche la boîte de dialogue de Ajouter ou supprimer des programmes.

2. Cliquez sur Ajouter ou supprimer des composants Windows. Cette option affiche l'assistant Composants Windows.

3. Cochez la case Internet Information Services (IIS).

4. Cliquez sur Suivant.

5. Cliquez sur Terminer.

6. Démarrez IIS.

Pour redémarrer IIS

1. Choisissez Démarrer Panneau de configuration Outils d'administration Services Internet (IIS).

2. Sélectionnez le noeud ordinateur local.

3. Cliquez avec le bouton droit et sélectionnez Redémarrer IIS.... . Cette opération affiche la boîte de dialogue Arrêter/Démarrer/Redémarrer.

4. Sélectionnez dans la liste déroulante la tâche à accomplir.

5. Cliquez sur OK.

Pour configurer IIS afin que l'application soit reconnue

1. Dans la console IIS, recherchez le dossier ou le répertoire virtuel contenant votre application web. S'il n'existe pas de dossier ou de répertoire virtuel, créez un répertoire virtuel.

2. Sélectionnez le dossier.

3. Cliquez avec le bouton droit et sélectionnez Propriétés.

4. Cliquez sur l'onglet Répertoire virtuel.

5. Sous la zone Paramètres d'application, cliquez sur le bouton Créer. Si le bouton Supprimer est affiché, vous pouvez supprimer, puis créer à nouveau le répertoire virtuel, si nécessaire.

Pour ajouter des types de documents à IIS

1. Choisissez Démarrer Panneau de configuration Outils d'administration Services Internet (IIS).

2. Sélectionnez Site Web par défaut.

3. Cliquez avec le bouton droit et sélectionnez Propriétés.

4. Cliquez sur l'onglet Documents.

5. Cliquez sur Ajouter. Cette opération affiche la boîte de dialogue Ajout d'un document par défaut.

6. Ajoutez WebForm1.aspx dans la zone de texte Nom du document par défaut.

7. Cliquez deux fois sur OK.

Pour définir l'authentification anonyme

1. Dans la console IIS, recherchez le dossier ou le répertoire virtuel contenant votre application web. S'il n'existe pas de dossier ou de répertoire virtuel, créez un répertoire virtuel.

2. Sélectionnez le dossier.

3. Cliquez avec le bouton droit et sélectionnez Propriétés.

4. Cliquez sur l'onglet Sécurité de répertoire.

5. Cliquez sur Modifier.

Dépannage d'applications ASP.NET RAD Studio pour .NET 2.5 Procédures ASP.NET

200

2

Page 207: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

6. Sélectionnez la case à cocher Accès anonyme.

7. Dans le champ Nom d'utilisateur : entrez le nom de l'utilisateur ASPNET que vous avez créé.

8. Sélectionnez l'option Authentification Windows intégrée ou ajoutez votre propre mot de passe.

9. Cliquez deux fois sur OK.

Pour contrôler la connexion de base de données

1. Cliquez sur l'onglet Explorateur de données pour afficher vos connexions de bases de données.

2. Développez la liste de fournisseurs pour afficher une connexion de base de données valide.

3. Cliquez avec le bouton droit et choisissez Modifier la connexion. Cette opération affiche l'éditeur de connexions.

4. Si la chaîne de connexion de base de données ne contient pas le spécificateur localhost, ajoutez-le au début de la chaîne, comme dans l'exemple suivant :

localhost:C:\Program Files\Common Files\Borland Shared\Data\EMPLOYEE.GDB

5. Vérifiez que toutes les autres options de connexion sont définies dans les propriétés.

6. Cliquez sur Tester pour vérifier si la connexion fonctionne.

Voir aussi

Présentation de ASP.NET ( see page 84)

Groupes de discussion Microsoft

Création d'un répertoire virtuel ( see page 200)

Génération de messages HTTP dans ASP.NET ( see page 203)

2.5.21 Utilisation de l'expert Contrôle DB Web

L'expert Contrôle DB Web vous aide à créer un contrôle web orienté données basé sur un contrôle web standard.

Remarque: Les contrôles DB Web (espace de nommage Borland.Data.Web) sont dépréciés dans la version 2007. Vous devezutiliser à la place les contrôles Web standard.

Pour démarrer l'expert Contrôle DB Web

1. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Bibliothèque de contrôles DBWeb. Ceci affiche l'expert Nouveau contrôle DBWeb.

2. Entrez le nom du contrôle dans la zone de texte Nom du contrôle.

3. Sélectionnez Lier à DataTable. Ceci informe l'expert d'ajouter le code du fichier de contrôle implémentant IDBWebDataLink. Cette interface définit les moyens d'accéder au contenu de sources et de tables de données.

4. Sélectionnez Lier à DataColumn si vous souhaitez établir une liaison avec une colonne, dans le cas où votre contrôle supporte un seul type de données, par exemple. Ceci informe l'expert d'ajouter le code du fichier de contrôle implémentant IDBWebColumnLink. Cette interface définit les moyens d'accéder à une colonne de la table accessible via IDBWebDataLink.

5. Si vous sélectionnez Lier à DataColumn alors que votre contrôle est l'un des contrôles de référence, comme une zone de liste, un groupe de boutons radio ou une case à cocher, et que vous souhaitez que le nouveau contrôle soit un contrôle de référence, cochez la case Support des références. Ceci informe l'expert d'ajouter le code du fichier de contrôle implémentant IDBWebLookupColumnLink. Cette interface définit les moyens d'accéder à une table de référence, au champ texte et au champ valeur de la colonne accessibles via IDBWebColumnLink.

L'expert Contrôle DBWeb crée un fichier template qu'il affiche dans l'éditeur de code. Vous modifiez ensuite ce fichier pour créer un héritage à partir d'un contrôle DB Web précis.

2.5 Procédures ASP.NET RAD Studio pour .NET Utilisation de l'expert Contrôle DB Web

201

2

Page 208: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Présentation de l'expert des contrôles DB Web ( see page 92)

Présentation des contrôles Borland DB Web ( see page 87)

2.5.22 Utilisation du gestionnaire de déploiement ASP.NET

Vous pouvez ajouter un gestionnaire de déploiement ASP.NET à un projet d'application ASP.NET pour vous aider à déployerl'application. Le gestionnaire de déploiement détermine quels fichiers sont requis pour le déploiement, demande le nom durépertoire de destination et des informations de connexion, puis copie les fichiers dans ce répertoire. Le gestionnaire dedéploiement génère une liste de fichiers à copier basée sur les noms des fichiers de votre répertoire de projet ; vous pouvezinclure ou exclure des fichiers de cette liste selon vos besoins.

Vous pouvez utiliser le bouton droit de la souris, lorsque la fenêtre Gestionnaire de déploiement est affichée, pour voir lesoptions permettant d'afficher, de copier, de supprimer, de modifier et de filtrer les fichiers de destination.

Lorsque l'option Afficher les références d'assemblage est activée, la fenêtre Gestionnaire de déploiement affiche tous lesassemblages référencés par le projet. Les assemblages système sont affichés mais désactivés (estompés). Ces assemblagesdésactivés ne peuvent pas être déployés.

L'option Fichiers externes.... permet de choisir les fichiers externes que vous voulez déployer. Une boîte de dialogue comportantune boîte liste est pré-remplie avec les bibliothèques de la base de données BDP, puisque l'une d'entre elles est souventdéployée. Vous pouvez ajouter des fichiers à la liste en utilisant le dialogue Fichier Ouvrir. Une colonne de la boîte listeindique le sous-répertoire de destination pour le fichier externe. Vous pouvez modifier le chemin de destination. Lorsque vouscliquez sur OK, les fichiers que vous avez cochés sont affichés dans le gestionnaire de déploiement.

Reportez-vous aux liens présents à la fin de cette rubrique pour de plus amples informations sur les options du clic droit.

Considérations

• Pour activer le débogage IIS de RAD Studio, lors de l'installation de RAD Studio, le programme d'installation a demandé l'autorisation de mise à jour du fichier machine.config sur votre ordinateur. Si vous avez répondu Oui à cette invite, des informations du débogueur CodeGear ont été écrites dans machine.config. Si vous avez répondu Non à cette invite, ces informations du débogueur sont écrites dans le ficher web.config de l'application quand vous créez une application ASP.NET avec RAD Studio. Avant de déployer l'application, vous devez désactiver le débogage pour optimiser l'application, comme le décrit la procédure suivante. De plus, si vous avez choisi de ne pas mettre à jour machine.config, vous devez retirer les références aux modules du débogueur CodeGear dans web.config, car il se peut que ces modules ne soient pas disponibles sur l'ordinateur cible de déploiement.

• Considérons que vous gérez un fichier web.config distinct à des fins de déploiement. Par exemple, vous pourriez utiliser un fichier nommé web.config.deploy et le renommer web.config lors du déploiement. Utilisez la commande Modifier le nom du fichier de destination du gestionnaire de déploiement pour renommer le fichier.

• Vous pouvez créer le répertoire de destination lors de l'utilisation du gestionnaire de déploiement, puis recourir à IIS pour créer le répertoire virtuel avant d'utiliser l'application. Comme alternative, vous pouvez effectuer le déploiement vers un répertoire virtuel existant.

• Lors du déploiement vers un site FTP, le gestionnaire de déploiement emploiera vos informations de connexion FTP. Vous pouvez enregistrer votre mot de passe de connexion FTP mais il sera visible en texte clair non crypté.

• Vous avez la possibilité d'ajouter plusieurs gestionnaires de déploiement à un projet ASP.NET et les configurer pour effectuer le déploiement dans des répertoires de destination différents.

• Certaines commandes disponibles dans le gestionnaire de déploiement le sont également dans le menu contextuel Gestionnaire de projets.

Utilisation du gestionnaire de déploiement RAD Studio pour .NET 2.5 Procédures ASP.NET

202

2

Page 209: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Pour retirer des références de débogueur dans le fichier web.config

1. Dans l'EDI ou un éditeur de texte, ouvrez le fichier web.config que vous utiliserez pour l'application ASP.NET déployée.

2. Dans la section <compilation>, remplacez debug="true" par debug="false".

3. Passez cette étape si vous avez choisi de mettre à jour machine.config lors de l'installation de RAD Studio (voir la section Considérations pour plus de détails). Retirez ou mettez en commentaires les références suivantes à l'assemblage et aux modules du débogueur CodeGear  :

<assemblies> <add assembly="Borland.dbkasp, Version=9.0.0.1, Culture=neutral, PublicKeyToken=b0524c541232aae7"/> </assemblies> <httpModules> <add name="DbgConnect" type = "Borland.DbkAsp.DbkConnModule,Borland.dbkasp,Version=9.0.0.1, Culture=neutral, PublicKeyToken=b0524c541232aae7"/> </httpModules>

4. Enregistrez le fichier et recompilez l'application.

Pour déployer une application ASP.NET

1. Dans l'EDI, ouvrez le projet d'application ASP.NET à déployer.

2. Choisissez Fichier Nouveau Autre Déploiement Déploiement ASP.NET et cliquez sur OK. Le noeud Déploiement ne figure pas dans la boîte de dialogue Nouveaux éléments quand aucun projet ASP.NET n'est ouvert. L'onglet Déploiement s'affiche et un fichier .bdsdeploy ajouté au répertoire du projet figure dans le gestionnaire de projets. Les fichiers requis pour le déploiement figurent dans la partie gauche de la page Déploiement sous Fichiers source.

Conseil: Seuls les fichiers ayant été enregistrés figurent dans la liste ; enregistrez les nouveaux fichiers et actualisez l'affichage du gestionnaire de déploiement pour y voir les fichiers.

3. Dans la liste déroulante Destination, sélectionnez Emplacement du dossier ou Emplacement FTP. Si vous sélectionnez Emplacement du dossier, la boîte de dialogue de recherche d'un dossier apparaît. Vous pouvez sélectionner un répertoire existant ou cliquer sur Créer un nouveau dossier pour en créer un. Si vous sélectionnez Emplacement FTP, la boîte de dialogue Site FTP apparaît. Entrez les informations de connexion. Cliquez sur le bouton Aide pour obtenir une explication sur chaque champ. Cliquez sur OK pour revenir dans le gestionnaire de déploiement.

4. Si vous avez sélectionné un emplacement FTP, cochez la case Connecté pour connecter et afficher les fichiers éventuels dans le répertoire de destination.

5. Examinez les fichiers dans la liste Fichiers source. Cliquez sur un fichier afin d'afficher des informations de fichier détaillées dans la zone de texte sous la liste de fichiers.

6. Pour copier tous les fichiers dans le répertoire de destination, cliquez sur le bouton Copier tous les fichiers nouveaux et modifiés dans la destination de la barre d'outils, dans la partie supérieure du gestionnaire de déploiement. Les fichiers sont copiés immédiatement dans le répertoire de destination et affichés dans la liste Fichiers de destination. Pour modifier la liste de fichiers, cliquez à l'aide du bouton droit n'importe où dans la liste et utilisez les commandes du menu contextuel, ou utilisez les boutons d'état de la liste de fichiers, comme expliqué ci-dessous.

Conseil: Pour sélectionner un fichier dans la liste, cliquez sur son nom. Pour sélectionner plusieurs fichiers, appuyez sur CTRL

et cliquez sur les fichiers. Pour effectuer une sélection continue de fichiers, appuyez sur CTRL+MAJ, cliquez sur le premier fichier à sélectionner, puis sur le dernier.

Commande du menu contextuel

Description

Actualiser Réaffiche le gestionnaire de déploiement pour refléter les modifications dans la liste de fichiers.

2.5 Procédures ASP.NET RAD Studio pour .NET Utilisation du gestionnaire de déploiement

203

2

Page 210: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Copier les fichierssélectionnés dans ladestination

Copie les fichiers sélectionnés dans le répertoire de destination.

Supprimer les fichiers dedestination sélectionnés

Supprime les fichiers sélectionnés du répertoire de destination après l'affichage d'une invite deconfirmation pour chaque fichier.

Modifier le nom du fichierde destination

Affiche une boîte de dialogue pour renommer le fichier sélectionné dans le répertoire dedestination.

Copier tous les fichiersnouveaux et modifiésdans la destination

Copie tous les fichiers marqués avec dans le répertoire de destination. Cette commande estégalement disponible dans la barre d'outils du gestionnaire de déploiement et par un clic droit surle noeud .bdsdeploy dans le gestionnaire de projets.

Supprimer tous lesfichiers de destinationabsents du projet

Supprime les fichiers marqués avec du répertoire de destination après l'affichage d'une invite deconfirmation pour chaque fichier.

Afficher les groupes et lesfichiers ignorés

Affiche tous les fichiers du répertoire du projet, y compris ceux qui ne sont pas nécessaires pour ledéploiement de l'application.

Ignorer les groupes Le fichier sélectionné est ignoré par le gestionnaire de déploiement.

Ignorer les fichiers Tous les fichiers d'un noeud de la liste des fichiers source sont ignorés par le gestionnaire dedéploiement.

Activer le journal Consigne les opérations réalisées par le gestionnaire de déploiement dans un fichier nomméDeployLog.txt dans le répertoire de projet.

Afficher le journal Affiche le journal dans l'éditeur de texte par défaut.

7. Lorsque les critères de déploiement vous conviennent, enregistrez les modifications dans le fichier .bdsdeploy. Lorsque vous rouvrez le projet, vous pouvez accéder au gestionnaire de déploiement à partir du gestionnaire de projets et déployer l'application en l'état, ou modifier les critères de déploiement comme indiqué précédemment.

Les boutons suivants indiquent l'état des fichiers dans la liste et permettent de copier et de supprimer des fichiers, comme expliqué ci-dessous.

Bouton d'état de la liste de fichiers

Description

Le fichier peut être copié car il n'existe pas dans le répertoire de destination ou le fichier source aété modifié depuis sa dernière copie dans le répertoire de destination.

Cliquez sur le bouton pour copier le fichier vers le répertoire de destination.

Le fichier existe dans le répertoire de destination et non pas dans le répertoire du projet. Vouspouvez probablement le supprimer du répertoire de destination en toute sécurité.

Cliquez sur le bouton pour supprimer le fichier du répertoire de destination.

Le fichier a pour état "Inconnu". Il est possible que son horodatage soit moins récent que celui dufichier du répertoire de projet.

Cliquez sur le bouton pour remplacer le fichier dans le répertoire de destination.

Pour créer un répertoire virtuel IIS pour un nouveau répertoire de destination

1. Ouvrez IIS sur l'ordinateur où vous avez déployé l'application. Sous Windows XP, par exemple, choisissez Démarrer Panneau de configuration Outils d'administration Services Internet (IIS).

2. Dans la boîte de dialogue Services Internet (IIS), développez l'arborescence pour afficher le noeud ordinateur local.

3. Cliquez à l'aide du bouton droit sur Site Web par défaut et choisissez Nouveau Répertoire virtuel. L'assistant de création du répertoire virtuel apparaît.

4. Suivez les invites des pages successives de l'assistant IIS pour créer le répertoire virtuel.

Pour plus d'informations sur les répertoires virtuels, reportez-vous au système d'aide en ligne d'IIS.

Utilisation du gestionnaire de déploiement RAD Studio pour .NET 2.5 Procédures ASP.NET

204

2

Page 211: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Voir aussi

Déploiement d'applications ASP.NET ( see page 101)

2.5.23 Utilisation de l'éditeur de balise HTML

Lorsque vous créez ou modifiez un fichier HTML, vous pouvez utiliser la fenêtre Editeur de balise, située sous le concepteur defiches, pour éditer les balises HTML. Par exemple, si vous utilisez une fiche Web ASP.NET, l'éditeur de balise n'est passupporté. Si vous utilisez une fiche HTML, vous pouvez afficher l'éditeur de balise dans le concepteur en sélectionnantVoir Editeur de balise.

L'éditeur de balise permet d'examiner et de modifier des balises HTML tout en affichant les contrôles correspondants dans leconcepteur situé au dessus. L'éditeur de balise vous permet d'utiliser les fonctionnalités d'achèvement de code, d'auditd'erreur et d'achèvement de template dynamique également disponibles dans l'éditeur de code. Reportez-vous aux liensprésents à la fin de cette rubrique pour de plus amples informations sur chacune de ces fonctionnalités.

L'éditeur de balise fonctionne balise par balise sauf si vous avez sélectionné l'objet Document ou effectué un zoom arrière àpartir d'une balise. Quand l'objet document est sélectionné, vous verrez l'élément "DOCUMENT" sur l'inspecteur d'objets.

Utilisez les boutons de zoom pour effectuer un zoom arrière jusqu'au parent d'une balise et revenir en zoom avant à la baliseenfant sélectionnée. Le zoom n'est pas spécifique à une balise mais générique pour le balisage du document lui-même. Parexemple, si le curseur est positionné sur une balise dans votre balisage HTML et si vous utilisez la commande Zoom, celle-civous amènera vers la balise externe ou à un niveau au-dessus de l'attribut où se trouve le curseur.

La validation des règles du standard HTML se fait automatiquement. Si la validation échoue, l'élément incorrect est mis en rougedans le concepteur et l'audit d'erreur apparaît dans l'éditeur de balise pour vous aider à corriger le problème.

Remarque: L'éditeur de balise

n'est pas disponible dans une application ASP.NET.

Pour visualiser le code HTML pour un contrôle individuel

1. Dans le concepteur, faites glisser un élément HTML depuis la palette d'outils vers la surface du concepteur. L'éditeur de balise affiche le code HTML.

2. Pour visualiser le code du contrôle individuel, cliquez n'importe où sur la surface du concepteur afin de désélectionner le contrôle. Le code HTML apparaît dans la fenêtre de l'éditeur de balise, avec une mise en évidence de la syntaxe. L'en-tête gris de l'éditeur de balise affiche maintenant la balise de plus haut niveau, généralement la balise FORM qui définit cette fiche Web particulière.

Remarque: Si un contrôle est défini en utilisant plusieurs lignes de code HTML, lorsque vous sélectionnez le contrôle, la première ligne du code est affichée dans l'en-tête gris de l'éditeur de balise. Le code supplémentaire apparaît ci-dessous dans la fenêtre de l'éditeur de balise.

Pour visualiser le code HTML pour tous les contrôles

1. Dans le concepteur, faites glisser plusieurs éléments HTML depuis la palette d'outils vers la surface du concepteur. L'éditeur affiche le code HTML de chaque élément à mesure que vous les déposez à la surface du concepteur.

2. Cliquez n'importe où sur la surface du concepteur pour désélectionner tous les contrôles. Cela affiche le code pour tous les contrôles dans l'éditeur de balise, avec une mise en évidence de la syntaxe.

Pour modifier un contrôle

1. Cliquez n'importe où sur la surface du concepteur pour désélectionner tous les contrôles.

2.5 Procédures ASP.NET RAD Studio pour .NET Utilisation de l'éditeur de balise HTML

205

2

Page 212: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2. Localisez la balise correspondant au contrôle que vous souhaitez modifier.

3. Modifiez le code. Le changement est immédiatement répercuté dans le contrôle sur la surface du concepteur.

4. Enregistrez votre projet pour rendre les modifications permanentes.

Pour modifier les propriétés de l'éditeur

1. Choisissez Outils Options Options HTML/ASP.NET.

2. Modifiez des propriétés de l'éditeur de code.

3. Cliquez sur OK. Les modifications prennent effet immédiatement.

Pour effectuer un zoom entre le contenu de la fiche et le conteneur des fiches

1. Pour faire un zoom arrière afin de pouvoir visualiser la définition d'une fiche HTML, cliquez sur la flèche bleue à gauche dans l'en-tête gris de l'éditeur de balise.

Remarque: Vous ne pouvez utiliser cette fonctionnalité que lorsque le curseur se trouve quelque part dans l'éditeur de balise, plutôt que sur la surface du concepteur.

2. Pour faire un zoom avant afin de pouvoir visualiser uniquement le contenu des balises FORM, cliquez sur la flèche bleue à droite dans l'en-tête gris de l'éditeur de balise.

Remarque: Vous ne pouvez utiliser cette fonctionnalité que lorsque le curseur se trouve quelque part dans l'éditeur de balise, plutôt que sur la surface du concepteur.

Pour fermer l'éditeur de balise

1. Choisissez Outils Options Options HTML/ASP.NET.

2. Désélectionnez l'option Afficher l'éditeur de balise.

3. Cliquez sur OK.

Voir aussi

Utilisation de l'éditeur de code

Personnalisation de l'éditeur de code

Utilisation des templates dynamiques

Utilisation de l'audit de code

2.5.24 Gestion de contrôles utilisateur ASP.NET

Les contrôles utilisateur permettent de réutiliser la fonctionnalité d'interface utilisateur commune entre applications webASP.NET. Par exemple, vous pourriez créer un contrôle utilisateur encapsulant un écran de connexion. Vous pourriez ensuiteajouter le contrôle utilisateur à n'importe quelle fiche Web nécessitant la fonctionnalité écran de connexion. Pour plusd'informations sur les contrôles utilisateur, cliquez sur le lien à la fin de cette rubrique.

Pour créer un contrôle utilisateur ASP.NET

1. Ouvrez une application ASP.NET.

2. Choisissez Fichier Nouveau Autre Projets Delphi pour .NET Nouveaux fichiers ASP.NET et double-cliquez sur Contrôle utilisateur ASP.NET. Un nouveau fichier .ascx est ajouté au gestionnaire de projets et la page vide s'affiche dans le concepteur. Le cas échéant, renommez le fichier .ascx en cliquant avec le bouton droit dans le gestionnaire de

Gestion de contrôles utilisateur ASP.NET RAD Studio pour .NET 2.5 Procédures ASP.NET

206

2

Page 213: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

projets et en choisissant Renommer. Tous les fichiers associés, comme les fichiers d'extension .pas ou .resx, sont également renommés.

3. Effectuez le travail de conception de la page en ajoutant des contrôles, en définissant des propriétés et en ajoutant du code au fichier .pas sous-jacent si nécessaire.

4. Enregistrez et compilez le projet.

Pour ajouter un contrôle utilisateur ASP.NET à une fiche Web

1. Ouvrez la fiche Web dans laquelle vous voulez ajouter le contrôle utilisateur. Assurez-vous que le concepteur est visible.

2. Choisissez Insérer Insérer un contrôle utilisateur pour afficher la boîte de dialogue Insertion d'un contrôle utilisateur.

3. Sélectionnez un contrôle utilisateur dans la liste déroulante ou utilisez le bouton Parcourir pour accéder à un fichier de contrôle utilisateur (.ascx).

4. Cliquez sur OK pour ajouter le contrôle utilisateur à la fiche Web.

5. Le cas échéant, dans l'inspecteur d'objets, indiquez un nom descriptif pour le bouton du contrôle utilisateur avec la propriété Id.

6. Enregistrez et compilez le projet.

La fiche Web s'affiche dans le navigateur et le bouton de contrôle utilisateur est remplacé par ses contrôles encapsulés.

Conseil: L'apparence d'exécution du contrôle utilisateur dépend non pas de la position du bouton mais de l'apparence de la page et des contrôles encapsulés. Si vous ajoutez plusieurs contrôles utilisateur dans une page, exécutez l'application pour vous assurer qu'ils ne se chevauchent pas.

Voir aussi

Contrôles utilisateur des fiches Web

2.5 Procédures ASP.NET RAD Studio pour .NET Gestion de contrôles utilisateur ASP.NET

207

2

Page 214: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.6 Procédures de services Web Cette section propose des informations relatives au développement et à l'utilisation de services web.

Rubriques

Nom Description

Accès à une application de services Web "Hello World" ASP.NET ( see page 215)

Pour exploiter l'application de services Web que vous avez créée, vous devez créer une application client qui accédera à l'application de services Web ASP.NET. Ce processus requiert différentes étapes de développement pour atteindre le résultat recherché.

Ajout de références Web dans des projets ASP.NET ( see page 217) Pour pouvoir utiliser un service web, vous devez créer une application client et ajouter une référence Web. Ces procédures expliquent comment créer une application client ASP.NET qui utilise un service web d'un fournisseur tiers. L'application client utilise le service web DeadOrAliveWS disponible sur le site Web XMethods. Ce service vous permet de rechercher des dates de naissance et de décès dans la base de données simple de célébrités.

Construction d'une application de services Web "Hello World" ASP.NET ( see page 219)

La construction d'une application avec des services Web ASP.NET vous permet d'exposer des fonctionnalités à votre application client sur une connexion Web. Ces étapes vous guident dans la construction d'une application "Hello World" simple avec des services Web ASP.NET. Une fois construite, l'application expose tous ses objets et méthodes par le biais d'un WebMethod que vous créez et atteignez via un navigateur Web.

Portage d'une application client de services Web Delphi pour Win32 vers Delphi pour .NET ( see page 220)

Les étapes suivantes sont nécessaires au portage de votre application client de services Web Win32 vers Delphi pour .NET.

2.6.1 Accès à une application de services Web "Hello World" ASP.NET

Pour exploiter l'application de services Web que vous avez créée, vous devez créer une application client qui accédera àl'application de services Web ASP.NET. Ce processus requiert différentes étapes de développement pour atteindre le résultatrecherché.

Pour accéder à une application de services Web "Hello World" ASP.NET

1. Créez une application client.

2. Ajoutez une référence Web pour un service Web XML.

3. Créez la logique de code sous-jacent.

4. Exécutez l'application client.

Pour créer une application client

1. Choisissez Fichier Nouveau Autre. La boîte de dialogue Nouveaux éléments apparaît.

2. Sélectionnez n'importe quel type d'application pour créer votre client, comme une application Windows Forms ou une application Web ASP.NET. Pour cet exemple, nous allons créer une application Windows Forms (Delphi pour .NET ou C#).

3. Cliquez sur OK. Une boîte de dialogue Nouveau projet apparaît.

Pour ajouter une référence Web pour une application de services Web ASP.NET

1. Choisissez Projet Ajouter une référence Web.

2. Dans la zone de texte adresse dans la partie supérieure de la boîte de dialogue web Navigateur UDDI CodeGear, entrez l'URL suivante :

Accès à une application de services Web RAD Studio pour .NET 2.6 Procédures de services Web

208

2

Page 215: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

http://localhost/WebService1/WebService1.asmx

Remarque: Le nom de votre application peut être différent de WebService1. Dans ce cas, utilisez le nom de votre application àla place de WebService1 dans l'exemple précédent.

3. Appuyez sur Entrée.

Remarque: Si vous devez déterminer le chemin correct et que vous utilisez IIS, vous pouvez ouvrir l'administrateur IIS à partir des outils d'administration dans le panneau de configuration de Windows XP. Trouvez le service web que vous avez enregistré et compilé dans la liste des sites web IIS, puis consultez le nom du site et le nom du fichier .asmx

. Si vous avez entré le chemin correct, les informations concernant les WebMethods doivent s'afficher.

4. Cliquez sur le lien Description du service pour visualiser le document WSDL.

5. Cliquez sur Ajouter une référence pour ajouter le document WSDL à l'application client. Un dossier Références Web est ajouté au répertoire Projet dans le gestionnaire de projet qui contient le fichier WebService1.wsdl et la boîte de dialogue disparaît.

Pour créer la logique de code sous-jacent

1. Ajoutez un objet Button dans Windows Form.

2. Double-cliquez sur le contrôle Button pour visualiser le fichier de code sous-jacent.

3. Pour un client Delphi pour .NET, implémentez l'événement Click dans l'éditeur de code avec le code suivant :

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);var ws: TWebService1;begin ws := TWebService1.Create; button1.Text := ws.HelloWorld();end;

Quand vous avez ajouté la référence Web à votre application, RAD Studio a utilisé le document WSDL pour générer une classeproxy qui représente le service Web "Hello World". L'événement Click utilise des méthodes de la classe proxy pour accéder auservice web. Pour un client Delphi pour .NET, vous devrez peut-être ajouter le nom d'unité de la classe proxy (par exemple,localhost.WebService1) à la clause uses de votre unité Windows Form pour éviter les erreurs dans l'événement Click.

4. Pour un client C#, implémentez l'événement Click dans l'éditeur de code avec le code suivant :

private void button1_Click(object sender, System.EventArgs e) { TWebService1 ws = new TWebService1(); button1.Text = ws.HelloWorld(); }

Pour exécuter l'application client

1. Enregistrez l'application.

2. Compilez le projet et exécutez-le.

3. Cliquez sur le bouton dans votre application client. La mention "Hello World" apparaît sur le bouton.

Voir aussi

Présentation des services Web ASP.NET ( see page 104)

Gestion des services Web ASP.NET ( see page 109)

Construction d'une application de services Web "Hello World" ASP.NET ( see page 219)

2.6 Procédures de services Web RAD Studio pour .NET Ajout de références Web dans des projets

209

2

Page 216: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2.6.2 Ajout de références Web dans des projets ASP.NET

Pour pouvoir utiliser un service web, vous devez créer une application client et ajouter une référence Web. Ces procéduresexpliquent comment créer une application client ASP.NET qui utilise un service web d'un fournisseur tiers. L'application clientutilise le service web DeadOrAliveWS disponible sur le site Web XMethods. Ce service vous permet de rechercher des dates denaissance et de décès dans la base de données simple de célébrités.

Pour créer un projet ASP.NET

1. Choisissez Fichier Nouveau Autre. La boîte de dialogue Nouveaux éléments apparaît.

2. Double-cliquez sur l'icône Application Web ASP.NET dans la catégorie d'élément Projets Delphi pour .NET. La boîte de dialogue Nouvelle application ASP.NET apparaît.

3. Dans le champ Nom, entrez le nom du projet.

4. Dans le champ Emplacement, entrez le chemin d'accès au projet.

Conseil: La plupart des projets ASP.NET résident dans le répertoire IIS Inetpub\wwwroot

.

5. Si nécessaire, cliquez sur le bouton Afficher les options pour modifier les paramètres de votre serveur Web.

Conseil: Comme les options par défaut du serveur suffisent généralement, cette étape est facultative.

6. Cliquez sur OK. Le concepteur de fiches Web apparaît.

Pour concevoir la page web ASP.NET

1. Si nécessaire, cliquez sur la vue Conception.

2. Dans la catégorie Contrôles Web de la palette d'outils, placez un Button sur la surface du concepteur. Le contrôle Button apparaît sur le concepteur. Assurez-vous que le contrôle est sélectionné.

3. Dans l'inspecteur d'objets, définissez la propriété Text sur Dead or Alive?.

4. Dans la catégorie Contrôles Web de la palette d'outils, placez un composant TextBox sur la surface du concepteur au-dessus de Button. Tapez votre requête au service Web.

5. Placez un composant Label sous le Button. Les résultats de la requête au service web s'affichent.

Utilisez le navigateur UDDI pour chercher le service Web DeadOrAlive sur Internet. Vous pourrez ainsi utiliser les méthodes et objets publiés par le document WSDL (Web Service Definition Language).

Pour ajouter la référence Web de DeadOrAliveWS

1. Choisissez Projet Ajouter une référence Web.

2. Dans la boîte de dialogue web Navigateur UDDI CodeGear, cliquez sur le lien XMethods (intégralité) dans la liste des répertoires UDDI disponibles. La liste des divers services web publiés sur le site Web XMethods s'affiche.

3. Cliquez sur le lien DeadOrAliveWS.

Conseil: La combinaison de touches Ctrl+F

vous permet d'effectuer des recherches dans le Navigateur UDDI CodeGear.

4. Cliquez sur le lien du fichier WSDL :

http://www.abundanttech.com/webservices/deadoralive/deadoralive.wsdl

Un document WSDL apparaît. Ce document XML décrit l'interface du service web DeadOrAliveWS.

Ajout de références Web dans des projets RAD Studio pour .NET 2.6 Procédures de services Web

210

2

Page 217: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

5. Cliquez sur Ajouter une référence pour ajouter le document WSDL à l'application client. Un dossier Références Web contenant un noeud com.abundanttech.www est ajouté au répertoire Projet dans le gestionnaire de projet.

Pour écrire la logique de l'application

1. Si nécessaire, cliquez sur la vue Conception.

2. Double-cliquez sur le bouton Dead or Alive? pour visualiser le fichier de code sous-jacent.

3. Pour une application de services Web Delphi pour .NET, implémentez l'événement Click dans l'éditeur de code avec le code suivant :

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);var result: DataSet; ws: DeadOrAlive; currentTable: DataTable; currentRow: DataRow; currentCol: DataColumn;begin //Initialise le service web ws := DeadOrAlive.Create; //Envoie l'entrée au service web result := ws.getDeadOrAlive(TextBox1.Text); //analyse les résultats et les affiche Label1.Text := ''; for currentTable in result.Tables do begin Label1.Text := Label1.Text + '<p>' + #13#10; for currentRow in currentTable.Rows do begin for currentCol in currentTable.Columns do begin Label1.Text := Label1.Text + currentCol.ColumnName + ': '; Label1.Text := Label1.Text + (currentRow[currentCol]).ToString; Label1.Text := Label1.Text + '<br>' + #13#10; end; end; Label1.Text := Label1.Text + '</p>'; end; end;

Quand vous avez ajouté la référence Web à votre application, RAD Studio a utilisé le document WSDL pour générer une classeproxy qui représente le service Web "Hello World". L'événement Click utilise des méthodes de la classe proxy pour accéder auservice web. Pour des services Web Delphi pour .NET, vous devrez peut-être ajouter le nom d'unité de la classe proxy(abundanttech.deadoralive) à la clause uses de votre unité Web Form pour éviter les erreurs dans l'événement Click.

Pour exécuter l'application

1. Choisissez Projet Construire tous les projets. Votre projet est maintenant créé et réside sur votre serveur ASP.NET.

2. Ouvrez un navigateur Web.

3. Tapez l'URL du fichier .aspx de votre application Web et appuyez sur Entrée.

Conseil: Si vous utilisez Microsoft IIS, l'URL est le chemin d'accès au fichier .aspx

indiqué après Inetpub\wwwroot. Par exemple, si le chemin de votre application Web est c:\Inetpub\wwwroot\WebApplication1 et si votre fichier .aspx est nommé "WebForm1.aspx", l'URL sera http://localhost/WebApplication1/WebForm1.aspx.

4. Si nécessaire, entrez votre nom d'utilisateur et votre mot de passe pour le serveur ASP.NET. La page web de votre application web s'affiche.

2.6 Procédures de services Web RAD Studio pour .NET Ajout de références Web dans des projets

211

2

Page 218: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

5. Entrez le nom d'une célébrité (par exemple, Isaac Asimov) dans la zone de saisie et cliquez sur le bouton Dead or Alive?. Votre application demande ces informations au service web DeadOrAliveWS et affiche le résultat dans le libellé.

Remarque: Si aucune information ne s'affiche, ce nom ne se trouve peut-être pas dans la base de données. Vérifiez l'orthographe ou essayez avec un autre nom.

Voir aussi

Création d'applications Web ASP.NET

Présentation des services Web ASP.NET ( see page 104)

Construction d'une application de services Web "Hello World" ASP.NET ( see page 219)

Accès à une application de services Web "Hello World" ASP.NET ( see page 215)

TDataset

2.6.3 Construction d'une application de services Web "Hello World" ASP.NET

La construction d'une application avec des services Web ASP.NET vous permet d'exposer des fonctionnalités à votre applicationclient sur une connexion Web. Ces étapes vous guident dans la construction d'une application "Hello World" simple avec desservices Web ASP.NET. Une fois construite, l'application expose tous ses objets et méthodes par le biais d'un WebMethod quevous créez et atteignez via un navigateur Web.

Pour créer une application "Hello World" simple avec les services Web ASP.NET

1. Créer une application de services Web ASP.NET.

2. Créer un WebMethod.

3. Tester et exécuter l'application de services Web ASP.NET.

Remarque: Actuellement, avec RAD Studio vous pouvez seulement créer des services web en utilisant la méthode de code sous-jacent. Vous ne pouvez pas utiliser la méthode de code en ligne, dans laquelle vous codez votre service web dans le fichier <NomService>.asmx

. Actuellement, RAD Studio ne prend pas en charge la méthode de code en ligne de création de services web.

Pour créer une application de services Web ASP.NET

1. Choisissez Fichier Nouveau Autre. La boîte de dialogue Nouveaux éléments apparaît.

2. Sélectionnez le dossier Projets ASP pour la langue que vous utilisez.

3. Sélectionnez Application Service Web ASP.NET. Une boîte de dialogue Nom de l'application apparaît.

4. Entrez un nom et un emplacement pour l'application dans les champs et conservez toutes les autres valeurs par défaut.

Remarque: Si vous utilisez le serveur Web Cassini, vous devez modifier les entrées Emplacement et Serveur. Vous devez également vous assurer de configurer le serveur Web Cassini avant de tenter d'exécuter cette application. Choisissez Outils->Options

et sélectionnez Options ASP.NET pour définir le Chemin et le Port pour Cassini.

5. Cliquez sur OK. Un fichier WebService1.asmx et un WebService1.asmx.<typefichier> sont automatiquement créés.

Pour créer un WebMethod

1. Sélectionnez l'onglet WebService.pas ou WebService.asmx.cs en bas de l'éditeur de code. Si vous donnez un nom

Construction d'une application de services RAD Studio pour .NET 2.6 Procédures de services Web

212

2

Page 219: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

différent du nom par défaut à votre application de service Web, c'est ce nom qui apparaîtra sur l'onglet. Le code de l'application "Hello World" est déjà inclus dans le WebMethod qui est créé lorsque vous créez l'application de services Web.

2. Décommentez l'exemple WebMethods dans le fichier de code sous-jacent. Dans les applications Delphi pour .NET, vous devez décommenter deux WebMethods "Hello World" : dans le module Interface et dans le module Implémentation.

3. Choisissez Projet Construire <nom_projet> pour construire votre projet.

4. Exécutez votre projet. Cette opération appelle le navigateur qui héberge le service Web. Les pages que vous verrez incluront le code exemple SOAP et HTTP que vous pouvez utiliser pour accéder aux WebMethods. Vous pouvez exécuter les exemples et voir comment les résultats sont transmis à un fichier XML de sortie.

Pour tester et exécuter manuellement le service web XML

1. A partir d'un navigateur Web, entrez l'emplacement du fichier WebService1.asmx sur votre hôte local :

http://localhost/WebService1/WebService1.asmx

Les pages que vous verrez incluront le code exemple SOAP et HTTP que vous pouvez utiliser pour accéder aux WebMethods.Vous pouvez exécuter les exemples et voir comment les résultats sont transmis à un fichier XML de sortie.

Remarque: Vous pourrez utiliser une syntaxe légèrement différente de celle présentée dans cette étape. Par exemple, surcertaines machines Windows XP, l'identificateur localhost doit être le nom de votre machine. Ainsi, si le nom de votre machineest MaMachine, la syntaxe serait : http://MaMachine/WebService1/Webservice1.asmx.

2. Testez les deux méthodes à partir d'un navigateur Web.

Voir aussi

Présentation des services Web ASP.NET ( see page 104)

Gestion des services Web ASP.NET ( see page 109)

Accès à une application de services Web "Hello World" ASP.NET ( see page 215)

2.6.4 Portage d'une application client de services Web Delphi pour Win32 vers Delphi pour .NET

Les étapes suivantes sont nécessaires au portage de votre application client de services Web Win32 vers Delphi pour .NET.

Pour porter votre service Web

1. Modifiez les composants fiche RIO existants.

2. Modifiez la clause uses.

3. Ajoutez une référence Web.

4. Modifiez le code d'invocation des services web.

Pour changer vos composants fiche existants

1. Copiez et enregistrez l'URL de référence Web de votre composant RIO existant.

2. Supprimez le composant HTTPRio de la fiche s'il n'a pas été dynamiquement créé.

Pour changer la clause uses

1. Retirez toutes les unités SOAP Delphi pour Win32 de la clause. Ces unités comprennent entre autres InvokeRegistry, RIO et SOAPHTTPClient.

Avertissement: La liste d'unités précédente n'est pas exhaustive. Vérifiez que vous avez identifié toutes les unités SOAP, quelle que soit la convention de nommage. Toutes les unités ne comportent pas le mot SOAP dans leur nom.

2.6 Procédures de services Web RAD Studio pour .NET Portage d'une application client de services

213

2

Page 220: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

2. Retirez la référence à l'unité proxy Interface Importer WSDL Delphi pour Win32.

3. Retirez l'unité proxy du projet.

Pour ajouter une référence Web

1. Ouvrez un projet Delphi pour Win32 dans RAD Studio et choisissez Projet Ajouter une référence Web. Une fois le projet enregistré, le navigateur UDDI apparaît.

2. Entrez l'URL à utiliser, soit un service que vous connaissez déjà, soit le service que vous avez enregistré à partir de votre composant RIO dans la zone de liste en haut du navigateur.

Remarque: Pour chercher un fichier WSDL sur votre disque local, cliquez sur le bouton points de suspension à côté de la zone de liste et cherchez le document. Si vous voulez utiliser un service publié, vous pouvez aussi naviguer jusqu'à l'un des sites de service Web listés dans le navigateur UDDI.

3. Cliquez sur le bouton Ajouter référence pour ajouter le document WSDL à votre projet. RAD Studio crée la référence Web nécessaire et l'unité proxy correspondante en fonction du document WSDL. Un nouveau noeud Références Web apparaît dans le gestionnaire de projet. Développez-le pour voir les fichiers WSDL et de code proxy associés.

4. Choisissez Fichier Utiliser l'unité.

Pour changer le code d'invocation du service web

1. Dans le fichier de code de votre application, trouvez le code qui invoque le service Web. Supposons qu'il ressemble à ceci :

procedure TForm1.Button1Click(Sender: TObject);var HelloService: Service3Soap;begin // La ligne suivante sera légèrement différente si vous avez // utilisé un composant ou généré la méthode de façon dynamique. // Le code a cet aspect si vous avez utilisé un composant. HelloService := (HTTPRIO1 as Service3Soap); // Le code a cet aspect si vous l'avez créé de façon dynamique. // GetService3Soap est la méthode globale de l'unité proxy. HelloService := GetService3Soap; Caption := HelloService.HelloWorld;end;

2. Remplacez la section var suivante :

var// Type de l'ancienne interface proxy. HelloService: Service3Soap;

to

var// Type de la nouvelle classe proxy. HelloService: Service3;

Cet exemple suppose que le nom de votre service est Service3. Remplacez ce nom par celui du service à utiliser.

Remarque: Vous pouvez constater que ce qui était créé comme une interface est maintenant créé comme une classe. Comme.NET Framework fournit un récupérateur de mémoire automatique, certaines restrictions d'utilisation des classes dans lesversions précédentes de Delphi ne s'appliquent peut-être plus dans RAD Studio.

3. Changez la première ligne du bloc de procédure :

HelloService := (HTTPRIO1 as Service3Soap);

Portage d'une application client de services RAD Studio pour .NET 2.6 Procédures de services Web

214

2

Page 221: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

to:

HelloService := Service3.Create;

Le code mis à jour doit ressembler à ceci :

procedure TForm1.Button1Click(Sender: TObject);var HelloService: Service3;begin HelloService := Service3.Create; Caption := HelloService.HelloWorld;end;

Votre code est probablement plus complexe que cet exemple. Néanmoins, ces instructions couvrent la procédure de base duportage vers RAD Studio des applications Delphi pour Win32 qui utilisent des services web.

Voir aussi

Portage de services Web vers Delphi pour .NET ( see page 79)

Présentation des services Web ( see page 104)

2.6 Procédures de services Web RAD Studio pour .NET Portage d'une application client de services

215

2

Page 222: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants
Page 223: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Index

AAccès à une application de services Web "Hello World" ASP.NET 215

ADO.NET

applications de bases de données 158

architecture 14

ASP.NET 84

composants connexion 158

Editeur de CommandText 136

Editeur de texte de commande 135

Editeur prévisualisation d'adaptateur 134

namespace 14

présentation 14, 62, 76

AdoDbx

migration BDP 17

AdoDbx.NET

fournisseurs de données 27

types de données 11

AdoDbxClient

présentation 6

affichage des images bitmap 171

affichage des noeuds enfants 165

Affichage d'une image bitmap dans une application Fiches VCL 171

Ajout de références Web dans des projets ASP.NET 217

Ajout de valeurs agrégées avec DBWebAggregateControl 200

Ajout d'un dialogue Erreur de conciliation BDP à votre application BDP 114

Ajout d'une nouvelle connexion à l'explorateur de données 114

Ajout d'une référence à un serveur COM 148

Ajout d'une référence J2EE 148

ancêtre

base 170

API Win32

code non managé 63

Application ADO.NET 182

application ASP.NET 181, 185, 187, 188, 189, 190

application de porte-documents

AutoUpdateCache (propriété) 194

applications VCL

déploiement d'applications de bases de données dbExpress 164

ensembles de données client 158

événements 160

fiches 160

fournisseurs d'ensembles de données 158

graphiques 158

projet Windows Forms 160

sources de données 158

ASP.NET

architecture 84

contrôles DB Web 195

présentation 84

authentification de l'utilisateur

UseUniqueFileName 204

AutoUpdateCache

UseUniqueFileName 194

Bbase de données

ajouter une nouvelle connexion 136

Concepteur d'adaptateur de données 136

Concepteur d'ensemble de données 137

connexions 124

création d'un projet 118, 130, 144

dbExpress 31, 33

dbExpress pour .NET 9

dbGo pour .NET 10

Base de données

ajout de la conciliation des erreurs 114

ajouter une nouvelle connexion 114

exécution de SQL 120

explorer les objets 116

modification des connexions 123

utilisation de l'onglet prévisualisation d'adaptateur de données 134

utilisation du concepteur de génération d'ensemble de

3 RAD Studio pour .NET

a

Page 224: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

données 141

BDE.NET

base de données 7

bitmaps

boîte à options 174

CClearSessionChanges (méthode) 100

Client DataSnap .NET

base de données 7

clients de services Web

portage 74

Compatibilité du framework dbExpress 33

composants

connexion 87

importation 76

orientés données 87

Composants AdoDbx.NET

ADO 27

composants bases de données

configuration 119

composants VCL.NET

VCL.NET 76

compte d'utilisateur ASP.NET

trous de sécurité 205

concepteurs de composant

configuration d'adaptateur de données 22

Editeur de connexions 22

Editeur de texte de commande 22

Ensemble de données 22

Procédure stockée (boîte de dialogue) 22

relation 22

Concepteurs de composants ADO.NET 22

Conception d'une application ASP .NET 181

Conception d'une application de bases de données ASP.NET 182

Conception d'une application Fiches VCL de bases de données dbExpress.NET 164

Concepts 1

configuration

composants connexion 182

composants de données 182

IIS 158, 181

serveur Web 182, 189

connexion

DataBind 182

grille de données 182

source de données 182

Connexion à AdoDbx Client 117

Connexion à une base de données à l'aide du framework de pilote dbExpress 143

connexion des grilles de données 158

Connexion du client AdoDbx

construction 117

connexions

connexion MS Access 124

connexion MS SQL Server 124

Connexion Sybase 124

connexions à la base de données 124

constructeur de propriétés

contrôles DB Web 203

constructeurs

destructeurs 63

construction

applications Fiches VCL avec composants XML 165

fiches VCL hello world 162

menus de fiches VCL 163

Construction d'applications Fiches VCL avec graphiques 158

Construction d'un plan de site ASP .NET 190

Construction d'une application "Hello World" ASP.NET 189

Construction d'une application ASP.NET avec des contrôles de base de données, Partie 2 187

Construction d'une application ASP.NET avec des contrôles de base de données, Partie 3 188

Construction d'une application avec des composants XML 165

Construction d'une application avec les contrôles DB Web 195

Construction d'une application de base de données distribuée 144

Construction d'une application de base de données résolvant plusieurs tables 130

Construction d'une application de services Web "Hello World"

RAD Studio pour .NET 3

b

Page 225: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

ASP.NET 219

Construction d'une application Fiches VCL 160

Construction d'une application Fiches VCL Hello World 162

Construction d'une application Fiches VCL.NET de base de données ADO.NET 158

contrôle utilisateur

ASP.NET 213

contrôle utilisateur ASP.NET 213

contrôles .NET

contrôles VCL et .NET 176

contrôles DB Web

architecture 87

ASP.NET 87

bibliothèque 208

configuration 195

espace de nommage 87

préparation des projets 195

Contrôles DBWeb

interfaces WebDataLink 102

contrôles VCL et .NET

package de contrôle .NET 176

Conversion d'éléments HTML en contrôles serveur 196

Création d'actions dans une application Fiches VCL 160

Création de mappages de tables 119

Création de métadonnées pour un ensemble de données 199

Création de projets de base de données dans l'explorateur de données 118

Création d'un fichier XML pour des contrôles DB Web 197

Création d'un nouveau composant VCL .NET 170

Création d'un répertoire virtuel 200

Création d'une application de porte-documents avec des contrôles DB Web 194

Ddata

gestion distante 144

database

Editeur de texte de commande 135

DataHub (composant)

configuration 130

DataSync (composant)

configuration 130

DB2

AdoDbx.NET 11

dbExpress.NET

base de données 7

dbGo

base de données 7

DBWebAggregateControl

valeurs agrégées 200

DBWebDataSource

configuration 195

Débogage et mise à jour d'applications ASP.NET 201

Définition de permissions pour l'utilisation de fichiers XML 204

Delphi pour .NET

Web Forms 84

Dépannage d'applications ASP.NET 205

déploiement

Applications BDE pour .NET 26

Applications BDP.NET 26

applications dbExpress pour .NET 26

Applications dbGo pour .NET 26

applications de bases de données 26

Applications Interop COM 46

contrôles DB Web 87

gestionnaire de déploiement ASP.NET 208

Gestionnaire de déploiement ASP.NET 202

Déploiement d'applications ASP.NET 101

Déploiement d'applications de bases de données pour le .NET Framework 26

Déploiement des applications Interop COM 46

Déploiement d'une application ASP.NET avec Blackfish SQL vers un système sans RAD Studio 202

dessin

lignes droites 173

polygones 173

rectangles et ellipses 172

Dessin de lignes droites dans une application Fiches VCL 173

Dessin de rectangles et d'ellipses dans une application Fiches VCL 172

3 RAD Studio pour .NET

c

Page 226: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Dessin d'un rectangle arrondi dans une application Fiches VCL 173

Développement d'applications avec des composants VCL.NET 61

Développement d'applications avec du code non managé 40

Développement d'applications de bases de données avec ADO.NET 3

Développement d'applications Web avec ASP.NET 82

Développement de services Web avec ASP.NET 104

Développement d'états pour les applications .NET 59

Développement d'une application ASP.NET avec des contrôles de base de données, Partie 1 185

données

migration 122

EECO Framework 151

Editeur de balise 211

Editeur de balise HTML

modification des balises HTML 211

effacement du texte 163

ensemble de données

fichiers XML 199

Ensemble de données

mappages de tables 119

ensemble de données client

TClientDataSet 164

ensembles de données unidirectionnels

composants dbExpress 164

envoi

commandes 182

erreurs ASP.NET

messages HTTP 203

Éévénements boîtes à options

OnDrawItem 174

EExécution SQL dans l'explorateur de données 120

exemple

hello world ASP.NET 189

Expert des contrôles DB Web

contrôles personnalisés 92

expert d'importation de contrôles WinForm

contrôles .NET dans VCL 176

explorateur de données

définition 22

Explorateur de données

exécution de SQL 120

ISQLDataSource 22

modification des connexions 123

exploration d'une base de données 116

Exploration d'une base de données dans l'explorateur de données 116

Exportation d'un diagramme de visualisation de code en image 150

Ffiche VCL

ajout d'un code de bouton et d'événement 162

création 162

exécution d'une application exemple 162

image bitmap 174

fiches VCL

menus 160

fichiers XML

Avantages de XML 98

fichiers XML DBWeb 197

sources de données DBWeb 98

fonctions de callback

fonctions 46

fonctions non managées

API Win32 46

fournisseurs de données

architecture 27

Fournisseurs de données pour .NET (AdoDbx)

ADO.NET 27

Fournisseurs de données pour Microsoft .NET 27

Framework dbExpress 31

RAD Studio pour .NET 3

d

Page 227: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

GGénération de messages HTTP dans ASP.NET 203

Gestion de contrôles utilisateur ASP.NET 213

Gestion des erreurs dans le mappage de table 121

Gestion des services Web ASP.NET 109

gestionnaires d'événements

OnPaint 172, 173

HHTTP

messages 205

IIBX.NET

InterBase 7

IDBWebColumnLink

IDBWebDataLink 102

IDBWebLookupColumnLink 102

IDBWebDataLink 102

IIS

dépannage 205

images bitmap 174

Importation de contrôles .NET dans VCL.NET 176

Importation et exportation d'un modèle avec XMI (XML Metadata Interchange) 151

Insertion d'une image bitmap dans un contrôle d'une application Fiches VCL 174

installation d'ASP.NET

réinstallation 205

Interbase

connexions 124

InterBase

ADO.NET 11

composants 34

Interfaces

AdoDbx.NET 27

interfaces COM

interfaces 46

Interfaces DB Web 92

Interfaces de bibliothèques virtuelles 54

interfaces utilisateur

ADO.NET 14

Interopérabilité COM 40, 148

Assemblages d'interopérabilité dans l'EDI 40

Outils du SDK 40

Terminologie 40

Introduction à InterBase Express 34

LLe cycle de vie ASP.NET

Le traitement ASP.NET 92

liaison

composants 208

Liaison de colonnes dans un contrôle DBWebGrid 203

liaison de données

liaison des contrôles DB Web 92

limitations des vues de données

insertion d'enregistrements 100

logique de code sous-jacent 181, 189

Mmaître-détail

vues de données 100

mappages de tables

configuration 119

erreurs 121

suppression 119

menus

actions 160

actions standard 160

application exemple 160

fiches VCL 160

messages HTTP

erreurs 203

métadonnées

fichiers de schéma XML 199

mappages d'ensembles de données 199

3 RAD Studio pour .NET

e

Page 228: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

migration

tables 122

migration BDP 17

Migration de données entre des bases de données 122

mises à jour en cascade

base de données 89

MissingMappingAction (propriété)

erreurs 121

MissingSchemaAction, propriété

erreurs 121

Modélisation 57

Modification des connexions dans l'explorateur de données 123

Modification des connexions de bases de données 124

modification des contrôles DB Web

extension des contrôles 92

Modifications requises en raison du support 64 bits .NET 2.0 62, 167

MS SQL

ADO.NET 11

NNouvelles fonctionnalités du langage 74

OOracle

ADO.NET 11

Ppage ASP.NET 181, 189

paramètres

base de données 132

Pascal

modifications du langage 74

Passage de paramètres dans une application de base de données 132

permissions de fichiers XML

permissions 204

Pile de protocole de services Web 107

PInvoke

platform invoke 46

portage

portage VCL.NET 76

Portage d'applications VCL 74

Portage de clients de services Web 79

Portage d'une application client de services Web Delphi pour Win32 vers Delphi pour .NET 220

Présentation de ADO.NET 14

Présentation de AdoDbx Client 6

Présentation de ASP.NET 84

Présentation de Blackfish SQL 20

Présentation de la migration BDP 17

Présentation de la mise en pool des connexions BDP 8

Présentation de la visualisation de code 57

Présentation de l'API de navigation des contrôles DB Web 91

Présentation de l'expert des contrôles DB Web 92

Présentation de VCL pour .NET 76

Présentation des composants dbExpress 9

Présentation des composants dbGo 10

Présentation des contrôles DB Web CodeGear 87

Présentation des procédures stockées 30

Présentation des services Web ASP.NET 104

Problèmes de langage au sujet du portage d'applications VCL vers RAD Studio 63

Procédures 111

Procédures ASP.NET 178

Procédures d'applications interopérables 148

Procédures de bases de données 112

Procédures de modélisation 150

Procédures de services Web 215

procédures stockées

présentation 30

Procédures VCL pour .NET 155

projet ASP.NET 181, 189

RRave Reports 59

création de nouveaux états 59

redéfinir Render

Render 92

RAD Studio pour .NET 3

f

Page 229: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

références d'objets

transmission de références 46

références web 217

répertoire virtuel, création dans l'EDI 200

résolution

tables multiples 130

ressources

migration 63

SServerSupport

ASP.NET 84

services web

client 215

services Web

accès 217

accès à une application services Web 215

architecture 104

ASP.NET 104

construction d'une application 219

création d'une application client 215

description de service 107

espaces de nommage 109

fichiers 104

gestion client 109

gestion serveur 109

messages xml 107

navigateur UDDI 217

portage 79, 220

portage d'applications 79

portage de fiches de services Web 79

portage des applications Win32 vers .NET 220

prérequis 104

protocole 107

recherche 107

références web 217

scénarios 104

transport de service 107

Services web

ASP.NET 84

string

char 63

structures

pointeurs 46

suppressions en cascade

base de données 89

Sybase

ADO.NET 11

Ttables

mappages 119

TDataSetProvider

fournisseur dbExpress 164

TDataSource

source de données dbExpress 164

TDBGrid

connexion dbExpress 164

Technologies de bases de données VCL pour .NET 7

transtypages

décomposeurs 63

types de données

ADO.NET 27

types de données .NET

ADO.NET 11

Types de données AdoDbx.NET 11

types de données logiques

AdoDbx.NET 11

types pointeurs

portage 63

Uunidirectionnel, ensemble de données

TSQLDataSet 164

Utilisation de ActionManager pour créer des actions dans une application Fiches VCL 163

Utilisation de contrôles DB Web dans les applications maître-détail 89

Utilisation de DrInterop 45

3 RAD Studio pour .NET

g

Page 230: RAD Studio pour - Product Documentation - …docs.embarcadero.com/products/rad_studio/radstudio2007/...Présentation de la mise en pool des connexions BDP 8 Présentation des composants

Utilisation de fichiers XML avec des contrôles DB Web 98

Utilisation de la fenêtre Vue globale 153

Utilisation de la fenêtre Vue modèle et du diagramme Visualisation du code 152

Utilisation de la prévisualisation d'adaptateur de données 134

Utilisation de l'éditeur de balise HTML 211

Utilisation de l'éditeur de texte de commande 135

Utilisation de l'expert Contrôle DB Web 208

Utilisation de l'interopérabilité COM dans les applications managées 40

Utilisation de Platform Invoke avec Delphi pour .NET 46

Utilisation de Rave Reports dans RAD Studio 59

Utilisation d'ensembles de données typés 141

Utilisation des ensembles de données standard 137

Utilisation des interfaces WebDataLink 102

Utilisation des vues de données 100

Utilisation du concepteur adaptateur de données 136

Utilisation du concepteur éditeur de connexion 136

Utilisation du gestionnaire de déploiement ASP.NET 208

Vvaleurs null dans des agrégats

caption (propriété) 200

variants

TVarRec 63

VCL

portage 74

VCL pour .NET

graphiques 171

VCL.NET

architecture 76

espace de nommage 76

portage 63

Visualisation de code 57, 150, 152, 153

exportation des diagrammes 150

vues de données

propriétés d'exécution 100

XXML

contrôles DB Web 197

XML et authentification

Mise en mémoire cache XML 98

RAD Studio pour .NET 3

h