使用Visual Studio 2005在Windows 7上运行,我试图使用嵌入式firebird服务器。按照提供的安装细节,我收到消息: -
指定的服务器类型不正确。
我正在使用: -
FirebirdSql.Data.FirebirdClient.dll版本2.5.2.0。
fbembed.dll版本2.5.0.26074
我将zip文件Firebird-2.5.0.26074-0_Win32_embed.zip的全部内容复制到我的应用程序目录中,因为似乎有各种各样的想法。
我还复制了fbembed.dll并将其重命名为gds32.dll和fbclient.dll,如其他地方所建议的那样。
我的连接字符串是: -
用户= SYSDBA;密码= masterkey;数据库= C:\数据库\ EMPLOYEE.FDB; SERVERTYPE = 1;方言= 3;“;
所有用户都可以完全控制数据库文件。
我在同一台机器上运行了一个firebird服务器,我确保停止服务以避免混淆。
失败时的堆栈跟踪显示: -
在 FirebirdSql.Data.FirebirdClient.ClientFactory.CreateDatabase(FbConnectionString 选项)at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()at FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create()at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut()at FirebirdSql.Data.FirebirdClient.FbConnection.Open()
欣赏任何想法。
答案 0 :(得分:1)
最新的东西(8/2015)似乎不喜欢连接字符串中的ServerType = 1,而是使用stringbuilder:
FbConnectionStringBuilder cs = new FbConnectionStringBuilder();
cs.UserID = "SYSDBA";
cs.Password = "masterkey";
cs.Database = Form1.DataBaseFullPath;
cs.Charset = "UTF8";
cs.Pooling = false;
cs.Dialect = 3;
cs.ServerType = FbServerType.Embedded;
FbConnection Connection = new FbConnection(cs.ToString());
如果查看结果,您会看到语法为“...; server type = embedded”。 “服务器”和“类型”之间的空间。
答案 1 :(得分:0)
尝试在ConnectionString中添加DataSource,例如
Data Source=localhost;
[编辑]
另外,请查看this SO question。它提到了将Firebird作为嵌入式运行所需的几个DLL。
答案 2 :(得分:0)
无论出现什么问题,都可以使用Firebird点网提供商的最新版本(2.7.5)解决(感谢Jiri在firebird邮件列表中)。