J'ai une base de données d'images étendue (métadonnées de 3,25 Go, images 90K) conservée dans un produit existant (idImager V5). À son tour, SQL Server 2005 est utilisé comme SGBD sous-jacent.
Au fil du temps, j’ai ajouté et mis à jour des informations sur les images et transféré la base de données sur différents lecteurs de disque afin d’utiliser des disques plus volumineux ou de remplacer des lecteurs défectueux. J'ai eu différents emplacements pour la base de données et différents emplacements pour les images gérées. Les noms de disque ont changé au cours de la période d'utilisation. Toutes les références aux lecteurs concernent à la fois les lecteurs physiques et logiques. Je n'ai jamais eu de partitionnement des lecteurs ni de systèmes de démarrage multiples.
La situation actuelle est que la base de données se trouve sur le lecteur C: nommé "Windows7_OS". Ce nom n'a jamais changé au fil des ans. Les images sont sur le lecteur D: nommé "2nd System Drive". Ce disque a été nommé "Nouveau volume" dans le passé.
J'ai quelques images stockées dans la base de données lorsque le nom était "Nouveau volume", et d'autres lorsque le nom était "2nd System Drive". Si j'essaie d'accéder aux photos stockées sous le mauvais nom actuel, le message d'erreur s'affiche.
.
Si je change les noms, je reçois le même message (y compris un nom de chemin complet), mais relativement à l'autre nom.
Est-il possible d'obtenir que la base de données d'images accepte les deux noms? Ma pensée initiale était d’aliaser le lecteur - sous Windows ou SQL Server. Je n'ai pas trouvé le moyen de le faire. Je ne souhaite pas utiliser les bases de données complètes de métadonnées et d'images pour résoudre les noms incorrects, pas plus que je ne souhaite configurer le système à partir de zéro.
Mettre à jour:
La suggestion de @ Scott ne fonctionne que lorsqu'un lecteur d'un ordinateur est remplacé par un autre. Cela ne fonctionne pas lorsque le même lecteur est capturé deux fois dans la base de données sous différentes étiquettes, mais qu'une seule étiquette est visible par la base de données. La vérification de cette approche a révélé que la configuration de l’explorateur de catalogue pour exclure les dossiers de catalogue supprime également cette option.
Mettre à jour:
Il a été nécessaire de suivre la suggestion de @ harrymc, dans l’esprit mais pas dans le détail. Une table de la base de données contient tous les chemins de fichiers contenant des images et l’étiquette de média pour chaque chemin de fichier. Changer les données dans ce tableau fournit une solution exacte à mon problème. Cela nécessitait la sauvegarde de la base de données et l'utilisation des privilèges du propriétaire de la base de données.
la source
Réponses:
Si SQL Server 2005 vérifie l'étiquette du volume, il n'y a aucun moyen de cacher le fait que l'étiquette a changé, vous devez donc modifier la façon dont les images sont stocké dans la base de données.
La seule façon dont je puisse penser est de changer "Nouveau volume" en "2nd System Drive" dans la base de données, consiste à réimporter les images, dans l’esprit suivant:
Comme je n'ai pas SQL Server 2005 pour jouer avec, ni une copie de votre base de données, Je ne peux pas aller plus dans les détails. Je suggère de prendre des sauvegardes complètes de la base de données avant de commencer.
la source
Plutôt que de créer un alias sur le lecteur, essayez d’utiliser une commande powershell pour alias, renommer ou déplacer tous les fichiers. Je suggérerais de changer de nom ou de changer de nom plutôt que d'alias.
Pour renommer les fichiers, la cmdlet est Rename-Item ou ren
Pour déplacer les fichiers, l'applet de commande est Move-Item ou mv.
Je ne sais pas si le changement de nom fonctionnerait, mais le déménagement devrait l'être.
la source
Je pense que votre problème est complètement lié à IdImager. Ses catalogues doivent stocker le label de volume et vous devez les mettre à jour, ce qui ne devrait pas être un processus difficile avec IdImager.
De: http://forum.idimager.com/viewtopic.php?f=14&t=14164
la source