C# 使用FirebirdClient查询Firebird数据库架构
如何在C#/ADO.NET/FirebirdClient中查询数据库模式?命名空间Firebird.Data.Schema中的所有类都是内部类 例如: 检查表中是否有具有指定名称的列 查询存储过程参数的数量、名称和类型 等等C# 使用FirebirdClient查询Firebird数据库架构,c#,ado.net,compact-framework,firebird,C#,Ado.net,Compact Framework,Firebird,如何在C#/ADO.NET/FirebirdClient中查询数据库模式?命名空间Firebird.Data.Schema中的所有类都是内部类 例如: 检查表中是否有具有指定名称的列 查询存储过程参数的数量、名称和类型 等等 FirebirdClient-Compact Framework,NETProvider-2.5.2-CF.7z您应该查询系统表(它们的名称前缀为RDB$): 我找到了 FbConnection connection = (FbConnection)this.Ge
FirebirdClient-Compact Framework,NETProvider-2.5.2-CF.7z您应该查询系统表(它们的名称前缀为
RDB$
):
我找到了
FbConnection connection = (FbConnection)this.GetConnection();
connection.GetSchema("procedureparameters", new string[] { null, null, procedureName });
还可以使用FbConnection::GetSchema检索有关数据库对象的所有信息
另请参见FbSchemaFactory::PrepareCollection我的意思是,在我的应用程序中是否可以使用FirebirdClient的内部类。这个库中提供了查询RDB$表的代码,并将其重写两次,这不是很好的主意。您可以通过反射使用任何内部类型,因此,这是可能的。不过,您应该记住,内部类型通常没有文档记录,即使在两个版本之间,它们的契约也可能被打破。此外,您还可以向FB客户端开发人员询问如何公开这些类型。可能是,有一些原因阻止他这么做。谢谢。你一次又一次地节省了很多时间。很酷!我也很想知道您在用它做什么。(希望不要窥探您的妻子)Compact Framework存在问题:在FirebirdClient中没有包含FirebirdSql.Schema.FbMetaData.xml(作为嵌入式资源)