Como forçar um aplicativo a reconhecer dois nomes para uma unidade de disco?

4

Eu tenho um extenso banco de dados de imagens (metadados de 3.25GB, imagens de 90K) em um produto legado (idImager V5). Isso, por sua vez, utiliza o SQL Server 2005 como o DBMS subjacente.

Com o passar do tempo, adicionei e mantive informações de imagem e mudei o banco de dados para unidades de disco diferentes para utilizar discos maiores ou para substituir unidades defeituosas. Eu tive locais diferentes para o banco de dados e locais diferentes para as imagens que estão sendo gerenciadas. Os nomes dos discos mudaram durante o período de uso. Todas as referências a unidades estão relacionadas a unidades físicas e lógicas. Eu nunca tive nenhum particionamento das unidades nem vários sistemas de inicialização.

A situação atual é que o banco de dados está na unidade C: chamado "Windows7_OS". Este nome nunca mudou ao longo dos anos. As imagens estão na unidade D: denominada "2nd System Drive". Esta unidade foi denominada "Novo Volume" no passado.

Eu tenho algumas imagens armazenadas no banco de dados quando o nome era "New Volume" e algumas quando o nome era "2nd System Drive". Se eu tentar acessar fotos armazenadas com o nome incorreto atual, recebo a mensagem de erro

.

Se eu mudar os nomes, recebo a mensagem idêntica (incluindo um nome de caminho completo), mas em relação ao outro nome.

Existe alguma maneira de obter o banco de dados de imagens para aceitar os dois nomes? Meu pensamento inicial era alias a unidade - no Windows ou no SQL Server. Eu não encontrei uma maneira de fazer isso. Não desejo trabalhar com os bancos de dados de metadados e imagens completos para classificar os nomes incorretos, nem desejo configurar o sistema do zero.

Atualização:

@ A sugestão de Scott só funciona quando uma unidade em um computador é alterada para outra em outro computador. Ele não funciona onde a mesma unidade é capturada no banco de dados duas vezes em rótulos diferentes, mas apenas uma etiqueta fica visível no banco de dados por vez. A verificação desse processo revelou que a configuração do Catalog Explorer para excluir as Pastas de Catálogo também remove essa opção de vista.

Atualização:

Provou-se necessário seguir a sugestão de @ harrymc, em espírito, embora sem detalhes. Uma tabela no banco de dados possui todos os caminhos de arquivo contendo imagens e o rótulo de mídia para cada caminho de arquivo. Alterar os dados nesta tabela fornece uma solução exata para o meu problema. Isso exigia o backup do banco de dados e a operação com privilégios de proprietário do banco de dados.

    
por Chris Walton 20.04.2015 / 23:44

3 respostas

1

Se o SQL Server 2005 verificar o rótulo do volume, não há como ocultar o fato que o rótulo mudou, então você precisa mudar a maneira que as imagens são armazenado no banco de dados.

A única maneira que eu posso pensar em mudar "New Volume" para "2nd System Drive" em o banco de dados, é para reimportar as imagens, no espírito do seguinte:

  1. Altere o nome do volume para "Novo volume"
  2. Execute uma consulta que selecione todas as imagens do banco de dados em "Novo volume"
  3. Salve o resultado da consulta em um arquivo
  4. Exclua as imagens em "Novo volume" do banco de dados
  5. Altere o nome do volume para "2nd System Drive"
  6. Importar as imagens salvas

Como eu não tenho o SQL Server 2005 para jogar nem uma cópia do seu banco de dados, Eu não posso entrar mais em detalhes. Eu sugiro fazer backups completos do banco de dados antes de começar.

    
por 24.04.2015 / 21:37
1

Em vez de usar o alias da unidade, você pode tentar usar um comando powershell para alias, renomear ou mover todos os arquivos. Sugiro mover ou renomear o aliasing.

Para renomear os arquivos, o cmdlet é Rename-Item ou ren

Rename-Item *.html *.txt     'This renames all files ending with .html to end with .txt

Para mover os arquivos, o cmdlet é Move-Item ou mv

Move-Item c:\images\* d:\images\     'Moves all files from the c:\images\ directory to d:\images\

Não tenho certeza se a renomeação funcionaria, mas a mudança deveria.

    
por 24.04.2015 / 21:25
1

Eu acho que seu problema é completamente relacionado ao IdImager. É catálogos devem estar armazenando o rótulo de volume e você precisa atualizá-los, o que não deve ser um processo difícil usando o IdImager.

De: link

Go to Catalog Folders, select the top level folder (that can be the drive ID), right click and select 'Relocate Catalog Folder'. Enter the new location (in your case that's the same as the old location) and click OK.

IIRC this should only take a few seconds or so...'

    
por 30.04.2015 / 01:55