Share via


Remplacement de la précision et de l’échelle par défaut pour les types de données numériques

Lorsque le champ SQL_DESC_TYPE dans un ARD est défini sur SQL_C_NUMERIC, en appelant SQLBindCol ou SQLSetDescField, le champ SQL_DESC_SCALE dans l’ARD est défini sur 0 et le champ SQL_DESC_PRECISION est défini sur une précision par défaut définie par le pilote. Cela est également vrai lorsque le champ SQL_DESC_TYPE dans un APD est défini sur SQL_C_NUMERIC, en appelant SQLBindParameter ou SQLSetDescField. Cela est vrai pour les paramètres d’entrée, d’entrée/sortie ou de sortie.

Si l’une des valeurs par défaut décrites précédemment n’est pas acceptable pour une application, l’application doit définir le champ SQL_DESC_SCALE ou SQL_DESC_PRECISION en appelant SQLSetDescField ou SQLSetDescRec.

Si l’application appelle SQLGetData pour retourner des données dans une structure de SQL_C_NUMERIC, les champs SQL_DESC_SCALE et SQL_DESC_PRECISION par défaut sont utilisés. Si les valeurs par défaut ne sont pas acceptables, l’application doit appeler SQLSetDescRec ou SQLSetDescField pour définir les champs, puis appeler SQLGetData avec un TargetType de SQL_ARD_TYPE pour utiliser les valeurs dans les champs de descripteur.

Lorsque SQLPutData est appelé, l’appel utilise les champs SQL_DESC_SCALE et SQL_DESC_PRECISION de l’enregistrement de descripteur correspondant au paramètre ou à la colonne data-at-execution, qui sont des champs APD pour les appels à SQLExecute ou SQLExecDirect, ou des champs ARD pour les appels à SQLBulkOperations ou SQLSetPos.