Como conectar-se com êxito aos arquivos de banco de dados do Foxpro usando o recurso MSSQL Linked Server e o ODBC?

2

Estamos tentando acessar os arquivos de banco de dados baseados em arquivos do Foxpro através do recurso de servidor vinculado do MSSQL Server, usando o driver ODBC Foxpro.

Para isso, temos

  • instalou o driver FoxPC ODBC mais recente da Microsoft,
  • fez um DSN do sistema que está usando este driver
  • escolheu a opção "Banco de dados do Visual FoxPro (.DBC)" em Tipo de banco de dados, em vez de "Diretório de tabela livre"
  • especificou o caminho para nosso arquivo dbc (na máquina local)
  • instalado MSSQL Server 2008 R2 Express
  • instalado MSSQL Server Management Studio 2008
  • tentou criar um novo servidor vinculado usando um assistente de GUI como este:

Mas o último passo nunca é concluído (a execução é exibida para sempre). Quando o Management Studio é fechado e reiniciado à força, o novo servidor vinculado está lá, mas contém apenas subitens de Catálogos. Se tentarmos expandi-lo, o Management Studio entrará em loop novamente.

    
por Henno 17.02.2012 / 16:10

2 respostas

2
  • Baixe e instale o Microsoft OLE DB Provider para o Visual FoxPro
  • Verifique se ele aparece no MSSQL Management Studio, em Objetos do sistema > Servidores vinculados > Provedores, como "VFPOLEDB". Eu tive que instalá-lo, desinstalá-lo e reinstalá-lo até que eu cheguei lá (e não, reiniciar o Windows não funcionou).
  • Abra os Objetos do sistema, clique com o botão direito do mouse em Servidores vinculados e escolha adicionar um novo servidor vinculado.
  • Preencha o formulário assim:
    • Não é necessário adicionar nenhum DSN no applet ODBC
    • Clique em OK e veja se você pode detalhar agora o novo servidor vinculado até ver as tabelas.
    • Clique com o botão direito em alguma tabela e faça o script de uma consulta SELECT para a nova janela de consulta. Isso fornece um exemplo de como consultar esse novo servidor vinculado:
      SELECT * FROM [myLinkedServer]...[myTable]
por 22.02.2012 / 18:04
0

A primeira coisa a fazer é certificar-se de que você está usando drivers de 32 bits se tiver um SQL Server de 32 bits e drivers de 64 bits se estiver usando um SQL Server de 64 bits. Os SQL Servers de 64 bits não podem usar drivers ODBC (ou OLEDB ou qualquer outra coisa) de 32 bits.

Eu tive os antigos drivers ODBC da Microsoft derrubando as instâncias do servidor, então evito-os.

Em versões recentes do SQL Server, 2005+, tive o melhor sucesso com os drivers "ACE". Esses drivers substituem os antigos drivers "JET" e foram introduzidos no Office 2007. Eles são baseados em OLEDB, mas você não notaria necessariamente. A versão para o Office 2010 que vem nas versões de 32 e 64 bits. Os drivers ACE redistribuíveis estão disponíveis para download no site da Microsoft.

Com os novos drivers, você não precisa criar um DSN do sistema como os antigos drivers ODBC. Você pode simplesmente criar o servidor vinculado e ir embora. Deve haver muitos exemplos de como criar servidores vinculados usando drivers ACE (ambos com TSQL e a GUI do SSMS) na Internet.

Você desejará ter certeza de que o provedor que representa seus drivers (procure na pasta Servidores vinculados da pasta Providers) esteja definido como "Permitir em andamento" e.

Você também pode achar que acessar arquivos na rede é mais difícil do que acessar o mesmo arquivo em um disco local. Isso geralmente é um problema com delegação e segurança. Fazer isso acontecer pode ser um incômodo, dependendo da sua infraestrutura.

(Se você estiver interessado, eu fiz algumas entradas no blog "Legacy Connectivity em um mundo de 64 bits" há três ou quatro anos, cobrindo problemas do dbase / foxpro, problemas de 32/64 bits, mais db / 2 e outros Provavelmente há mais do que você gostaria de ler. Isso foi antes dos drivers ACE de 64 bits serem lançados, e as coisas estão melhores agora.)

    
por 17.02.2012 / 17:38