La mia applicazione C++ non riesce a connettersi al server DB Informix
Domanda
Ho un'applicazione (non posso fornire il codice, poiché è molto lunga), che utilizza unixODBC
.Inoltre, ho installato isql
.Tutto sembra essere configurato correttamente: driver, server e così via, come da utilizzo isql
, mi collego al DB Informix senza problemi.Ma la mia applicazione non riesce a connettersi, anche quando utilizzo le stesse impostazioni.L'errore restituito è:
IM00 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
Quindi, ecco la parte "interessante": ho copiato il file odbc.ini
archiviare in ~/.odbc.ini
E /etc/odbc.ini
poi tutto ha iniziato a funzionare quasi OK ("quasi", dato che l'app potrebbe connettersi a un DSN, ma non all'altro, ma è comunque qualcosa).
Anche :
[root@xxx xxx]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /usr/local/etc/odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2
[root@xxx xxx]$ echo $ODBCINI
/usr/local/etc/odbc.ini
[root@xxx xxx]$ echo $INFORMIXDIR
/usr/informix
Anche INFORMIXDIR è impostato correttamente.Niente indica ~/.odbc.ini
nessuno dei due /etc/odbc.ini
(in realtà il secondo ha aiutato, niente a che vedere con ~/.odbc.ini
, l'ho appena provato (:)
odbc.ini
sono configurati correttamente, come isql
funziona bene.
Se hai bisogno di ulteriori informazioni, per favore fatemelo sapere.Grazie (:
Soluzione 2
@Jonathan Leffler - Sì, ho tutto installato correttamente, il problema era sicuramente da qualche altra parte.Rispondo qui perché ho trovato la soluzione (in realtà l'ha trovata un mio collega).È stata una cosa molto, molto stupida..Ha appena aggiunto /usr/local/lib
In /etc/ld.so.conf
e tutto è iniziato normale.....
Comunque grazie davvero per l'aiuto (:
Altri suggerimenti
Per eseguire i programmi utilizzando ODBC per connettersi a Informix , è necessario il driver Informix ODBC installato (o, in teoria , il driver IBM Common client invece). Per ottenere che il driver, è necessario installare il ClientSDK o del prodotto CSDK, o la sua run-time equivalenti, I-Connect, sulla vostra macchina, e quindi configurare correttamente il DSN. Il prodotto Informix SQL (noto come isql, perché questo è il nome del programma principale) non usa ne (quindi) installa un driver ODBC; utilizza la connettività ESQL / C. (Tuttavia, ripensandoci, sei referrring alla isql che viene fornito con UnixODBC -. Non il prodotto Informix)
Il ClientSDK è disponibile senza supporto a un costo puramente nominale di $ 0,00. Il supporto è più costoso. Idem per I-Connect. Sulla RHS della pagina collegata, sotto 'Dati tecnici' è un collegamento a 'Informix Downloads' da dove è possibile ottenere CSDK.
Si potrebbe anche guardare le varie nuove edizioni di Informix (Informix Dynamic Server) che possono essere utilizzati, con alcune limitazioni di licenza (leggere la licenza con attenzione) gratuitamente, e quelli includere CSDK nel bundle di software.