Frage

habe ich ein Programm in Delphi 2010, die eine JET (mdb) Datenbank über ADO verwendet. Ich möchte die Definitionen von einigen der Abfragen in der Datenbank extrahieren können, und zeigt sie an den Benutzer. Ist dies möglich, entweder über SQL, einige ADO-Schnittstelle oder durch die Datenbank Abfragen selbst (ich scheine nicht Rechte MSysObjects zu haben).

War es hilfreich?

Lösung

Einige dieser Informationen sind über ADOX Anrufe zur Verfügung. Es gibt einen Überblick über die api mit einigen Beispielen (leider nicht in Delphi) auf dem MSDN-Website .

Im Grunde, was Sie wollen, zu tun ist, um die ADOX-Typenbibliothek zu importieren, und dann die Hülle verwenden, die erzeugt wird, für Sie die zugrunde liegende API zuzugreifen. Von dort aus seinem so einfach, wie die Hierarchie der Navigation in den Daten, die Sie benötigen.

Sie müssen die spezifischen Ansicht zugreifen Objekt und von dort den Befehl Eigenschaft erhalten.

Andere Tipps

Via DAO, es ist ziemlich einfach. Sie extrahieren nur die SQL-Eigenschaft jedes QueryDef. In DAO in Access, das wäre:

  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

Ich weiß nicht, wie das übersetzen, aber ich denke, es ist die einfachste Methode, wenn Sie bequem mit DAO statt ADOX verwenden.

Ich benutze nicht alle ADO, aber ich glaube, dass es eine Sammlung von Ansichten hat und die SQL-Eigenschaft würde für SELECT-Abfragen arbeiten. Wenn Sie jedoch in immer die SQL für alle gespeicherten QueryDefs interessiert sind, dann würden Sie auch an den DML-Abfragen suchen müssen, so dass Sie auf die gespeicherten Prozeduren aussehen müsste. Ich würde die Syntax für das nachschlagen müssen, aber ich bin ziemlich sicher, das ist, wie Sie an die Informationen über ADO bekommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top