2009-04-09 7 views
0

J'ai une base de données SyBase et j'ai été chargé de l'exporter vers MS Access. Quelle est la meilleure façon de procéder? (Note: Ceci est la moitié d'une question "Je vais y répondre moi-même quand je le découvre" et la moitié d'une question "Si quelqu'un est connu ...", alors ne faites pas de recherche à moins que ce soit votre idée de plaisir)Port SyBase to Access requis

Répondre

3

Pensez non pas comme l'exportation de SyBase, mais l'importation dans Access (Jet). En supposant que vous avez un pilote ODBC pour que SyBase Access/Jet peut utiliser, il est assez simple:

  1. Dans le Panneau de configuration | Outils d'administration | Sources de données, configurez un DSN pointant vers votre base de données SyBase.

  2. Dans Access, créez un nouveau MDB blanc.

  3. Dans le menu Fichier, choisissez Données externes.

  4. Sélectionnez IMPORT.

  5. dans les fichiers de menu déroulant TYPE au bas de la boîte de dialogue, choisissez les bases de données ODBC.

  6. Choisissez le DSN.

  7. La liste des tables de votre base de données SyBase devrait apparaître. Sélectionnez ceux que vous souhaitez importer et cliquez sur OK.

Les tables doivent être importées si tout se passe comme prévu. Il inclura à la fois la structure de la table et toutes les données. Il n'inclura pas les éléments tels que les déclencheurs (que Jet ne prend pas en charge), les règles d'intégrité référentielle, les procédures stockées, etc. Je ne sais pas si vous pouvez importer des vues - Access/Jet peut traiter une vue comme une table plutôt que comme un SQL parce que c'est certainement la façon dont elle les traite via ODBC (vous pouvez lier à une vue comme vous pouvez lier une table). Vous pouvez peut-être couper et coller le SQL de vos vues SyBase directement dans une requête de sauvegarde Access, mais Access/Jet a son propre dialecte SQL.

Vous pourriez avoir un temps plus facile de celui-ci si vous définissez votre nouvelle base de données pour utiliser ce que l'interface utilisateur Access appelle « SQL Server compatible Syntaxe (ANSI 92). » Étant donné que SQL Server est un fork à partir des anciennes versions de SyBase, cela pourrait rendre le SQL un peu plus compatible. Pour définir ceci, dans Access, allez à TOOLS | OPTIONS | AVANCÉ et regardez dans le coin en bas à droite, où les choix devraient être explicites. Cela ne vous donne pas un SQL entièrement compatible, mais il utilise%/_ wildcards et allow() pour les tables dérivées (au lieu de l'horrible [].) Comme syntaxe Alias ​​de Jet SQL). Cela peut aussi avoir un effet sur certaines syntaxes de jointure, mais je n'en suis pas certain.

Si vous avez des problèmes, postez et nous essaierons de vous aider. Je n'ai pas SyBase à tester avec et juste utilisé mon installation MySQL locale pour importer via ODBC, donc il se pourrait que les choses ne fonctionnent pas exactement de la même manière pour vous.

+0

Cela semble tellement amusant. Mais comme il arrive La version de Sybase I (la version du kit de développement libre) n'agira pas comme une source ODBC et ne peut pas accéder aux sources ODBC non Sybase (WT ..) Comme il arrive, copier/coller dans le bloc-notes utilise CSV et Accès importations CSV ... douloureusement – BCS

+0

BTW après avoir utilisé cet assistant d'importation, il/a vraiment l'air amusant :) – BCS

+0

Est-ce que cette version de SyBase a un pilote OLEDB? Vous ne pouvez pas utiliser l'importation basée sur un menu, mais vous pouvez au moins créer des requêtes avec une chaîne de connexion OLEDB, puis les utiliser comme source pour les requêtes MakeTable dans Access. –