Question

J'ai écrit un petit (8-10 ordinateurs portables) point de vente système en cours d'exécution sur un réseau sans fil, comme une HTA qui lit / écrit à un accès MDB situé sur un partage réseau.
Je dois utiliser ADO -. GetString et la liste des utilisateurs ne sont pas disponibles avec DAO
Je dois aussi utiliser DAO - le MDB ne peut pas être compacté avec ADO

.

Je sais que:
1) Si le backend de base de données n'est pas un MDB Access, je devrais utiliser ADO.
2) Si le back-end est un MDB, mais je veux mettre à niveau vers SQL Server à un moment donné, je devrais utiliser ADO.
3) Dans une application d'accès, ou toute autre application VBA / VB, je devrais utiliser DAO, comme ADO doit passer par une couche de traduction du fournisseur OLE DB Jet, alors que DAO est plus direct.
4) VBScript / JScript me permet d'utiliser soit DAO ou ADO.

La question en deux parties est la suivante:
1) Dans cet environnement logiciel (HTA / script), est-il préférable d'utiliser ADO plutôt que DAO?
2) Est-ce que ADO offre des avantages parce que l'HTA est en train de lire / écrire sur un réseau sans fil?

Était-ce utile?

La solution

  1. Si la seule raison pour laquelle vous avez besoin est de DAO compacter la base de données, vous pouvez utiliser DAO pour cela, et utiliser ADO pour tout le reste. Vous n'êtes pas limité à l'utilisation que ADO ou DAO.

  2. Le plus grand avantage d'utiliser ADO est qu'il sera plus facile de se déplacer vers SQL Server Express lorsque vient le temps. Vous devriez le faire plus tôt que tard, comme SQL Server Express offre tous les avantages des bases de données MSAccess sans les inconvénients. SQL Server Express est gratuit et il sera facilement gérer la taille du système que vous proposez.

bases de données d'accès facilement corrompus dans un environnement multi-utilisateurs, en particulier quand un réseau sans fil est impliqué. Si vous êtes inquiet de perdre les avantages de travailler dans MSAccess, vous pouvez toujours joindre à SQL Server à l'aide des tables liées, et travaillez avec votre base de données SQL Server Express de cette façon.

Autres conseils

Vous pouvez également utiliser JRO pour compacter votre fichier MDB. Ce sera inclus avec une version récente de MDAC, installé par défaut sur XP et les systèmes ultérieurs. Aucune installation d'accès est nécessaire.

Pour répondre à vos questions:

1) J'opterait pour ADO juste parce qu'il est plus courant, et la même API peut être utilisé dans d'autres types de scripts, tels que l'accès LDAP / ActiveDirectory, la lecture des dossiers du système de fichiers, la lecture du courrier MAPI, et travailler avec d'autres types des fichiers texte semi-structuré comme texte de largeur fixe et CSV. Ce n'est pas spécifiquement mieux pour l'environnement de programmation HTA, mais ce peut-être mieux pour vous d'apprendre une API plus largement applicable. Je pense aussi qu'il est une API plus facile de travailler avec, mais j'ai commencé avec elle et que plus tard travaillé sur certains anciens projets de DAO.

2) L'un des avantages possible que ADO offre est celle de déconnexion qui recordsets peuvent avoir un avantage ou du moins suggérer des alternatives architecturales dans la configuration de votre réseau sans fil. Vous ouvrez un jeu d'enregistrements, puis débranchez-le, afin que vous puissiez travailler avec les données en mémoire, mais pas à laisser une connexion de base de données ouverte. Puis à un moment plus tard, vous pouvez vous reconnecter et mettre à jour la base de données. En outre, vous pouvez travailler dans un style totalement déconnecté en gestion des tables sous forme de fichiers XML locaux ou ADTG.

Vous pouvez caser dans OAC travailler à partir de VBScript mais c'est un duo étrange. ADO fait le plus de sens en général.


Un autre avantage de ADO serait qu'il prend en charge RDS sur HTTP ou DCOM. Cela peut être utilisé pour surmonter bon nombre des limites de Jet BDM utilisés par le partage de fichiers, tels que les réseaux de corruption peu fiables et les clients peuvent conduire à. Elle réduit également la quantité de trafic sur le réseau, l'amélioration des performances. En outre, il offre un niveau intermédiaire dans lequel les objets d'affaires peuvent « vivre » et tout cela peut être médiés utilisant COM +, le cas échéant.

Bien sûr, vous n'avez plus la possibilité d'utiliser un simple réseau P2P et un partage de fichiers pour héberger la base de données. RDS a besoin d'un serveur pour héberger le processus et faire tourner le moteur Jet, qui n'a plus besoin de fonctionner sur chaque système client. Cela signifie que vous pouvez utiliser des procédures stockées Jet qui fonctionnent sur le serveur, déchargeant plus de traitement du client et le trafic réseau. Bien que pas aussi sophistiqué que T-SQL ou d'autres alternatives, cette ADO / Jet 4.0 OLE DB technologie exclusive offre des avantages tangibles qui ne peut être fait en utilisant DAO.

RDS peut masquer une grande partie du processus d'utilisation d'enregistrements déconnectés, ce qui simplifie le code client. Il utilise ADTG sous le capot, qui a été développé et optimisé dans ce but.

Cependant, l'utilisation RDS nécessite plus d'infrastructures et d'expertise qu'une simple action de fichier. Vous pourriez aussi bien regarder dans une version bas de gamme de SQL Server.


En général, je vous recommande d'utiliser le Jetcomp.exe utilitaire pour compacter et de réparation, sur deux ou DAO JRO. Il offre un certain nombre d'avantages.

Si vous pouvez vous permettre d'utiliser une application HTA avec accès à la place d'une plate-forme plus performante, je dirais que vous devriez aller avec le plus facile api pour vous. Le goulot d'étranglement ne sera jamais l'abstraction d'accès db dans votre cas. Pourtant, OAC est vraiment vieux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top