Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用.NET C连接到Interbase 7.1的最佳方式#_C#_.net_Interbase - Fatal编程技术网

C# 使用.NET C连接到Interbase 7.1的最佳方式#

C# 使用.NET C连接到Interbase 7.1的最佳方式#,c#,.net,interbase,C#,.net,Interbase,有人能解释一下使用.NET/C连接Interbase 7.1数据库的最佳方式吗 该应用程序将安装在许多最终用户计算机上,因此我必须随应用程序打包的“附加组件”越少越好。请检查此提供商: 我认为Firebird.net提供商与mono中的提供商是一样的。顺便说一句,两者都很优秀。CodeGear为InterBase的注册用户提供了免费的ADO.NET 2.0驱动程序: 请注意,“InterBase的注册用户”包括免费的InterBase 2007开发者版。下载说它是2007年的,但是它在

有人能解释一下使用.NET/C连接Interbase 7.1数据库的最佳方式吗

该应用程序将安装在许多最终用户计算机上,因此我必须随应用程序打包的“附加组件”越少越好。

请检查此提供商:


我认为Firebird.net提供商与mono中的提供商是一样的。顺便说一句,两者都很优秀。

CodeGear为InterBase的注册用户提供了免费的ADO.NET 2.0驱动程序:

请注意,“InterBase的注册用户”包括免费的InterBase 2007开发者版。下载说它是2007年的,但是它在InterBase 7上运行得很好,CodeGear的InterBase团队告诉我,他们对使用它的人没有问题


我不建议使用为Firebird设计的驱动程序,因为InterBase和Firebird有一些不同的SQL语法,并且在其他功能上也有所不同。特别是,我认为在InterBase中使用任何依赖于fbclient.dll的驱动程序都是非常危险的。

帮助文件中的代码在许多情况下都能工作,但并非所有情况下都能工作,尤其是在Windows 8.1、Windows Server 2012计算机上

确保从embarcadero获得最新的InterBase_ADO.NET。我更新到的版本是Borland.Data.AdoDbxClient.dll的16.0.4327.44959版本。(右键单击文件、属性、详细信息以查看版本号)。安装还为64位创建了一个x64版本的文件夹,尽管我没有使用它。我以x86为目标,没有任何问题

此ADO.NET安装不是在每台机器上都必须进行的–您只需要在项目中包含以下文件,并在运行的机器上安装Interbase。我只在开发计算机上安装了驱动程序

安装将提取您需要放入应用程序以连接到数据库的所有必要文件。它还将为InterBase XE安装和使用说明.htm文件创建自述ADO_NET 2_0驱动程序重要注意事项:此帮助htm文件中的DB连接示例在所有情况下都无法正常工作。有关解决方案,请参见下面的代码示例

不需要ODBC连接。要包含在.NET项目中并在本地复制的文件列表为:

  • Borland.Data.AdoDbxClient.dll
  • Borland.Data.DbxCommonDriver.dll
  • Borland.Data.DBXInterBaseDriver.dll
  • Borland.Delphi.dll
  • Borland.VclDbRtl.dll
  • Borland.VclRtl.dll
  • dbxadapter.dll(x86或x64版本)
  • dbxint.dll(x86或x64版本)
  • gds32.dll(来自interbase DB安装)
  • interbase.msg(来自interbase DB安装)
我找到了两个有效的连接字符串。要连接,请使用以下两个连接字符串之一:

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();

谢谢-这很好用。示例C#代码也包含在read me中。由于CodeCentral中的更改,指定的URL将不再按预期工作。请改用帮助文件中的C#示例在许多情况下都有效,但并非在所有情况下都有效。您需要使用工厂和帮助文件工厂示例也不起作用。它们不一样。