2009-11-30 4 views
1

Je travaille sur un projet hérité, écrit pour la plupart dans Delphi 5 avant sa mise à niveau vers Delphi 2007. Beaucoup de choses ont changé après cette mise à jour, à l'exception de la base de données c'est en dessous. Il utilise encore MS-Access pour le stockage de données.Maintenir la structure de la base de données compatible entre MS-Access et SQL Server

Maintenant, nous voulons prendre en charge SQL Server en tant que base de données alternative. Toujours pour les situations mono-utilisateur, le support multi-utilisateur sera une fonctionnalité pour le futur. Et bien qu'il n'y aura pas beaucoup de problèmes de migration (voir ci-dessous) quand il doit utiliser une base de données différente, garder deux structures de base de données synchronisées est un peu un problème.

Si je devais créer un script SQL pour générer la base de données SQL Server, j'aurais besoin d'un second script pour maintenir la base de données Access à jour également. Ils ne parlent pas le même dialecte. (Au moins, pas pour nos objectifs.) J'ai donc besoin d'un moyen de maintenir la structure de base de données d'une manière simple, en s'assurant qu'il peut générer à la fois une base de données SQL Server valide en tant que base de données Access. Je pourrais écrire mon propre outil où je stocke la structure de base de données dans un fichier XML, qui combiné avec du code intelligent et ADOX générerait les deux types de bases de données.

Mais n'y a-t-il pas déjà un bon outil qui peut le faire?


Note: l'application utilise également ADO et toutes les requêtes ne sont que des instructions select simples. Bien qu'il y ait plus de 50 tables, il y a une table "Document" racine et l'utilisateur sélectionne un des "documents" dans ce tableau. Il collecte ensuite tous les enregistrements de toutes les tables liées à cet enregistrement de document et les stocke dans une structure en mémoire. Lorsque l'utilisateur enregistre les données, il réécrit simplement l'enregistrement du document et toutes les données modifiées dans la base de données. Fondamentalement, ce mécanisme de lecture/écriture des documents est la seule interaction de base de données dans l'ensemble de l'application. Donc, l'utilisation d'une base de données différente n'est pas un gros problème.

Nous allons supprimer la base de données MS-Access à l'avenir, mais pour l'instant nous avons 4000 clients qui utilisent cette application. Nous devons d'abord nous assurer que tout fonctionne avec SQL Server et que nous devons continuer à maintenir le code actuel. Par conséquent, nous devrons soutenir les deux bases de données pendant au moins un an.

Répondre

1

Jetez un oeil à la DB Explorer, il y a aussi un téléchargement d'essai.

OU

  1. assistant de migration d'utilisation de MS Access vers SQL Server
  2. Après le développement dans Access (modifications du schéma), utilisez à nouveau l'assistant.
  3. Utilisez un outil pour comparer les schémas SQL Server.
+0

Nous voulons en fait éviter que les développeurs n'appliquent des changements dans Access ou SQL Server. Les expériences passées ont montré que cela conduit à de nombreuses erreurs où nous oublions de synchroniser les changements. –

+0

Dans ce cas, le db Explorer fera l'affaire. Il couvre le serveur SQL, Access et quelques autres. Il peut comparer et documenter des schémas. Utilisez l'assistant de migration MS pour convertir au serveur SQL, les «versions de référence» de docuent et comparez simplement l'accès à Access et SQL Server au serveur SQL. –

Questions connexes