0

我正在使用嵌入在我的 .net 应用程序中的 FireBird。这个家伙是我的联系人: 火鸟连接

代码是:

    public class ImDb{
    private static FbConnection _fbConnection;
    public static FbConnection IMManagerConnection() {
        var fbConnStringBuilder = new FbConnectionStringBuilder();
        fbConnStringBuilder.ServerType = FbServerType.Embedded;
        fbConnStringBuilder.UserID = "sysdba";
        fbConnStringBuilder.Password = "masterkey";
        //fbConnStringBuilder.ClientLibrary = @"fbembed.dll";
        fbConnStringBuilder.Database = @"IMMANAGER.FDB";

        _fbConnection = new FbConnection(fbConnStringBuilder.ConnectionString);
        return _fbConnection;
    }
}

这是我的测试用例: 我的测试用例,运行正常

代码是:

    [Test]
    public void SimSymbolTest(){
        FbConnection fbc=IMManager.Common.ImDb.IMManagerConnection();
        fbc.Open();
        Console.WriteLine("The Server Version is :" + fbc.ServerVersion);
        Console.WriteLine("The database is :" + fbc.Database);
        Console.WriteLine("The DataSource is :" + fbc.DataSource);
        Console.WriteLine("The Version Number is: " + fbc.ServerVersionNumber);
        fbc.Close();
    }

在我的应用程序中,这是错误的!!报告不要加载 fbembed.dll 我的应用程序片段

代码是:

  private DataTable ExeQuery(string sqlString){
        DataSet ds = new DataSet();
        FbConnection fbc = ImDb.IMManagerConnection();
        try {
            fbc.Open();
            FbTransaction fbt = fbc.BeginTransaction();
            FbCommand fbcmd = new FbCommand(sqlString, fbc, fbt);
            FbDataAdapter fbda = new FbDataAdapter(fbcmd);
            fbda.Fill(ds);
            fbt.Commit();
        } catch (Exception ex) {
            MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
        } finally {
            fbc.Close();
        } 
        return ds.Tables[0];
    }

这是我的目录:

我的目录

请帮帮我!在此先感谢!

然后我修改连接代码,添加ClientLibrary的值: ClientLibrary 已分配

测试用例运行正常!

但是在应用程序中,错误再次发生。 在此处输入图像描述

4

3 回答 3

1

Firebird 2.5 嵌入的最小文件集:

INTL\fbintl.conf
INTL\fbintl.dll
fbembed.dll
firebird.msg
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll

在您的情况下,缺少 microsoft 文件。

于 2012-11-25T13:55:19.423 回答
0

没有解决方案!

我不得不更改 FireBird Server 版本。

没关系!

顺便说一句,我在我的应用程序中使用 Visual Web Gui,PATH 问题可能与此有关。也许 VWG 和 IIS 之间存在不同?我不知道,只是来宾;)。

于 2012-11-26T14:38:46.193 回答
0

对于 Windows 应用程序,它将在 .exe 文件所在的文件夹中查找 dll。

对于 Web 应用,您可以设置连接字符串的 ClientLibrary 属性:

connectionString="ServerType=1;User=SYSDBA;Password=masterkey;Dialect=3;Database=;ClientLibrary="

于 2014-09-11T09:54:45.897 回答