Pregunta

¿Alguien podría explicar la mejor manera de conectarse a una base de datos Interbase 7.1 utilizando .NET / C #?

La aplicación se instalará en muchas computadoras de usuarios finales, por lo que los menos " complementos " que tendré que empaquetar con mi aplicación mejor.

¿Fue útil?

Solución

CodeGear ofrece un controlador gratuito ADO.NET 2.0 para usuarios registrados de InterBase aquí:

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

Tenga en cuenta que " usuarios registrados de InterBase " Incluye la edición gratuita para desarrolladores de InterBase 2007. La descarga dice que es para 2007, pero funciona bien con InterBase 7, y el equipo de InterBase en CodeGear me dijo que no tienen ningún problema con las personas que lo usan para ese propósito.

No recomiendo usar un controlador diseñado para Firebird, ya que InterBase y Firebird tienen sintaxis SQL algo diferentes, y también difieren en otras características. En particular, creo que usar cualquier controlador dependiente de fbclient.dll con InterBase es absolutamente peligroso.

Otros consejos

Creo que el proveedor de Firebird .net es el mismo que el que está en mono. Ambos son excelentes por cierto.

El código en el archivo de ayuda funciona en muchas situaciones, pero no en todas, especialmente en Windows 8.1, máquinas con Windows Server 2012.

Asegúrate de obtener la última versión de InterBase_ADO.NET de embarcadero. La versión que actualicé fue la versión 16.0.4327.44959 de Borland.Data.AdoDbxClient.dll. (Haga clic derecho en el archivo, propiedades, detalles para ver el número de versión). La instalación también crea una carpeta de la versión x64 para 64 bits, aunque no la usé. Me dirigí a x86 sin problemas.

Esta instalación de ADO.NET no es necesaria en cada máquina & # 8211; solo necesita incluir los archivos a continuación en su proyecto y tener Interbase instalado en la máquina en la que está ejecutando. Solo instalé el controlador en mi computadora de desarrollo.

La instalación extraerá todos los archivos necesarios que necesita colocar en su aplicación para conectarse a la base de datos. También creará el archivo readme ADO_NET 2_0 para el archivo de Instrucciones de Instalación y Uso de InterBase XE.htm. NOTA IMPORTANTE: los ejemplos de conexión de DB en este archivo htm de ayuda no funcionan el 100% del tiempo. Ver el ejemplo de mi código a continuación para la solución.

No se necesita conexión ODBC. La lista de los archivos que se incluirán en su proyecto .NET y que se copiarán localmente son:

  • Borland.Data.AdoDbxClient.dll
  • Borland.Data.DbxCommonDriver.dll
  • Borland.Data.DBXInterBaseDriver.dll
  • Borland.Delphi.dll
  • Borland.VclDbRtl.dll
  • Borland.VclRtl.dll
  • dbxadapter.dll (versión x86 o x64)
  • dbxint.dll (versión x86 o x64)
  • gds32.dll (de la instalación de base de datos interbase)
  • interbase.msg (de la instalación de base de datos interbase)

Encontré dos cadenas de conexión que funcionaron. Para conectar use una de las dos cadenas de conexión:

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top