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

问题描述

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

解决方法

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

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

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

,

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

如果数据库列表保持一定的静态并且您将开发一个 UI 来执行/提交数据库备份,我会执行以下操作。

创建一个数据库,该数据库将包含一个包含您要备份的数据库的连接字符串的表。当然,当您添加/删除数据库时,需要修改该表。开发您的 UI 以查看此表以选择要备份的数据库。

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