Le premier site francophone dédié au développement Pocket PC


Comment créer une base de données avec ADO ?
 
   


Les Visual Tools de Microsoft, et par la même eVB, sont fournies avec ADO 3.

ADO signifie Active Data Object, autrement dit, accès aux données grâce à la technologie ActiveX. Cette technologie d'accès aux données permet d'accéder à des moteurs de base de données différents en utilisant les mêmes objets, la même syntaxe, et la même logique. Dans la réalité, il existe quelques différences d'un moteur de base de données à l'autre, mais globalement, la méthode est bonne et le confort des développeurs (c'est nous ça !) est assez bon.

Pour que ADO puisse s'interfacer avec tel ou tel moteur de bases de données, il doit utiliser les services d'un provider. Il y a un provider par moteur. Sous Windows CE 3.0, le provider par défaut permet de gérer des bases de données au format CDB (un format proche de celui utilisé par Access, avec son moteur JET, sur PC). C'est un moteur largement suffisant pour une utilisation générale. Il permet l'exécution de requêtes SQL pour la gestion de la base de données, des tables et des indexes, et aussi pour la création de vues.

Etape 1 : Accéder à ADO depuis eVB

Pour utiliser ADO facilement depuis eVB, il faut cocher sa référence dans la liste des références du projet. Ceci permet à eVB de vous aider pendant la saisie du code en complétant la fin des commandes, ou en vous proposant les objets, méthodes et propriétés liés.

Etape 2 : Ajouter le code permettant de créer une nouvelle base de données

Pour créer une nouvelle base de données, il faut utiliser un Recordset ADO et lui faire exécuter une commande SQL CREATE DATABASE.

Un Recordset ADO permet de céer des vues depuis les tables présentent dans une base de données. Il permet aussi de créer une base de données vierge.

Il faut déclarer une variable de type Recordset, puis instancier un nouveau Recordset avant de le paramétrer pour qu'il crée la nouvelle base de données.

Rem Déclaration de la variable de type recordset
Dim wRecordset as ADOCE.Recordset

Rem Instanciation du nouveau recordset
Set wRecordset = CreateObject("ADOCE.Recordset.3.0")

Rem Création de la nouvelle base de données
Rem Le nom du fichier doit impérativement se termier par '.CDB'
Call wRecordset.Open("CREATE DATABASE '\My Documents\Essai.CDB'")

Rem On libère immédiatement le recordset
Set wRecordset = Nothing

Ce code ne gère absolument pas les erreurs qui pourraient survenir. En effet, il pourrait se produire 2 problèmes :

-1- La création de l'objet ADOCE.Recordset.3.0 pourrait échouer

-2- La création de la base de données pourrait échouer car le fichier existe déjà

On peut gérer ça facilement en utilisant le piège à erreurs et en analysant les erreurs qui pourraient se déclencher :

On Error Resume Next
Set wRecordset = CreateObject("ADOCE.Recordset.3.0")
On Error Goto 0
If wRecordset Is Nothing Then
MsgBox "Création du recordset impossible !"
Rem Suite du code en cas de problème
Else
Rem Suite du code en cas de succès
EndIf

Dans le cas de l'intanciation du recordset, si à la sortie il est toujours égal à Nothing, c'est que la fonction CreateObject a échoué.

En ce qui concerne la création de la base de données grâce au recordset nouvellement instancié, il faut utiliser une variable qui stockera l'éventuelle erreur qui pourrait survenir :

Dim wErr as Long
On Error Resume Next
Call wRecordset.Open("CREATE DATABASE '\My Documents\Essai.CDB'")
wErr = Err.Number
On Error Goto 0
If wErr <> 0 Then
Rem Suite du code en cas de problème
Else
Rem Suite du code en cas de succès
EndIf

 

Voilà, vous êtes maintenant capable de créer une base de données, certe complètement vide, avec eVB et ADO. Il faut maintenant passer à la création des tables...

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.