Supporto sql_variant per i tipi di data e ora
Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)
In questo argomento viene descritto come il tipo di dati sql_variant supporta funzionalità avanzate di data e ora.
L'attributo della colonna SQL_CA_SS_VARIANT_TYPE è utilizzato per restituire il tipo C di una colonna dei risultati variant. SQL Server 2008 (10.0.x) introduce un attributo aggiuntivo, SQL_CA_SS_VARIANT_SQL_TYPE, che imposta il tipo SQL di una colonna di risultato variante nel descrittore di riga di implementazione (IRD). SQL_CA_SS_VARIANT_SQL_TYPE può essere usato anche nel descrittore di parametri di implementazione (IPD) per specificare il tipo SQL di un parametro SQL_SS_TIME2 o SQL_SS_TIMESTAMPOFFSET con SQL_C_BINARY tipo C associato al tipo SQL_SS_VARIANT.
I nuovi tipi SQL_SS_TIME2 e SQL_SS_TIMESTAMPOFFSET possono essere impostati da SQLColAttribute. SQL_CA_SS_VARIANT_SQL_TYPE può essere restituito da SQLGetDescField.
Per le colonne dei risultati, il driver convertirà i tipi da variant a date/time. Per altre informazioni, vedere Conversioni da SQL a C. Quando si esegue l'associazione a SQL_C_BINARY, la lunghezza del buffer deve essere sufficientemente grande per ricevere lo struct corrispondente al tipo SQL.
Per i parametri SQL_SS_TIME2 e SQL_SS_TIMESTAMPOFFSET, il driver convertirà i valori C in valori sql_variant , come descritto nella tabella seguente. Se un parametro viene associato come SQL_C_BINARY e il tipo di server è SQL_SS_VARIANT, verrà trattato come valore binario, a meno che l'applicazione non abbia impostato SQL_CA_SS_VARIANT_SQL_TYPE su un tipo SQL diverso. In questo caso SQL_CA_SS_VARIANT_SQL_TYPE ha la precedenza, ovvero se è impostato SQL_CA_SS_VARIANT_SQL_TYPE, viene ignorato il comportamento predefinito che consiste nel dedurre il tipo SQL variant dal tipo C.
Tipo C | Tipo di server | Commenti |
---|---|---|
SQL_C_CHAR | varchar | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_WCHAR | nvarcar | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_TINYINT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_STINYINT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_SHORT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_SSHORT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_USHORT | int | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_LONG | int | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_SLONG | int | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_ULONG | bigint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_SBIGINT | bigint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_FLOAT | real | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_DOUBLE | float | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_BIT | bit | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_UTINYINT | tinyint | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_BINARY | varbinary | SQL_CA_SS_VARIANT_SQL_TYPE non è impostato. |
SQL_C_BINARY | time | SQL_CA_SS_VARIANT_SQL_TYPE = SQL_SS_TIME2 La scalabilità è impostata su SQL_DESC_PRECISION (il parametro DecimalDigits di SQLBindParameter). |
SQL_C_BINARY | datetimeoffset | SQL_CA_SS_VARIANT_SQL_TYPE = SQL_SS_TIMESTAMPOFFSET La scalabilità è impostata su SQL_DESC_PRECISION (il parametro DecimalDigits di SQLBindParameter). |
SQL_C_TYPE_DATE | date | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_TYPE_TIME | time(0) | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato. |
SQL_C_TYPE_TIMESTAMP | datetime2 | La scalabilità è impostata su SQL_DESC_PRECISION (il parametro DecimalDigits di SQLBindParameter). |
SQL_C_NUMERIC | decimale | La precisione è impostata su SQL_DESC_PRECISION (il parametro ColumnSize di SQLBindParameter). Set di scalabilità su SQL_DESC_SCALE (parametro DecimalDigits di SQLBindParameter). |
SQL_C_SS_TIME2 | time | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato |
SQL_C_SS_TIMESTAMPOFFSET | datetimeoffset | SQL_CA_SS_VARIANT_SQL_TYPE viene ignorato |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per