wieso kann ich einen ADO(ActiveX Data Object)-Provider, den ich in der Registry eingetragen habe, NICHT mit
Dim rs As New Recordset
rs.Open "select controls from " & \_
App.Path & "\frmSelect.frm", \_
"Provider=VB Custom Data;"
ansprechen?
(Der Vollständigkeit halber hier die Fehlermeldung: „Runtime error … 800004005 (=E_FAIL) unspecified error“.)
Die Programmzeilen stammen aus dem Artikel „Do-It-Yourself RecordSets“ in der MSDN-Library Juli '99. Warscheinlich war dieser Artikel aber auch schon im füheren Versionen der MSDN-Library enthalten.
Die Anwendung und die zugrundliegende .dll übersetzt MS Visual Basic 6.0 fehlerfrei. Dazu habe ich folgende Referencen aktiviert.
In der Anwendung:
Microsoft Data Adapter Library
Microsoft ActiveX Data Objects Recordset 2.0 Library
CustomData (die zugrunde liegende .dll)
In der zugrundliegenden .dll:
Microsoft OLE DB Simple Provider 1.5 Library.
Die Einträge in der Registry habe ich, wie im Artikel beschrieben durchgeführt. Sie sind so auch in der Registry angekommen.
Das ist (wie zu vermuten war) meine erste ADO-Anwendung. Bisher habe ich meine Datenbank-Zugriffe immer selbst ausprogrammiert.
Zum einen möchte ich allegemein lernen, wie ich einen OLE DB Simple Provider (OSP) über ein ActiveX Data Object (ADO) direkt mit Visual Basic anspreche (also nicht nur als Datasouce für ein Datagrid).
Zum anderen brauche ich eine SQL-Schnittstelle, die eine Datenbank öffnet, abfragt und sofort wieder schliesst, danach aber den RecordSet noch zur Verfügung stellt. Dazu wollte ich einen (meinen ersten) OSP schreiben.