DataControl, Connection-Sharen ?!

Hallo,
ein DataControl baut einen eigenen Connect zur Datenbank auf.
Ist es irgendwie möglich, einen bereits vorhandenen DB-Connect
bei DAO 3.5/3.6 zu verwenden ?
Auch über vorhandene Prozessgrenzen hinweg ?
Gemeint wäre: Ein Programm A läuft, hat einen DAO-DB-Connect
offen und ein DataControl in Programm B nutzt diesen
DB-Connect von Anwendung A ?
Interessanterweise bekomme ich das mit normalen Connection-
Objekten (Workspace und Database/Connection) hin, allerdings
nicht mit einem Datacontrol.
Hat das jemand mal versucht und gibt es eine Lösung oder nicht?
Danke im Voraus

Hi Dirk !

Bist Du dir sicher, daß Du DAO weiterhin verwenden willst ? Ich frage nur, weil ich finde, daß es mit ADO (letzte version 2.6) ein wenig leichter ginge.
Die Verbindung eines DataControls kannst Du leider nicht mißbrauchen, da das DataControl die Verbindung zur Datenbank implizit herstellt.

Hmmm … Über Prozessgrenzen hinweg … !!!

Ich hab mal sowas gemacht … nennt sich IPC (Interprocess Communication). Du kannst dafür Pipes, Mailslots oder DDE verwenden. Wobei ich von DDE abraten würde. Um zwischen Programme Daten hin und her zu schicken eignen sich am besten Pipes. Allerdings mußte ich mir eine DLL in C stricken damit das richtig ordentlich flutscht.

Oder denkst Du eher in Richtung MTS ? Das würde ich dann als Object Sharing bezeichnen.

Ciao
Mario

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke erst einmal für die Antwort.

Also … zum Thema ADO - sicher, das wäre ein Heilmittel, aber da die betroffenen Anwendungen nun einmal alle auf ODBC arbeiten, wäre da ein gewisser Aufwand zu investieren. Daher ging die Frage in die Richtung, ob es vielleicht eine machbare Variante auch auf Basis von DAO mit ODBC gibt.

Zum Thema „impliziter DB-Connect“: Was ich da noch nicht verstehe ist, warum dann folgender Code klappt:

set ws = createworkspace (bla bla bla)
set db = ws.openconnection (bla bla bla)

set data1.recordset = db.openrecordset (bla bla bla)

Implizit würde ja bedeuten, dass das data-Control dann trotzdem noch mal eine eigene Connection herstellt, obwohl der RS doch über das db geöffnet wurde. Wie gesagt, diese Variante funktioniert nicht, wenn db über einen „Austausch“-Mechanismus geholt worden ist. Wir haben dafür eine Active-X-Exe gemacht (SPA heißt die), da können wir sinngemäß schreiben:

spa.put („DB“, db) (das können wir in Programm A machen)

und

db = spa.get („DB“) (das können wir dann in Programm B machen)

Interessanterweise klappt dann in Programm B
db.openrecordset

aber

set data1.recordset= db.openrecordset geht dann nicht.

Grüße, Dirk