Domanda

E 'possibile all'autore con successo un programma C / C ++ nei sistemi operativi * IX che opera su entrambe le implementazioni DB2 a 32-bit e 64-bit contemporaneamente?

Il requisito esatto è quello di leggere da un database DB2 a 32-bit e scrivere in un database DB2 a 64 bit.

È stato utile?

Soluzione

Dato che il Common Client C utilizza una connessione di rete, non c'è alcuna ragione evidente per cui il client a 32 bit non dovrebbe collegarsi a uno a 32 bit o un server a 64 bit (o entrambi su connessioni separate). La stessa osservazione vale per client a 64 bit. Il protocollo DRDA utilizzato per la comunicazione tra client e server dovrebbe essere OK.

posso rispondere definitivamente per Informix (che non hai chiesto circa) - io uso a 32-bit o 64-bit ESQL / C per connettersi ai server IDS sia a 32-bit o 64-bit senza problemi. L'unica limitazione è su una connessione di memoria condivisa; quindi il client e il server devono essere dello stesso 'bittiness'. Ma le connessioni di rete e le (flusso, presa) connessioni locali sono neutre.

Altri suggerimenti

Credo che il problema è che si deve caricare entrambe le librerie contemporaneamente. Non si può semplicemente collegare sia nel eseguibile utilizzando due opzioni -l, perché i nomi dei simboli si scontrano. Se questo è il problema, dlopen se il tuo amico.

#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 {
    ....
}

Perché io non so DB2 non posso aiutarti ulteriormente, ma se questo era il problema, si dovrebbe ora avere tutto per risolvere il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top