Cours Visual Basic communication avec les bases de données (Résumé), tutoriel & guide de travaux pratiques en pdf.
Communication avec les bases de données
Afin d’établir la communication entre les applications et les bases de données, les langages de programmation mettent à la disposition du programmeur, différents outils. VB est un langage qui offre plusieurs outils simples mais efficaces dans le but de faciliter la programmation et l’utilisation de telles liaisons.
Chaque type de base de données est associé à un «fournisseur», c’est-à-dire un logiciel qui répond aux requêtes qui lui sont soumises en traitant la structure et le contenu de la base. Il existe différents «fournisseurs» d’accès aux bases de données. La liaison avec une base de données de type Access se fait à l’aide du moteur de recherche Microsoft Jet OLE DB Provider qui gère les bases Access. Ceci n’est pas laissé au choix de l’usager car le type de connexion et le langage de requêtes dépendent du type de base qu’on utilise. Ainsi, les fichiers Access 2003 (version 11) utilisent la version «Jet 4.0» alors que les bases de Access 97 (version 8) utilisent la version 3.51 du «Jet».
Pour établir des connections avec des bases de données, VB nous offre une large variété de contrôles graphiques ainsi que des classes d’objets non graphiques. Certains de ces contrôles ont été créés spécifiquement pour gérer ces liaisons. D’autres sont des contrôles que vous connaissez déjà et qui contiennent simplement des propriétés qui facilitent la liaison avec les données qui proviennent d’une base de données.
DAO, ADO et ADO.NET
Les versions 5 et antérieures de VB utilisaient des outils de connexion rassemblés sous le vocable de DAO (Data Access Objects) alors que la version 6 offrait des outils plus performants regroupés utilisant la technologie «OleDb» et regroupés sous le vocable ADO (ActiveX Data Objects). VB.NET ne supporte plus le DAO mais continue de supporter le ADO pour fins de continuité. Mais l’accent pour les nouvelles applications est mis sur une version mise à jour (améliorée) de ADO : les outils ADO.NET qui peuvent gérer les types de bases les plus variées, incluant même des fichiers texte, Excel, Serveurs SQL, pages Web, intranets, banques d’images, etc.
Microsoft recommande donc d’utiliser le modèle ADO.NET puisque les outils ADO seront abandonnés éventuellement. Ceci dit, toute la structure de ces objets est bicéphale : la partie «OleDb» pour la plupart des fournisseurs de données actuels et la partie SQLClient spécialisée pour la gestion des bases fournies par la version 7 (et ultérieure) du serveur SQL de Microsoft.
Tous les outils de traitement des données sont contenus dans l’espace de nom «System.Data» qui apparaît par défaut dans les références de départ. Pour accéder aux outils «OleDb», il suffit de mentionner au début d’un module :
Imports System.Data.OleDb
Classes OleDb
L’ensemble de la technologie OLE DB, intégrée au FrameWork.NET, permet au programmeur de créer des commandes qui sont indépendantes des bases de données utilisées en passant par les différents objets intermédiaires qui servent alors d’interface. On change de base ? On ajuste les interfaces et on n’a pas à modifier le programme.
Classe OleDbConnection
Un objet de cette classe possède une propriété fondamentale de type «String», la «ConnectionString» qui décrit à la fois le type de liaison (le moteur de recherche et le fichier ou base à ouvrir). Supposons que la variable «String» contient un texte adéquat, alors on peut écrire
- Dim UneConn As OleDbConnection
- UneConn = New OleDbConnection
- UneConn.ConnectionString = UneChaine
- UneConn.Open() ‘ Méthode qui «ouvre» la connexion.
- ou, plus brièvement, en utilisant le constructeur «New»
Dim UneConn As OleDbConnection = New OleDbConnection(UneChaine) UneConn.Open() ‘ Méthode qui «ouvre» la connexion. qui ouvrira alors la connexion. En cas d’erreur dans la chaîne de correction, il y aura interruption du programme avec un message de VB.
partir de ce moment, on peut utiliser deux ou trois classes d’objets pour, ou bien lire les données de la base, ou bien les modifier et les mettre à jour.
Après la lecture des données, on peut bien sûr fermer la connexion avec UneConn.Close()
Propriété ConnectionString
Si on ne connaît pas le libellé de la chaîne de connexion adéquate, on peut utiliser un outil développé en VB6 pour la définir facilement : le fichier «XXX.udl». Un fichier de type «Universal Data Link» contient une chaîne de connexion qui peut être modifiée par un éditeur «Assistant des liaisons de données.
On peut créer une liaison en suivant ces étapes :
- On crée (bouton droit de la souris) un «Nouveau» / «Document texte» qui portera le nom «Nouveau document texte.txt».
- On renomme le fichier, «UnNom.udl» pour en faire un fichier de liaison vide.
- On double-clique sur le fichier pour lancer l’éditeur de liaison de données.
- Dans la boîte de dialogue, deux onglets définissent le moteur de recherche (onglet «Fournisseur» et le fichier lui-même (onglet Connection».
- Selon le type de base, les autres onglets serviront à définir l’environnement de l’accès, comme le mot de passe, les permissions partagées, etc. Dans le cas d’une simple base Access, les deux premiers onglets peuvent suffire.
- Dans l’onglet «Fournisseur», on sélectionne «Microsoft Jet xx OLE DB Provider».
- Dans l’onglet «Connexion», on peut taper le nom de la base ou bien naviguer sur l’ordinateur (bouton […]) pour localiser la base. Si on désire que le fichier soit en adressage relatif, il faut supprimer le chemin pour ne laisser que le nom.
Après avoir fermé l’application, il suffit d’ouvrir le fichier avec WordPad, NotePad ou tout autre éditeur de texte et vous y trouverez la chaîne de connexion qu’il suffira de «Copier/Coller» dans votre programme VB : [OleDb]Everything after this line is an OLE DB initstring Provider=Microsoft.Jet.OleDb.4.0;Data Source=BaseTP4.mdb;Persist Security Info=False
Vous noterez que le nom du fichier peut varier d’une application à l’autre. C’est pourquoi on peut séparer la chaîne en trois sections : le nom de la base, la partie qui le précède et la partie qui le suit. On peut alors reconstituer la chaîne en concaténant les trois parties avant de l’utiliser.