使用 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。
有两个问题:
您错过了从该示例中复制 ServiceOutput
方法
static void ServiceOutput(object sender, ServiceOutputEventArgs e)
{
Console.WriteLine(e.Message);
}
该示例适用于相当旧版本的 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 版 - 一切正常。非常感谢您的帮助。你们都把我引向了正确的方向。
我正在尝试使用 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。
有两个问题:
您错过了从该示例中复制
ServiceOutput
方法static void ServiceOutput(object sender, ServiceOutputEventArgs e) { Console.WriteLine(e.Message); }
该示例适用于相当旧版本的 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 版 - 一切正常。非常感谢您的帮助。你们都把我引向了正确的方向。