Avantages et inconvénients du projet de données d'accès (Front-end MS Access avec SQL Server Backend)
J'ai été chargé avec le déplacement d'un existant MS Access (mdb) sur un Projet de Données Access (adp). Fondamentalement, l'Accès formes restera le même, mais les données seront migré sur SQL Server.
Je ne suis pas trop familier avec les Projets de Données Access (ADP) alors j'espérais que je pourrais obtenir quelques avis sur les avantages et les inconvénients de l'utilisation de l'ADP ou tout alternativs comme
- convertir cette application web
- ou même une application Winform,
- cependant, je voulais vraiment réaliser en raison de diligence dans la recherche à l'Accès des Données des Projets de
avant de prendre une décision.
Merci pour toute aide.
source d'informationauteur webworm | 2010-03-23
Vous devez vous connecter pour publier un commentaire.
Le principal avantage(s) d'un Projet de Données Access est que (un), vous obtenez la stabilité, l'évolutivité et la sécurité d'une véritable base de données SQLtandis que (b) toujours à l'aide de la bien-connue MS Access front-end et de programmation.
(a) je suis sûr Que vous le savez, l'Accès des fichiers MDB démontrer beaucoup de problèmes lorsqu'elles sont partagées par plusieurs utilisateurs en même temps, ou lors de la croissance de trop grand--ce sont des limites que SQL Server n'a pas. Au-delà, vous pouvez sécuriser vos données et empêcher la corruption ou la perte de plus en plus facilement sur le Serveur SQL.
(b) Si vous avez déjà le front-end construit dans MS Access, il est assez facile de laisser le programme à télécharger vos données sur le serveur. En fin les utilisateurs obtiennent de continuer à utiliser la même interface qu'ils étaient avant--il se sent pas différent d'eux (sauf peut-être que c'est plus rapide!). Et il n'a pas besoin d'une tonne de temps de démarrer le programme à partir de zéro dans un .NET de la langue (pour ne pas mentionner la distribution/installation de la nouvelle application sur tous vos systèmes client).
Existe-il des inconvénients? Eh bien, peut-être un couple: (1) Clients ont encore besoin du Runtime Access pour utiliser le logiciel, et doivent également disposer d'un accès réseau au Serveur SQL. (2) La conversion automatique n'est pas à 100%--lorsque vous exécutez l'assistant pour transférer les données à partir d'Access, il fera de son mieux pour convertir l'Accès spécifiques à des requêtes SQL pour SQL Server/T-SQL; si certaines requêtes échouent après la conversion, vous aurez probablement besoin de ré-écrire avec la bonne syntaxe de T-SQL.
Il n'y a aucune raison de le port d'un travail existants d'Accès de l'application à un ADP avant la fin. Simplement migrer vos données et l'utilisation de tables ODBC liée à la place des tables liées utilisé pour lier votre Jet/ACE.
Si malgré cela, vous décidez de port à l'ADP, cependant, garder à l'esprit que Microsoft a été autodérision Adp depuis plusieurs années maintenant et il n'est pas clair si l'ADP a un avenir ou pas. A2007 avait pas d'améliorations pour Pda et je crois A2010 ne sera pas, non plus. On dit que l'Accès de l'équipe de développement veut relancer Pdr dans la version après A2010, mais c'est surtout la spéculation basée sur l'équipe de sollicitation de commentaires auprès des utilisateurs de SQL Server sur la façon dont l'Accès pourrait être amélioré afin de travailler avec elle dans les futures versions.
Je suppose que vous êtes à l'aide de Access 2007. Si vous êtes, il y a deux options lorsque vous déplacez les données de SQL-Server:
A) Convertir à l'adp
La Conversion d'ADP vous oblige à changer le code DAO pour ADO de code, ce qui est une autre, légèrement différente de la base de données de la bibliothèque. En fonction de la quantité de code que vous avez dans votre application, cela peut être une grande chose en soi.
Plus important, cependant, sont des questions avec quelques nouveaux Access 2007 caractéristiques, qui ne sont PAS DISPONIBLES lors de l'utilisation d'un ADP. Microsoft a déjà indiqué cela n'améliorera PAS avec Access 2010. (Un Exemple est la nouvelle Sourcecontrôle (controlsource)-Propriété de l'Image-les Contrôles. Il sera là dans une ADP, mais il ne fonctionne pas!) Si vous souhaitez utiliser ces, aller avec B)
B) convertir à accdb avec les tables liées
Cela vous permettra de rester avec DAO, la conversion est en grande partie automatique et de vous accorder presque toutes les caractéristiques. Certaines requêtes complexes peuvent encore avoir besoin d'être fixe, depuis l'Accès ne peut pas obtenir les mêmes informations détaillées sur vos tables/requêtes lorsqu'ils résident sur SQLServer.
La seule chose que vous pourriez avoir à se soucier, et seulement si vous êtes à la diffusion de l'application pour les utilisateurs finaux, les connexions sans DSN sont ou DSN tables liées, depuis la création de la DSN ODBC sur chaque extrémité de l'utilisateur-machine requiert des privilèges d'administrateur. Mais il y a beaucoup d'exemples de cela sur le net.
Je connais une énorme raison de ne pas créer un nouveau projet de données Access. Pour citer Microsoft: "Access 2013 n'inclut pas le support pour les Projets de Données Access (Adp)." Donc, dans l'avenir, lorsque votre mise à niveau des clients Bureau, ils vont se trouver absolument pas en mesure d'utiliser leur logiciel frontal. Voir http://msdn.microsoft.com/en-us/library/office/jj618413%28v=office.15%29.aspx.
Si vous voulez mettre vos données dans SQL Server, et continuer à utiliser l'Accès à l'avant, vous pouvez le faire en utilisant une connexion ODBC et des tables liées. À partir du site web ci-dessus: "l'Accès de 2013 continue de soutenir la création de bases de données de bureau dans le .le format de fichier accdb. Vous pouvez convertir votre demande à l' .format accdb, y compris tous vos formulaires et rapports, et de conserver les données dans SQL Server. Vous pouvez faire un lien vers la base de données SQL Server à l'aide de tables liées et votre application va continuer à fonctionner sur les mêmes données."
J'ai été en utilisant adp depuis de nombreuses années, avec beaucoup d'efficacité. Comme indiqué précédemment, le client machines exigent MS Accès ou la libre MS Access Runtime logiciel pour les exécuter. Adp devez utiliser SQL Server en tant que serveur. Si bien écrit, les Adp sont très performants, mais à bien écrire, il ya une quantité considérable de codage de la cause. Apatrides Adp, c'est à dire un principalement à l'aide de formulaires indépendants, est un attribut de clé pour une plus rapide de l'interprète. Cela ne signifie beaucoup de codage pour passer des paramètres à l'arrière-plan via des connexions ADO. Fermeture inutilisés des connexions ADO est important. Pour les transactions, essayez de passer des paramètres dans des procédures stockées dans la base de données SQL Server. Vous aurez également besoin de compiler ces ADP applications dans ADE fichiers avant la distribution pour la sécurité et la taille de fichier pour des raisons. La vérité sera connue, je devrais avoir investi du temps pour apprendre ASP.NET!
J'ai été en utilisant ce programme pour les+ de 10 ans depuis Access 2003 avec SQL2000 et ont continué à utiliser des ADP avec Access 2007 et SQL2005 et mon plus récent projet est en cours de test Access 2010 sur SQL2008R2. Je suis un croyant ferme que l'ADP offre un supérieur de l'expérience de plus de MDB/ODBC que vous pouvez vivre dans l'Accès de tous les aspects du cycle de développement. La nécessité d'une utilisation ou accès au SQL Management Studio est de 99,9% n'est pas requise. Personnellement, je ne laisse mon DBA pour accéder à SQL Server outils de gestion et de restreindre mon ADP développeurs seulement de créer une connexion à la base de données.
Je vais de l'état à partir de l'expérience que l'ADP nécessite le mélange correct des versions autrement des résultats étranges vont se produire. Par exemple, Access 2007 ADP avec SQL2008R2 n'a jamais été 100% stable pour moi. Lorsque Access 2007 est sorti, il était difficile de surmonter de nombreux problèmes avec l'aide de l'ADP sur SQL2000. Trouver la bonne combinaison semble trop stabilisé et résoudre la plupart de tous mes problèmes.
Je crois que l'Accès ADP devrait être relancé par Microsoft comme il s'est avéré être un outil très puissant et stable, plate-forme de développement et ce serait une honte de perdre.
J'ai fait plusieurs tentatives pour migrer mes demandes vb.net avec de mauvais résultats, bien que j'en suis proche. La courbe d'apprentissage et les temps de développement pour mon niveau de compétences (programmeur autodidacte avec une expérience de 20 ans) a été très difficile pour moi d'abandonner Accès ADP, mais j'ai essayé de nombreuses fois, de peur que l'ADP finira par disparaître. Je vais abandonner l'Accès tout à fait quand ça arrive.
J'ai utilisé Access 2013 avec jeu d'enregistrements ADO de formulaire et sous-formulaire et transmettez-requête de rapport et de sous-état connecté à SQL Server 2000, 2012 et maintenant 2014. Sa fonctionne très bien et pas tellement de code derrière les formes et les rapports qui ont Moi.Paramètressaisie (inputparameters) et les autres, nous savons à partir d'ADP formulaire/état de la propriété dialogbox. Les tables liées n'est pas bon quand mes tableaux, c'est comme 100 000 lignes de long et j'ai toujours un critère ajouté dans mes procédures stockées, de sorte que seules quelques lignes sont envoyées du serveur au client. Im peur de l'Accès de la requête à des tables liées, car comment puis-je être sture, que toutes les données à partir des tables de la jointure n'est pas l'envoyer à partir du serveur vers le client, mais avec un jeu d'enregistrements ADO et pass-through requête je sais que cela n'arrivera jamais, donc j'aime toujours faire la demande dans Access 2013 🙂