FirebirdSQL 在 C# 中获取数据库列表?

FirebirdSQL getting list of databases in C#?

我需要从计算机中的 Firebird 服务器获取数据库列表。我想 select 并备份我想要的任何数据库。 Microsoft SQL 服务器有那个功能,我想你可以看到数据库连接服务器。火鸟有这样的东西吗?或者有解决方法吗?我正在使用 Firebird 2.5,但如果有版本,您可以告诉我。

Firebird 没有列出数据库的功能,因为从技术上讲,Firebird 不知道服务器上存在哪些数据库(别名中定义的除外。conf/databases.conf,但它们也不会公开)。

对于 Firebird,数据库完全由数据库文件定义,该文件由完整文件路径或别名(指向文件路径)引用。如果该文件存在,Firebird 进程对该文件有足够的访问权限,并且该文件具有服务器理解的磁盘结构 (ODS),您可以连接到它。

这与 SQL 服务器不同,服务器保存数据库列表,您只能连接到该列表中定义的数据库。

虽然 Firebird 不会像 SQL 服务器那样跟踪数据库,但您也许可以通过其他方式完成您想要的。你说你想挑选要备份的数据库。您是否有现成的应用程序来执行备份,或者您将开发一个?另一个问题是您的数据库是否有些静态,或者特定服务器上的数据库是否保持不变?

如果数据库列表保持不变,并且您将开发 UI 到 perform/submit 数据库备份,我将执行类似以下操作。

创建一个包含 table 的数据库,其中包含您要备份的数据库的连接字符串。授予table 时你需要修改add/remove 数据库。开发你的 UI 看看这个 table 选择要备份的数据库。

我过去做过类似的事情。在我的例子中,它是穷人模式备份。我有一个包含相关数据库连接字符串的 table 的数据库,我编写了一个应用程序来遍历 table 列表并连接到这些数据库,然后执行元数据提取,然后解析出元数据提取到单个对象中,然后将单个对象拉入另一个数据库以存储架构。