Exporter (0) Imprimer
Développer tout

Développer à l'aide ADOCE.


Introduction
Introduction à ADO et ADOCE
Objets Recordset et Field
Utilisation de ADOCE
Résumé
Pour plus d'informations

Introduction

Avec les objets Microsoft ADO, les applications clientes peuvent accéder aux données et les manipuler à partir d'un serveur de bases de données par l'intermédiaire d'un fournisseur de bases de données OLE. ADOCE fournit un sous-ensemble de ADO pour Windows CE. Il offre de nouvelles fonctionnalités pour bases de données au système d'exploitation Windows CE en autorisant un accès aux bases de données stockées localement sur un périphérique et il fournit la synchronisation des données avec une base de données en réseau.

ADOCE peut être utilisé avec PC de poche (H/PC) et la version 1.2 de l'Agenda de poche. Cet article présente une introduction à ADO et ADOCE, décrit les objets Recordset et Field et explique le fonctionnement de ADOCE.

Introduction à ADO et ADOCE

ADO est une interface Microsoft stratégique de haut niveau pour tous les types de données. Une application qui utilise ADO peut accéder aux données et les manipuler dans un serveur de bases de données par l'intermédiaire d'un fournisseur de bases de données OLE. Notez parmi les principaux avantages de ADO sa facilité d'utilisation, sa grande rapidité, un temps système en mémoire économique et un espace disque restreint. ADO offre un accès aux données performant et logique pour la création d'un client d'accès aux bases de données ou d'objet business de la couche centrale via une application, un outil, un langage ou même un navigateur Internet.

ADO est le composant principal de la stratégie de Microsoft Universal Data Access (UDA). Ce dernier fournit un accès très performant à des sources d'informations variées, relationnelles ou non relationnelles et une interface de programmation facile à utiliser, indépendante de l'outil et du langage. Ces technologies permettent aux entreprises d'intégrer des sources de données diverses, de créer des solutions faciles à maintenir et d'utiliser leurs meilleurs outils, applications et services de plate-forme.

ADOCE fournit un sous-ensemble de ADO pour le système d'exploitation Windows CE comprenant l'implémentation des objets Recordset et Field. ADOCE offre de nouvelles fonctionnalités de bases de données au système d'exploitation Windows CE en autorisant un accès aux bases de données stockées localement sur un périphérique. Il fournit une synchronisation des données par rapport à une base de données en réseau. ADOCE permet d'accéder au moteur de la base de données Windows CE à partir de tout environnement COM, tel que le kit de développement Microsoft Windows CE pour Microsoft Visual Basic® version 6.0.

ADOCE fournit les fonctionnalités suivantes :

  • Une synchronisation automatique bidirectionnelle avec le bureau hôte.

  • De nouveaux types de données : double et Booléen (comparés aux bases de données de Windows CE).

  • La prise en charge de SQL. La prise en charge avancée de SQL, incluse dans ADOCE, est un sous-ensemble du SQL ANSI (American National Standards Institute). Elle ajoute de nouvelles fonctionnalités au moteur de bases de données fournissant des noms de champs, plusieurs clés de tri, un filtrage complexe, la création de tables et d'index, la suppression et l'édition et des possibilités de liaisons entre plusieurs tables.

  • Accès au recordset.fieldname commun.

  • Compatibilité du bureau ADO.

Objets Recordset et Field

Le contrôle ADOCE possède deux objets : Recordset et Field. Un jeu d'enregistrements est une table de base de données virtuelle, dont les champs et les lignes correspondent à un sous-ensemble de champs et de lignes de la véritable table de base de données du périphérique sur Windows CE. Lorsque vous ajoutez, supprimez ou modifiez les informations d'une ligne du jeu d'enregistrements, vous pouvez transférer ces modifications aux éléments correspondants de la table. Lorsque vous modifiez les données du jeu d'enregistrements, celui-ci stocke ces modifications en mémoire, vous permettant de les annuler avant que la base de données sous-jacente soit mise à jour. ADOCE ne gère pas la mise à jour par lots. Les données ne peuvent être modifiées que dans une seule ligne à la fois, mais ne peuvent pas être validées dans la base de données sous-jacente.

Le tableau suivant présente les méthodes prises en charge par l'objet Recordset :

Méthode Description
AddNew Insère une nouvelle ligne dans le jeu d'enregistrements.
CancelUpdate Annule les modifications en mémoire.
Clone Duplique un jeu d'enregistrements.
Close Ferme un jeu d'enregistrements.
Delete Supprime une ligne du jeu d'enregistrements.
GetRows Renvoie les données stockées dans le jeu d'enregistrements.
Move Déplace le pointeur vers la ligne active du jeu d'enregistrements.
MoveFirst Active la première ligne.
MoveLast Active la dernière ligne.
MoveNext Déplace le pointeur de la ligne active à la ligne suivante.
MovePrevious Déplace le pointeur de la ligne active à la ligne précédente.
Open Définit et ouvre les jeux d'enregistrements ; exécute les commandes SQL.
Supports Détermine si le jeu d'enregistrements gère certaines fonctionnalités.
Update Valide les modifications en mémoire et met à jour la table courante.

Le tableau suivant présente les propriétés prises en charge par l'objet Recordset :

Propriété Description
AbsolutePage Spécifie la page à déplacer pour un nouvel enregistrement courant.
AbsolutePosition Spécifie la position ordinale d'un objet de l'enregistrement courant Recordset.
Activeconnection Établit la connection à la base de données courante. Toujours une chaîne de longueur zéro (""). Pour H/PC exécutant le logiciel Pro Edition, le nom du fichier cdb
BOF Indique si la position de l'enregistrement courant est avant le premier enregistrement dans l'objet Recordset.
Bookmark Spécifie un signet qui identifie de manière unique un enregistrement dans l'objet Recordset.
CacheSize Spécifie le nombre d'enregistrements d'un objet Recordset mis en cache localement dans la mémoire.
CursorType Indique le type de curseur utilisé dans un objet Recordset.
EditMode Indique l'état d'édition de l'enregistrement courant.
EOF Indique que la position de l'enregistrement courant se situe après le dernier enregistrement dans un objet Recordset.
LockType Indique le type de verrou placé sur les enregistrements pendant l'édition.
PageCount Indique le nombre de pages de données contenues dans l'objet Recordset.
PageSize Indique le nombre d'enregistrements constituant une page dans le jeu d'enregistrements.
RecordCount Renvoie une valeur de type Long indiquant le nombre d'enregistrements courants dans un objet Recordset.
Source Indique la source des données dans un objet Recordset ; instruction SQL ou nom de table.

Les objets Field ne doivent pas être créés directement car ils n'existent que dans le contexte d'un jeu d'enregistrements existant. Utilisez la fonction Set pour vous référer à un objet Field spécifique. L'objet Field n'a ni méthode ni événement. À l'exception de Value, toutes les autres propriétés sont en lecture seule.

Le tableau suivant présente les propriétés prises en charge par l'objet Field :

Propriété Description
ActualSize Indique la longueur réelle, en octets, d'une valeur de champ.
Attributes Renvoie une valeur indiquant une ou plusieurs caractéristiques d'un objet Field.
DefinedSize Utilisé pour déterminer les capacités de données d'un objet Field. Il renvoie la taille définie, en caractères, du champ Compare avec ActualSize, qui renvoie la taille en octets.
Name Renvoie le nom d'un champ.
Type Indique le type de données d'un objet Field.
UnderlyingValue Indique la valeur courante d'un objet Field dans la base de données.
Value (default) Indique la valeur courante d'un objet Field dans le jeu d'enregistrements.

La collection Fields contient un objet Field pour chaque colonne du jeu d'enregistrements. Vous pouvez vous référer à un champ particulier par le nom ou par l'index. La collection Fields gère la propriété Count, qui indique le nombre de champs contenus dans un jeu d'enregistrements.

Utilisation de ADOCE

Avec ADOCE, vous pouvez déplacer des bases de données vers et à partir de votre périphérique sur Windows CE. Vous pouvez également créer ou accéder aux bases de données du périphérique ou d'un émulateur d'ordinateur de bureau. Les sections suivantes décrivent le fonctionnement de ADOCE et présentent des exemples. Notez que ControlConsts.bas est installé dans \Program Files\Microsoft Visual Studio\VB98\VBCE\Samples. Ce fichier contient les définitions pour les énumérations dans ADOCE et d'autres contrôles.

Logiciels requis

Pour utiliser le contrôle ADOCE, vous avez besoin des logiciels suivants :

  • Microsoft Windows CE Services version 2.1 ou ultérieure

  • Microsoft Windows NT® Workstation version 4.0 ou Windows 95 ou 98

  • Microsoft Windows CE Platform SDK pour le périphérique que vous utilisez

  • Microsoft Visual Basic, Édition Professionnelle version 6.0, système de développement ou Microsoft Visual Basic, Édition Entreprise version 6.0

  • Kit de développement Microsoft Windows CE pour Visual Basic version 6.0
Remarque    Le contrôle ADOCE est inclus dans le kit de développement Windows CE pour Visual Basic.

Déplacement des bases de données entre le bureau et le périphérique

Vous pouvez déplacer des tables de bases de données entre un ordinateur de bureau et un périphérique sur Windows CE. Les bases de données stockées dans l'ordinateur de bureau sont au format Microsoft Access®. Les bases de données du périphérique sont stockées dans des tables standard pour Windows CE qui comportent des informations supplémentaires ajoutées aux tables du système ADOCE .

Pour copier une base de données d'un ordinateur de bureau vers un périphérique

  1. Connectez le périphérique à l'ordinateur de bureau et ouvrez la fenêtre Périphériques mobiles.

  2. Dans le menu Outils de la fenêtre Périphériques mobiles, choisissez Importer les tables de la base de données. La boîte de dialogue Ouvrir apparaît.

  3. Sélectionnez le fichier Access.mdb contenant les tables que vous voulez importer. La boîte de dialogue Importation de la base de données vers le périphérique mobile apparaît avec une liste des tables et champs de la base de données.

  4. Cochez les cases des tables et champs que vous voulez importer, et désactivez celles des tables que vous ne voulez pas importer.

  5. Pour les tables que vous souhaitez limiter en lecture seule, activez la case à cocher Lecture seule.

  6. Si vous voulez remplacer des tables du périphérique portant le même nom que celles du fichier .mdb, cochez la case Écraser des tables et/ou des données existantes.

  7. Cliquez sur OK pour commencer la conversion.

Pour copier une base de données du périphérique vers l'ordinateur de bureau

  1. Connectez le périphérique à l'ordinateur de bureau et ouvrez la fenêtre Périphériques mobiles.

  2. Dans le menu Outils de la fenêtre Périphériques mobiles, sélectionnez Exporte les tables de la base de données. La boîte de dialogue Exportation du périphérique mobile vers la base de donnéesExportation du périphérique mobile vers la base de données apparaît, présentant les tables ADOCE du périphérique connecté.

  3. Choisissez le bouton Parcourir pour sélectionner un fichier Access.mdb. Vous pouvez également entrer le chemin et le nom du fichier dans la boîte Emplacement. Si le fichier n'existe pas, ADOCE le crée pour vous.

  4. Activez les cases à cocher des tables que vous voulez exporter et désactivez celles que vous ne voulez pas exporter. ADOCE met toutes les tables sélectionnées dans le même fichier .mdb.

  5. Si vous voulez remplacer des tables du .mdb portant le même nom qu'une table ADOCE sélectionnée, cochez la case Écraser des tables et/ou des données existantes.

  6. Cliquez sur OK pour commencer la conversion.

Pour contrôler par programme la conversion de fichiers .mdb vers des tables ADOCE et des tables ADOCE vers des fichiers .mdb, vous pouvez utiliser respectivement les fonctions DesktopToDevice et DeviceToDesktop. Le comportement de ces fonctions est similaire à celui des boîtes de dialogue Importation de la base de données vers le périphérique mobile et Exportation du périphérique mobile vers la base de données, à l'exception du choix de l'utilisateur qui n'apparaît pas dans les boîtes de dialogue. Toutes les barres de progression apparaissent, présentant l'état du transfert. Un renvoi d'erreur ne provoque pas l'affichage automatique du journal. Par contre, une valeur d'erreur, HRESULT, est renvoyée par la fonction, et l'application qui appelle peut prendre les mesures appropriées.

Vous pouvez spécifier les champs à convertir avec la fonction DesktopToDevice. Toutefois, avec la fonction DeviceToDesktop, tous les champs d'une table sont convertis par défaut.

L'exemple de code suivant présente une application Visual Basic simple, qui copie un sous-ensemble de la base de données Comptoir incluse dans Visual Basic vers le périphérique sans aucune synchronisation, mais en écrasant toutes les tables Comptoir existantes. La table Employés est envoyée en lecture seule, alors que la table Produits peut être mise à jour.

Declare Function DesktopToDevice Lib "c:\program files\windows ce services\adofiltr.dll" _
(ByVal desktoplocn As String, _
 ByVal tablelist As String, _
 ByVal sync As Boolean, _
 ByVal overwrite As Integer, _
ByVal devicelocn As String) As Long

result = DesktopToDevice ("c:\mydbs\nwind.mdb", _
"!Employees..Products.ID.Name.Quantity..", False, True, "")
If result <> 0 Then MsgBox "An error occurred transferring the data"

Création d'une table

Avant d'accéder aux données avec le contrôle ADOCE, vous devez disposer d'une table pour les stocker. L'exemple de code suivant présente la création d'une nouvelle table ADOCE dans le répertoire Bases de données d'un ordinateur de poche Édition Professionnelle.

Dim rs
Set rs = CreateObject("adoce.recordset")
rs.Open "create table mytable (firstfield text, secondfield integer)"
Set rs = Nothing

Comme les instructions SQL modifiant la structure d'une table laissent le jeu d'enregistrements fermé, vous ne pouvez pas lire ou écrire des données avant que celui-ci soit de nouveau ouvert.

Tri d'une table

Vous pouvez trier une table en utilisant l'instruction Order By avec ou sans index. Toutefois, le tri d'une base de données sans index est généralement plus lent que celui d'une base de données avec un index. L'exemple de code suivant présente le tri d'une base de données sans index. Il exige un objet ListBox nommé List1.

Dim rs
Set rs = CreateObject("ADOCE.RecordSet")
rs.open "select * from mytable order by firstfield desc", "", adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
 Do While Not rs.EOF
 List1.Additem rs.Fields("firstfield").Value
 rs.MoveNext
 Loop
End If
rs.Close
set rs = Nothing

L'exemple de code suivant présente la création d'un index dans une base de données utilisé pour un tri plus rapide. Il exige un objet ListBox nommé List1.

Dim rs
Set rs = CreateObject("ADOCE.RecordSet")
rs.open "create index i1 on mytable (firstfield desc)"
rs.open "select * from mytable order by firstfield desc", "", adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
 Do While Not rs.EOF
 List1.Additem rs.Fields("firstfield").Value
 rs.MoveNext
 Loop
End If
rs.Close
set rs = Nothing

Stockage et récupération d'informations

Pour ajouter, supprimer ou modifier les informations d'une base de données, vous devez modifier les valeurs par défaut de CursorType et LockType lors de l'ouverture du jeu d'enregistrements. L'exemple de code suivant présente le stockage d'informations dans une base de données :

Dim rs
Set rs = CreateObject("ADOCE.RecordSet")
rs.open "mytable", "", adOpenKeyset, adLockOptimistic
rs. Addnew
rs.fields("firstfield") = "ActiveX Data Objects"
rs.fields("secondfield") = 1.8
rs.Update
rs.Close
Set rs = Nothing

Si vous utilisez la méthode AddNew avec des paramètres, vous n'avez pas besoin d'utiliser la méthode Update dans la mesure où les modifications de la base de données sont faites automatiquement. L'exemple de code suivant présente l'utilisation de AddNew :

rs.Addnew "firstfield", "Windows CE"

Pour modifier un enregistrement plutôt que d'en créer un nouveau, procédez aux modifications des champs nécessaires et utilisez ensuite la méthode Update. Si vous utilisez Update avec des paramètres, les modifications sont automatiquement reportées dans la base de données. L'exemple de code suivant présente l'utilisation de Update :

rs.Update "firstfield", "ADOCE"

Après avoir stocké les données dans la base de données à l'aide de AddNew et de Update, vous pouvez vous servir de la propriété Value pour obtenir les informations stockées dans un champ. L'exemple de code suivant présente la récupération d'informations à partir d'une base de données ADOCE. Il exige un objet ListBox nommé List1.

Dim rs
Set rs = CreateObject("ADOCE.RecordSet")
rs.open "mytable", "", adOpenKeyset, adLockOptimistic 
If rs.RecordCount > 0 Then
 Do While Not rs.EOF
 List1.Additem rs.Fields("firstfield").Value
 rs.MoveNext
 Loop
End If
rs.Close
set rs = Nothing

Distribution des applications ADOCE

Les composants d'une application ADOCE doivent être installés sur l'ordinateur de bureau ainsi que sur le périphérique. Pour distribuer une application ADOCE, vous pouvez modifier l'exemple d'application Setup inclus dans le kit de développement Microsoft Windows CE pour Visual Basic 6.0. Toutes les applications Setup de ADOCE doivent vérifier que Windows CE Services 2.1 ou ultérieur est installé et ajouter les références aux fichiers .cab de ADOCE aux fichiers AppMgr .ini de votre application.

Utilisation d'un ordinateur de poche exécutant l'Édition professionnelle

Cette section décrit des procédures supplémentaires pouvant être réalisées sur un ordinateur de poche (H/PC) exécutant Microsoft Windows CE, PC de poche Édition professionnelle, version 3.0.

Création d'une base de données

L'exemple de code suivant présente la création d'une base de données externe sur un H/PC exécutant le logiciel Édition professionnelle :

Dim rs
Set rs = CreateObject("adoce.recordset")
rs.Open "create database '\mydatabase.cdb'"
Set rs = Nothing
Extraction d'informations à partir d'un fichier .cdb

Si vous créez une base de données sur un H/PC exécutant le logiciel Édition professionnelle, vous pouvez accéder à ces données en transférant le chemin d'accès à la base de données aux paramètres de connection. Toutes les opérations pouvant être exécutées avec une chaîne de connection vide ("") peuvent être exécutées sur un fichier .cdb en modifiant la chaîne de connection. L'exemple de code suivant présente l'extraction d'informations à partir d'un fichier .cdb :

Dim rs
Set rs = CreateObject("ADOCE.RecordSet")
rs.open "mytable", "\mydatabase.cdb", adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
 Do While Not rs.EOF
 List1.AddItem rs.Fields("firstfield").Value
 rs.MoveNext
 Loop
End If
rs.Close
set rs = Nothing

Résumé

ADOCE est un modèle objet d'accès aux données au niveau de l'application pouvant être utilisé avec le kit de développement Windows CE pour Visual Basic. ADOCE offre de nouvelles fonctionnalités de base de données à Windows CE en autorisant l'accès aux bases de données stockées localement sur un périphérique et fournit une réplication et une synchronisation des données par rapport à une base de données en réseau. La rapidité et la facilité d'utilisation de ADOCE, son temps système économique de mémoire basse et l'espace restreint qu'il occupe sur le disque, font de lui la solution idéale pour des utilisations avec le système d'exploitation puissant et rapide Windows CE.

Pour plus d'informations

Pour obtenir les dernières informations sur Windows CE et Les outils de développement incorporés, consultez le site Web de Microsoft Windows CE http://www.microsoft.com/windowsce/.

Pour plus d'informations sur les contrôles ActiveX, consultez le site http://www.microsoft.com/com/default.mspx.

Les informations contenues dans ce document représentent l’opinion actuelle de Microsoft Corporation sur les points cités à la date de publication. Microsoft s’adapte aux conditions fluctuantes du marché et cette opinion ne doit pas être interprétée comme un engagement de la part de Microsoft ; de plus, Microsoft ne peut pas garantir la véracité de toute information présentée après la date de publication. Ce document est fourni à titre d'information uniquement.

Ce livre blanc est fourni à titre d'information uniquement. MICROSOFT EXCLUT TOUTE GARANTIE, EXPRESSE OU IMPLICITE EN CE QUI CONCERNE CE DOCUMENT.

Microsoft, ActiveX, Visual Basic, Visual C++, Visual J++, Win32, Windows et Windows NT sont, soit des marques déposées de Microsoft Corporation, soit des marques de commerce de Microsoft Corporation, aux États-Unis d’Amérique et/ou dans d’autres pays.

Java est une marque déposée de Sun Microsystems, Inc.

Les autres noms de produits et sociétés mentionnés ici sont des marques déposées de leurs propriétaires respectifs.



Dernière mise à jour le jeudi 25 novembre 1999



Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft