Frage

Ist es möglich, ein C / C ++ Programm in * IX Betriebssystemen erfolgreich zu erstellen, die auf beiden DB2-Implementierungen gleichzeitig 32-Bit- und 64-Bit funktionieren?

Die genaue Anforderung ist von einer 32-Bit-DB2-Datenbank zu lesen und in eine 64-Bit-DB2-Datenbank schreiben.

War es hilfreich?

Lösung

Da das C Common Client eine Netzwerkverbindung verwendet, gibt es keinen offensichtlichen Grund, warum der 32-Bit-Client nicht auf entweder einen 32-Bit- oder 64-Bit-Server (oder beide auf separate Verbindungen) verbinden soll. Die gleiche Bemerkung gilt für 64-Bit-Clients. Das DRDA-Protokoll zu kommunizieren zwischen Client und Server verwendet wird, soll in Ordnung sein.

kann ich definitiv für Informix beantworten (die Sie nicht fragen über) - Ich verwende 32-Bit- oder 64-Bit-ESQL / C entweder Server 32-Bit oder 64-Bit-IDS ohne Probleme zu verbinden. Die einzige Einschränkung ist auf einen gemeinsam genutzten Speicheranschluss; dann muss der Client und Server des gleichen ‚Stippen‘ sein. Aber die Netzwerkverbindungen und die lokalen (Strom, Buchse) Anschlüsse sind neutral.

Andere Tipps

Ich denke, Ihr Problem ist, dass Sie beiden Bibliotheken gleichzeitig laden. Sie können nicht nur beide Link in der ausführbaren Datei mit zwei -l-Optionen, da die Symbolnamen kollidieren. Wenn dies das Problem ist, dlopen wenn dein Freund.

#include <dlfcn.h>

void * handle=dlopen(filename,RTLD_NOW|RTLD_GLOBAL);

bool (*some_function)(char * name);
some_function=(bool (*)(char *))dlsym(handle,"name_of_some_function");
if (some_function("test")) {
    ....
} else {
    ....
}

Weil ich nicht DB2 weiß, dass ich Ihnen nicht weiter helfen kann, aber wenn dies das Problem ist, sollen Sie jetzt haben alles, um das Problem zu lösen.

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