Le Guide d'administration Oracle 10g dans Annexe G.1 indique que le pilote ODBC Oracle 10g ne prend pas en charge soit SQL_C_SBIGINT
ou SQL_C_UBIGINT
.
Comme vous, nous constatons également qu'au moment de l'exécution, le SQLExecute()
échoue. Et un appel à SQLGetDiagRec()
ne renvoie rien, plutôt qu'un simple message du type "Oracle 10g does not support SQL_C_SBIGINT"
. Grr....
Quoi qu'il en soit, l'annexe G.1 ne dit pas comment vous devriez lier les données à envoyer dans une table avec une colonne définie comme NUMBER(20)
. Nous devons donc tous deviner et utiliser la technique (non documentée) qui fonctionne. Ce serait bien si l'annexe G.1 donnait une sorte d'indice ou de suggestion quant à la "meilleure" façon.
Si la conversion du nombre en chaîne puis la liaison fonctionne pour vous, tenez-vous-en à cela.