Firebird客户端安装
本文关键字:安装 客户端 Firebird | 更新日期: 2023-09-27 18:22:11
我正在尝试将使用Firebird v2.5数据库的应用程序部署到客户端机器上。
我正在尝试使用最低限度的安装,而不需要运行任何其他安装程序。据我所知,我所需要做的就是将"FBClient.dll"复制到目标应用程序文件夹(其中包括firebird数据库文件)。我已经尝试过了,但它仍然报告无法找到正确的.net数据提供程序的错误。
例如
C:'Program Files (x86)'MyApp'myApp.exe
C:'Program Files (x86)'MyApp'fbDatabase.fdb
C:'Program Files (x86)'MyApp'fbclient.dll
产生的错误为:
未能找到或加载已注册的.Net Framework数据提供程序
还将fbclient.dll复制、重命名并包含为fbembed.dll
我还尝试将一堆其他文件复制到应用程序目录,并将fbclient.dll放入c:'',c:''windows,c:''windows''系统中。
我还试着安装客户端安装,但也没有什么乐趣。
有没有一种方法,我可以使用firebird数据库,而无需手动编辑machine.config文件或使用gac,也无需经历在开发机器上安装firebird的过程?我想要一个用户可以安装的应用程序,而不需要由开发人员安装。
请注意,我正在编写的应用程序是针对单机、单用户环境的,谁知道如何双击安装按钮,用一个小虫子的注意力跨度,如果需要进行多次双击安装,然后按GO,只会感到无聊,然后按取消、忘记按钮。
我将文件"FirebirdSql.Data.FirebirdClient.dll"添加到应用程序文件夹中,我不再得到数据提供程序错误,而是得到以下
"Unable to complete network request to host '"DevMachine'"."
at FirebirdSql.Data.Client.Managed.Version10.GdsConnection.Connect()
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateManagedDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString options)
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()
我正在尝试连接以下
string file = @"C:'Program Files (x86)'MyApp'Test.FDB;";
FbConnection con = new FbConnection("User=SYSDBA;" + "Password=masterkey;" + "Database=" + file + "DataSource=Dev-VS-W7VM;" + "Port3050;" + "Dialect=3;" + "Charset=ISO8859_1;");
try
{
con.Open();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
我已将FirebirdSql.Data.FirebirdClient包含在我的项目和安装文件夹中(..''MyApp)提前谢谢。
您必须找到一个zip并将FirebirdSql.Data.FirebirdClient.dll复制到bin文件夹中。
我想知道你是如何编写应用程序的,它在没有文件的情况下工作(可能安装了.msi):)
您需要安装.net提供程序http://www.firebirdsql.org/en/net-provider/
数据库文件位于应用程序的exe模块旁边。所以,您需要在本地服务器上运行或嵌入式服务器才能处理数据。对于嵌入式服务器,最小的文件集是(相对于应用程序文件夹指定):
'UDF (folder with UDF needed if any)
'Intl (with contents from FB installation)
fbembed.dll
firebird.msg
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll
对于全规模服务器(即非嵌入式),文件列表为:
'UDF (folder with UDF needed if any)
'Intl (with contents from FB installation)
fbserver.exe or fb_inet_server.exe
fbclient.dll
firebird.msg
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll
security2.fdb
firebird.conf (if non default parameters used)
但你需要为FB建立服务记录或者在应用程序启动之前将其作为应用程序启动。
Firebird作为一项服务的安装可以通过instsvc.exe实用程序。适当的命令:
instsvc install -s -a
instsvc start
您还应该注意两件事:
-
FileName必须是本地文件,而不是来自其他服务器的共享文件夹中。
-
在文件名之前附加firebird服务器IP。如果你总是在firebird服务器上运行你的应用程序,或者你使用嵌入式
fbclient.dll
,那么它应该像一样FbConnection con=新FbConnection("User=SYSDBA;"+"Password=masterkey;"+"Database=localhost:"+file+"DataSource=Dev-VS-W7VM;"+"Port3050;"+"Dialect=3;"+)字符集=ISO8859_1;");
某些fbclient.dll
版本将允许您不添加localhost,但仍在本地文件上连接,或者使用''servername'c:'filename
格式而不是localhost:c:'filename
,但它已被弃用,不应再工作(并且可以根据windows版本工作)。