尝试使用firebird嵌入式服务器 - 指定的服务器类型不正确

时间:2012-03-28 13:50:21

标签: c# .net visual-studio embed firebird

使用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()

欣赏任何想法。

3 个答案:

答案 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邮件列表中)。