使用 Firebird 包进行备份的问题

Problems with making backup with Firebird package

我正在尝试使用 firebird 软件包开发 firebird 数据库的备份,但出现错误。

        FbConnectionStringBuilder cs = new FbConnectionStringBuilder();
        cs.UserID = "SYSDBA";
        cs.Password = "masterkey";
        cs.Database = "C:\Develop\Database\DB\Database.fdb";

        FbBackup backupSvc = new FbBackup();

        backupSvc.ConnectionString = cs.ToString();
        backupSvc.BackupFiles.Add(new FbBackupFile(@"C:\Develop\Database\DB\Database.fbk", 2048));
        backupSvc.Verbose = true;

        backupSvc.Options = FbBackupFlags.IgnoreLimbo;
        backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput);

        backupSvc.Execute();

我不明白为什么我不能编译以下语句:backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput);

错误是:

Error CS0246 The type or namespace name 'ServiceOutputEventHandler' could not be found (are you missing a using directive or an assembly reference?)

Error CS0103 The name 'ServiceOutput' does not exist in the current context

有没有人可以帮忙?

您似乎为 Firebird ADO.net 提供程序的第 2 版复制了此 example

有两个问题:

  1. 您错过了从该示例中复制 ServiceOutput 方法

    static void ServiceOutput(object sender, ServiceOutputEventArgs e)
    {
        Console.WriteLine(e.Message);
    }
    
  2. 该示例适用于相当旧版本的 Firebird ADO.net 提供程序,不再适用于最新版本,因为 ServiceOutputEventHandler 不再存在于 Firebird [=38] =] 提供程序,因为在 C# 中不再需要该类型的对象。

    解决方法是换行

    backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput);
    

    backupSvc.ServiceOutput += ServiceOutput;
    

顺便说一句,您可以将 new FbBackupFile(@"D:\Temp\Database.fbk", 2048) 更改为 new FbBackupFile(@"D:\Temp\Database.fbk")。仅当您要创建跨多个文件的备份时才需要提供该长度参数。

我现在找到了答案。我的问题是我有一个旧版本 (2.4) 的火鸟。我升级到 2.9 版 - 一切正常。非常感谢您的帮助。你们都把我引向了正确的方向。