web-dev-qa-db-fra.com

Comment pointer Crystal Reports vers une nouvelle base de données

J'ai un utilisateur Crystal Reports 2008 qui possède plus de 100 rapports personnalisés développés. Les rapports interrogent toutes les bases de données SQL Server (SQL 2005).
Ce serveur de base de données est remplacé par un nouveau système (exécutant SQL 2008 R2) et les bases de données existantes seront déplacées vers le nouveau serveur. Le nouveau serveur de base de données aura un nom différent (que je peux utiliser via les connexions Crystal Reports), cependant, l'une des applications est également mise à niveau en même temps. L'ancienne base de données (DB_A) sera restaurée sur le nouveau serveur pour les rapports d'historique et une nouvelle base de données (DB_B) sera créée. Le nouveau DB_B aura un schéma très similaire, donc je m'attends à ce que la plupart des Crystal Reports soient capables de s'exécuter sur le nouveau DB_B avec peu ou pas de modification autre que de pointer la définition du rapport vers le nouveau DB_B.

Bien sûr, la majorité de mes utilisateurs ont développé des rapports personnalisés sur DB_A.

Ma question est la suivante: comment modifier les fichiers Crystal Reports existants pour pointer vers le nouveau nom de base de données (DB_B) au lieu de l'ancienne base de données (DB_A)?

25
JSR

Utilisez le menu Base de données et l'option de menu "Définir l'emplacement de la source de données" pour modifier le nom ou l'emplacement de chaque table dans un rapport.

Cela fonctionne pour changer l'emplacement d'une base de données, passer à une nouvelle base de données et changer l'emplacement ou le nom d'une table individuelle utilisée dans votre rapport.

Pour modifier la connexion à la source de données, accédez au menu Base de données et cliquez sur Définir l'emplacement de la source de données.

  1. Modifier la connexion à la source de données:
    1. Dans la liste Source de données actuelle (la case du haut), cliquez une fois sur la connexion à la source de données que vous souhaitez modifier.
    2. Dans la liste Remplacer par (la case du bas), cliquez une fois sur la nouvelle connexion de source de données.
    3. Cliquez sur Mettre à jour.
  2. Modifier les tables individuelles:
    1. Dans la liste Source de données actuelle (la case du haut), développez la connexion à la source de données que vous souhaitez modifier.
    2. Recherchez la table pour laquelle vous souhaitez mettre à jour l'emplacement ou le nom.
    3. Dans la liste Remplacer par (la case du bas), développez la nouvelle connexion de source de données.
    4. Recherchez la nouvelle table que vous souhaitez mettre à jour vers laquelle pointer.
    5. Cliquez sur Mettre à jour.
    6. Notez que si le nom de la table a changé, l'ancien nom de la table apparaîtra toujours dans l'explorateur de champs même s'il utilise maintenant la nouvelle table. (Vous pouvez confirmer cela en consultant le nom de la table des propriétés de la table dans la source de données actuelle dans l'emplacement de la source de données. Capture d'écran http://i.imgur.com/gzGYVTZ.png ) Il est possible de renommer l'ancien nom de table au nouveau nom dans le menu contextuel de Database Expert -> Tables sélectionnées.
  3. Modifier les sous-rapports:
    1. Répétez chacune des étapes ci-dessus pour tous les sous-rapports que vous pourriez avoir incorporés dans votre rapport.
    2. Fermez la fenêtre Définir l'emplacement de la source de données.
  4. Toutes commandes ou expressions SQL:
    1. Accédez au menu Base de données et cliquez sur Expert Base de données.
    2. Si le concepteur de rapports a utilisé "Ajouter une commande" pour écrire du SQL personnalisé, il apparaîtra dans la zone Tables sélectionnées à droite.
    3. Faites un clic droit sur cette commande et choisissez "Modifier la commande".
    4. Vérifiez si SQL spécifie une base de données spécifique. Si c'est le cas, vous devrez peut-être le changer.
    5. Fermez la fenêtre Database Expert.
    6. Dans le volet Explorateur de champs à droite, cliquez avec le bouton droit sur les expressions SQL.
    7. Vérifiez si les expressions SQL spécifient une base de données spécifique. Si c'est le cas, vous devrez peut-être également le modifier.
    8. Enregistrez et fermez la fenêtre de l'éditeur de formule lorsque vous avez terminé la modification.

Et essayez à nouveau d'exécuter le rapport.

La clé est de changer la connexion à la source de données d'abord, puis toutes les tables que vous devez mettre à jour, puis les autres éléments. La connexion ne changera pas automatiquement les tables en dessous. Ces tables sont comme des oisons qui ont imprimé sur le premier grand animal ressemblant à une oie qu'ils voient. Ils continueront de contourner toute raison et toute logique et iront là où ils sont toujours allés, sauf si vous les modifiez spécifiquement manuellement.

Pour le rendre plus pratique, voici une astuce: vous pouvez "Afficher la requête SQL" dans le menu Base de données et vous verrez des noms de table qualifiés avec la base de données (comme "Ventes". "Dbo". "Clients") pour toutes les tables qui vont directement à une base de données spécifique. Cela pourrait faciliter la chasse si vous avez beaucoup de choses en cours. Lorsque j'ai résolu ce problème, j'ai dû changer chaque table pour pointer vers la nouvelle table dans la nouvelle base de données.

48
Todd Walton

Choisissez la base de données | Définir l'emplacement de la source de données ... Sélectionnez le nœud de base de données (cylindre jaune) de la connexion actuelle, puis sélectionnez le nœud de base de données de la connexion souhaitée (vous devrez peut-être vous authentifier), puis cliquez sur Mettre à jour.

Vous devrez également le faire pour les nœuds "Sous-rapports".

Pour info, vous pouvez également faire des tableaux individuels en sélectionnant chacun individuellement, puis en choisissant Mettre à jour.

5
craig