Frage

Ich bin ein JRE in einer vorhandenen C-Anwendung Einbetten der Aufruf-API verwenden, und Ich möchte in der Lage sein, JDBC zu verwenden, um mit der Datenbank in diesem Code zu arbeiten. Diese Anwendung ist eine Transaktionsverarbeitungsanwendung und die Datenbank Transaktion wird von Code in dem C-Teil der Anwendung verwaltet werden, und die Java-Code muss innerhalb dieser Transaktion ausführen. Das bedeutet, dass ich nicht öffnen kann neue Verbindung, ich muss die bestehende wiederverwenden.

So ist es eine Möglichkeit, JDBC-Zugriff auf einen vorhandenen ODBC-Verbindung Griff zur Verfügung zu stellen bei der Einstellung der JRE auf? Einige JDBC-ODBC-Brücke, vielleicht, aber im Gegensatz zu den vorhandene Treiber mit diesem Namen, eine, die eingerichtet werden kann, einen bestehenden zu verwenden Verbindung und Transaktion.

Meine andere Optionen, wie ich sie sehe, sind wie folgt:

  • java Äquivalente für jeden C-Betrieb bereitzustellen, die in der möglich ist, Anwendung (dies ist nicht wünschenswert, für eine Vielzahl von Gründen - Wir haben ein sehr viele Methoden und sie ist ein Schmerz in den Arsch zu duplizieren.

  • Schreiben Sie meinen eigenen JDBC-Treiber, die ODBC-Verbindung mit JNI wickelt. Sicher, es würde sein ein lustiges Wochenende (Monat) Projekt, aber ich erwarte, schneller brauchen etwas getan als das.

Helfen Sie mir, Stapel-Überlauf, sie ist meine einzige Hoffnung!

War es hilfreich?

Lösung

Sie wissen nicht, ob dies wird funktionieren, aber ... Ich hatte einen kurzen Blick auf die dekompilierten Quellcode von Sun JDBC-ODBC-Brücke. Scheint, wie Sie die JdbcOdbcConnection Unterklasse könnte, so dass es selbst Zustand mit einer bekannten Verbindung Griff und einem bereits geöffnet initialisiert. Dies setzt voraus, dass die Verbindung Griffe auf der Java-Seite sind die tatsächlichen ODBC-Verbindung Griffe oder Zeiger auf Verbindungsobjekte, und dass durch die JDBC-ODBC-Brücke und der Code verwendet ODBC-Bibliotheken sind in dem Sinne kompatibel, dass sie Verbindungshandles teilen können.

Sie müssen prüfen, ob Sun-Lizenz ermöglicht es Entwicklern, obwohl eine solche Tricks auszuführen.

Andere Tipps

Sun bietet eine JDBC-ODBC-Brücke im JDK.

EDIT: Relektüre klingt wie Sie bereits darüber wissen und wollen nicht, es zu benutzen

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