type ODBC SQL pour les paramètres table

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

La prise en charge des paramètres de table est fournie par un nouveau type SQL ODBC, SQL_SS_TABLE.

Remarques

SQL_SS_TABLE ne peut pas être converti en un autre type de données ODBC ou SQL Server.

Si SQL_SS_TABLE est utilisé comme type de données C dans le paramètre ValueType de SQLBindParameter, ou si une tentative est effectuée pour définir SQL_DESC_TYPE dans un enregistrement de descripteur de paramètre d’application (APD) sur SQL_SS_TABLE, SQL_ERROR est retourné et un enregistrement de diagnostic est généré avec SQLSTATE=HY003, « Type de mémoire tampon d’application non valide ».

Si SQL_DESC_TYPE est défini avec la valeur SQL_SS_TABLE dans un enregistrement IPD et que l'enregistrement APD correspondant n'est pas SQL_C_DEFAULT, SQL_ERROR est retourné et un enregistrement de diagnostic est généré avec SQLSTATE=HY003, « Type de tampon d'application non valide ». Cela peut se produire avec le ParameterType d’un OBJET SQLSetDescField, SQLSetDescRec ou SQLBindParameter.

Si le paramètre TargetType est SQL_SS_TABLE lors de l’appel de SQLGetData, SQL_ERROR est retourné et un enregistrement de diagnostic est généré avec SQLSTATE=HY003, « Type de mémoire tampon d’application non valide ».

Une colonne de paramètre table ne peut pas être liée comme type SQL_SS_TABLE. Si SQLBindParameter est appelé avec ParameterType défini avec la valeur SQL_SS_TABLE, SQL_ERROR est retourné et un enregistrement de diagnostic est généré avec SQLSTATE=HY004, « Type de données SQL non valide ». Cela peut également se produire avec SQLSetDescField et SQLSetDescRec.

Les valeurs des colonnes de paramètre table ont les mêmes options de conversion de données que les paramètres et les colonnes de résultat.

Un paramètre table ne peut être qu’un paramètre d’entrée dans SQL Server 2008 (10.0.x) ou version ultérieure. Si une tentative est effectuée pour définir SQL_DESC_PARAMETER_TYPE sur une valeur autre que SQL_PARAM_INPUT via SQLBindParameter ou SQLSetDescField, SQL_ERROR est retourné et un enregistrement de diagnostic est ajouté à l’instruction avec SQLSTATE=HY105 et le message « Type de paramètre non valide ».

Les colonnes de paramètre table ne peuvent pas utiliser SQL_DEFAULT_PARAM dans StrLen_or_IndPtr, parce que les valeurs par défaut par ligne ne sont pas prises en charge avec les paramètres table. À la place, une application peut définir l'attribut de colonne SQL_CA_SS_COL_HAS_DEFAULT_VALUE avec la valeur 1. Cela signifie que la colonne aura des valeurs par défaut pour toutes les lignes. Si StrLen_or_IndPtr est défini sur SQL_DEFAULT_PARAM, SQLExecute ou SQLExecDirect retourne SQL_ERROR et un enregistrement de diagnostic est ajouté à l’instruction avec SQLSTATE=HY090 et le message « Longueur de la chaîne ou de la mémoire tampon non valide ».

Voir aussi

Paramètres table (ODBC)