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

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

Tenho um extenso banco de dados de imagens (metadados de 3,25 GB, 90 mil imagens) mantido em um produto legado (idImager V5). Este, por sua vez, utiliza o SQL Server 2005 como DBMS subjacente.

Com o tempo, adicionei e mantive informações de imagem e mudei o banco de dados para diferentes unidades de disco para utilizar discos maiores ou para substituir unidades defeituosas. 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 referem-se a unidades físicas e lógicas. Nunca tive nenhum particionamento de unidades nem vários sistemas de inicialização.

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

Tenho algumas fotos armazenadas no banco de dados quando o nome era "Novo Volume" e outras quando o nome era "2ª Unidade do Sistema". Se eu tentar acessar fotos armazenadas com o nome errado atual, recebo a mensagem de erro

insira a descrição da imagem aqui.

Se eu mudar os nomes, recebo uma mensagem idêntica (incluindo um nome de caminho completo), mas relativa ao outro nome.

Existe alguma maneira de fazer com que o banco de dados de imagens aceite os dois nomes? Meu pensamento inicial foi criar um alias para a unidade - no Windows ou no SQL Server. Eu não encontrei uma maneira de fazer isso. Não desejo trabalhar em todos os metadados e bancos de dados de imagens para resolver os nomes incorretos, nem desejo configurar o sistema do zero.

Atualizar:

A sugestão de @Scott só funciona quando uma unidade em um computador é alterada para outra em outro computador. Não funciona quando a mesma unidade é capturada no banco de dados duas vezes com rótulos diferentes, mas apenas um rótulo fica visível no banco de dados por vez. A verificação desta abordagem revelou que configurar o Catalog Explorer para excluir as pastas do catálogo também remove esta opção de vista.

Atualizar:

Foi necessário seguir a sugestão de @harrymc, em espírito, mas não em detalhes. Uma tabela no banco de dados contém todos os caminhos de arquivos 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 fazer backup do banco de dados e operar com privilégios de proprietário do banco de dados.

Responder1

Se o SQL Server 2005 verificar o rótulo do volume, não haverá como ocultar o fato de que o rótulo foi alterado, portanto, será necessário alterar a forma como as imagens são armazenadas no banco de dados.

A única maneira que consigo pensar em alterar "Novo Volume" para "2ª Unidade do Sistema" no banco de dados é 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 “2ª unidade do sistema”
  6. Importe as fotos salvas

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

Responder2

Em vez de criar um alias para a unidade, você pode tentar usar um comando do PowerShell para criar um alias, renomear ou mover todos os arquivos. Eu sugeriria mover ou renomear o alias.

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.

Responder3

Acho que seu problema está totalmente relacionado ao IdImager. Seus catálogos devem armazenar o rótulo do volume e você precisa atualizá-los, o que não deve ser um processo difícil usando o IdImager.

De:http://forum.idimager.com/viewtopic.php?f=14&t=14164

Vá para Pastas de Catálogo, selecione a pasta de nível superior (que pode ser o ID da unidade), clique com o botão direito e selecione 'Relocar Pasta de Catálogo'. Insira o novo local (no seu caso, é igual ao local antigo) e clique em OK.

IIRC, isso deve levar apenas alguns segundos ou mais...`

informação relacionada