Pergunta

Alguém poderia explicar a melhor maneira de se conectar a um banco de dados Interbase 7.1 usando .NET / C #?

O aplicativo será instalado em muitos computadores de usuários finais para que o menos "add-ons" que vou ter para embalar com a minha aplicação melhor.

Foi útil?

Solução

CodeGear oferece uma ADO.NET 2.0 motorista livre para usuários registrados do InterBase aqui:

http://cc.embarcadero.com/item/25497

Observe que "usuários registrados do InterBase" inclui a livre o InterBase 2007 Developers Edition. O download diz que é para 2007, mas funciona muito bem com InterBase 7, ea equipe InterBase no CodeGear me disse que eles não têm nenhum problema com as pessoas a usá-lo para esse fim.

Eu não recomendo usar um driver projetado para Firebird, como InterBase e Firebird tem um pouco diferentes sintaxes SQL, e diferem em outras características, bem. Em particular, eu acho que o uso de qualquer driver dependente fbclient.dll com InterBase é completamente perigoso.

Outras dicas

Eu acho que o Firebird .net provedor é o mesmo que aquele que está em mono. Ambos são excelente btw.

O código no arquivo de ajuda funciona em muitas situações, mas não todos, especialmente no Windows 8.1, Windows Server 2012 máquinas.

Certifique-se de obter as últimas InterBase_ADO.NET da Embarcadero. A versão que eu atualizado para a versão foi 16.0.4327.44959 de Borland.Data.AdoDbxClient.dll. (Clique direito do mouse em arquivo, propriedades, detalhes para ver o número da versão). A instalação também cria uma pasta versão x64 de 64 bits, embora eu não usá-lo. I alvo x86 sem problemas.

Esta instalação ADO.NET não é necessário fazer em cada máquina - você só precisa incluir o abaixo arquivos em seu projeto e ter Interbase instalado na máquina que está sendo executado. Eu só instalou o driver no meu computador de desenvolvimento.

A instalação irá extrair todos os arquivos necessários que você precisa para colocar em seu aplicativo para se conectar ao banco de dados. Ele também irá criar o readme ADO_NET 2_0 Driver para InterBase XE Instalação e arquivo Instructions.htm Usage. NOTA IMPORTANTE: os exemplos de conexão DB neste arquivo htm ajuda não funcionam 100% do tempo. Veja o meu exemplo de código abaixo para a solução.

Sem conexão ODBC necessário. A lista dos arquivos a serem incluídos no seu projeto .NET e para ser copiado local são:

  • Borland.Data.AdoDbxClient.dll
  • Borland.Data.DbxCommonDriver.dll
  • Borland.Data.DBXInterBaseDriver.dll
  • Borland.Delphi.dll
  • Borland.VclDbRtl.dll
  • Borland.VclRtl.dll
  • dbxadapter.dll (x86 ou a versão x64)
  • dbxint.dll (x86 ou a versão x64)
  • gds32.dll (do interbase DB instalar)
  • interbase.msg (do interbase DB instalar)

Eu encontrei duas seqüências de conexão que trabalhou. Para um uso de conexão de corda dois conexão:

connectionstring1 = "DriverName=Interbase;Database=" + database + ";User_Name=" + userid + ";Password=" + password;
connectionstring1 = connectionstring1 + ";SQLDialect=3;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,";
connectionstring1 = connectionstring1 + "PublicKeyToken=91d62ebb5b0d1b1b;GetDriverFunc=getSQLDriverINTERBASE;LibraryName=dbxint30.dll;VendorLib=GDS32.DLL";

connectionstring2 = “User_Name="+userid+";Password="+password+";Database="+database+";ServerType=0;Charset=NONE;LibraryName=.\\dbxint.dll;VendorLib=GDS32.DLL;GetDriverFunc=getSQLDriverINTERBASE;SQLDialect=3";


GlobalObjects.dbconn = (TAdoDbxConnection)TAdoDbxInterBaseProviderFactory.Instance.CreateConnection();

GlobalObjects.database = databasepath;
GlobalObjects.dbconn.ConnectionString = connectionstring1;  //or connectionstring2
GlobalObjects.dbconn.Open();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top