Partager via


Remplacement de la précision du début et de la fin par défaut pour les types de données d’intervalle

Lorsque le champ SQL_DESC_TYPE d’un ARD est défini sur un type C datetime ou interval, en appelant SQLBindCol ou SQLSetDescField, le champ SQL_DESC_PRECISION (qui contient la précision de l’intervalle en secondes) est défini sur les valeurs par défaut suivantes :

  • 6 pour l’horodatage et tous les types de données d’intervalle avec un deuxième composant.

  • 0 pour tous les autres types de données.

Pour tous les types de données d’intervalle, le champ de descripteur SQL_DESC_DATETIME_INTERVAL_PRECISION, qui contient la précision du champ de début d’intervalle, est défini sur une valeur par défaut de 2.

Lorsque le champ SQL_DESC_TYPE dans un APD est défini sur un type C datetime ou interval, en appelant SQLBindParameter ou SQLSetDescField, les champs SQL_DESC_PRECISION et SQL_DESC_DATETIME_INTERVAL_PRECISION dans l’APD sont définis sur la valeur par défaut donnée précédemment. Cela est vrai pour les paramètres d’entrée, mais pas pour les paramètres d’entrée/sortie ou de sortie.

Un appel à SQLSetDescRec définit la précision d’intervalle de début sur la valeur par défaut, mais définit la précision d’intervalle secondes (dans le champ SQL_DESC_PRECISION) sur la valeur de son argument Precision .

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

Si l’application appelle SQLGetData pour retourner des données dans un type datetime ou interval C, la précision de début d’intervalle par défaut et la précision d’intervalle en secondes sont utilisées. Si l’une des valeurs par défaut n’est pas acceptable, l’application doit appeler SQLSetDescField pour définir un champ de descripteur ou SQLSetDescRec pour définir SQL_DESC_PRECISION. L’appel à SQLGetData doit avoir un TargetType de SQL_ARD_TYPE pour utiliser les valeurs dans les champs de descripteur.

Lorsque SQLPutData est appelé, la précision de début d’intervalle et la précision d’intervalle en secondes sont lues à partir des champs de l’enregistrement de descripteur qui correspondent 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.