我在 Delphi 2010 中有一个程序,它通过 ADO 使用 JET (mdb) 数据库。我希望能够提取数据库中某些查询的定义并将其显示给用户。这是否可以通过 SQL、某些 ADO 接口或通过询问数据库本身来实现(我似乎没有 MSysObjects 的权限)。

有帮助吗?

解决方案

其中一些信息可通过 ADOX 调用获得。上有 api 的概述和一些示例(不幸的是不在 Delphi 中) MSDN 网站.

基本上,您需要做的是导入 ADOX 类型库,然后使用为您生成的包装器来访问底层 API。从那里开始,就像导航层次结构以获取所需的数据一样简单。

您将需要访问特定的 查看对象, ,然后从那里获取命令属性。

其他提示

通过Dao,这很容易。您只需提取每个QueryDEF的SQL属性即可。在dao中,从访问中,那将是:

  Dim db As DAO.Database
  Dim qdf As DAO.QueryDef

  Set db = DBEngine.OpenDatabase("[path/name of database]")
  For Each qdf In db
    Debug.Print qdf.SQL
  Next qdf
  Set qdf = Nothing
  db.Close
  Set db = Nothing

我不知道该如何翻译,但是我认为这是您对使用DAO而不是Adox的最简单方法。

我根本不使用ADO,但是我猜它具有一定的视图,SQL属性可用于精选查询。但是,如果您有兴趣获得所有保存的QueryDefs的SQL,则还需要查看DML查询,因此您必须查看存储过程。我必须为此查找语法,但是我可以肯定的是,这就是您通过ADO获取信息的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top