Si vous exécutez:
strings $INFORMIXDIR/lib/cli/libifdmr.so | grep _OdbcSetTrace
obtenez-vous pour voir toutes les références. Sinon, la bibliothèque est sans les fonctions de support. Si vous voyez cela, le mécanisme décrit devrait fonctionner. Si ce n'est pas le cas, vous avez probablement un bug à signaler.
À quel niveau essayez-vous de tracer les problèmes? Et, comme unixODBC fonctionne, pourquoi ne pas utiliser le gestionnaire de pilotes qui fonctionne?
J'ai pris l'exemple de distsel.c $ INFORMIXDIR/demo/cli et compilez sous Solaris 10 à l'aide CSDK 3.50.FC3. Je l'ai eu au point où la connexion réussit, mais la table 'item' est manquante dans la base de données que j'utilise, donc le programme arrête SQLExecDirect(). Quand je l'exécute sous 'truss' (l'équivalent de 'strace' sur Linux), alors je ne vois aucune preuve que le code essaie même d'ouvrir le fichier de trace.
Je compilé en utilisant:
gcc -I$INFORMIXDIR/incl/cli distsel.c -DNO_WIN32 \
-L$INFORMIXDIR/lib/cli -lifdmr -lifcli -o distsel
J'ai utilisé le .odbc.ini suivant:
;
; odbc.ini
;
[ODBC Data Sources]
odbc_demo = IDS 11.50.FC3 stores on black
[ODBC]
Trace = yes
TraceFile = /tmp/odbc.trace
[odbc_demo]
Driver = /usr/informix/11.50.FC1/lib/cli/libifcli.so
Description = IBM Informix CLI 3.50
Server = black_19
FetchBufferSize = 99
UserName = jleffler
Password = XXXXXXXX
Database = stores
ServerOptions =
ConnectOptions =
Options =
ReadOnly = no
Et celui-ci:
;
; odbc.ini
;
[ODBC Data Sources]
odbc_demo = IDS 11.50.FC3 stores on black
[odbc_demo]
Driver = /usr/informix/11.50.FC1/lib/cli/libifcli.so
Description = IBM Informix CLI 3.50
Server = black_19
FetchBufferSize = 99
UserName = jleffler
Password = XXXXXXXX
Database = stores
ServerOptions =
ConnectOptions =
Options =
ReadOnly = no
Trace = yes
TraceFile = /tmp/odbc.trace
Par conséquent, je crois que vous avez trouvé un bug. Je ne suis pas sûr que le bug soit dans la FAQ que vous avez référencé ou dans le produit - je suis enclin à penser à ce dernier. Vous devez signaler le problème au support technique IBM. (Je n'ai pas vérifié le manuel Informix CLI (ODBC), il pourrait être utile de vérifier cela avant d'essayer de générer un bogue produit, si le manuel indique que Trace ne fonctionne pas, et peut-être si cela n'indique pas travail, alors il y a un bogue dans la FAQ que vous avez indiqué)
Si vous cherchez à voir les données SQL, la partie SQLIDEBUG de la FAQ fonctionne:.
SQLIDEBUG=2:distsel ./distsel
qui a généré un distsel_6004_0_102d40 de fichier moi - ce sera différent pour toi.Vous pouvez ensuite utiliser l'utilitaire 'sqliprint' pour voir les données circulant entre le client et le serveur.
Si vous ne trouvez pas 'sqliprint', revenez me voir.
Plus d'infos dans ma réponse éditée - mais cela ressemble à un bug, soit dans la TechNote (FAQ) ou dans le produit (ou les deux). –