Pomoc techniczna dla typów Data/Godzina sql_variant
W tym temacie opisano sposób sql_variant Typ danych obsługuje rozszerzone data i czas funkcji.
The column attribute SQL_CA_SS_VARIANT_TYPE is used to return the C type of a variant result column.SQL Server 2008 introduces an additional attribute, SQL_CA_SS_VARIANT_SQL_TYPE, which sets the SQL type of a variant result column in the implementation row descriptor (IRD).SQL_CA_SS_VARIANT_SQL_TYPE również mogą być używane w implementacji parametr deskryptora zabezpieczeń (IPD), aby określić typ SQL a SQL_SS_TIME2 lub SQL_SS_TIMESTAMPOFFSET parametr, który ma SQL_C_BINARY C, wpisz związany z typem SQL_SS_VARIANT.
Nowe typy SQL_SS_TIME2 i SQL_SS_TIMESTAMPOFF zestaw może być zestaw przez SQLColAttribute. SQL_CA_SS_VARIANT_SQL_TYPE mogą być zwracane przez SQLGetDescField.
Dla kolumn z wynikami sterownik zostanie przekonwertowana z wariant do typu Data/Godzina.Aby uzyskać więcej informacji zobaczPodczas konwersji z SQL do C.Podczas wiązania z SQL_C_BINARY, musi być wystarczająco duży, aby otrzymać struktura odpowiadająca typowi SQL długość buforu.
Dla parametrów SQL_SS_TIME2 i SQL_SS_TIMESTAMPOFFSET sterownik przekonwertuje wartości C sql_variant wartości, jak to opisano w poniższej tabela. Jeśli parametr jest powiązany jako SQL_C_BINARY SQL_SS_VARIANT jest typ serwera, jest traktowany jako wartość binarna, chyba że aplikacja ma zestaw SQL_CA_SS_VARIANT_SQL_TYPE do innego typu programu SQL.W takim przypadek pierwszeństwo ma SQL_CA_SS_VARIANT_SQL_TYPE, czyli, jeśli jest SQL_CA_SS_VARIANT_SQL_TYPE zestaw, ustawienie to zastępuje domyślne zachowanie deducing typ wariantu SQL z typu C.
Typ c |
Typ serwera |
Komentarze |
---|---|---|
SQL_C_CHAR |
varchar |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_WCHAR |
nvarcar |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_TINYINT |
smallint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_STINYINT |
smallint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_SHORT |
smallint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_SSHORT |
smallint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_USHORT |
int |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_LONG |
int |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_SLONG |
int |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_ULONG |
bigint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_SBIGINT |
bigint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_FLOAT |
rzeczywiste |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_DOUBLE |
zmiennoprzecinkowe |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_BIT |
bit |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_UTINYINT |
tinyint |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_BINARY |
varbinary |
Nie jest SQL_CA_SS_VARIANT_SQL_TYPE zestaw. |
SQL_C_BINARY |
godzina |
SQL_CA_SS_VARIANT_SQL_TYPE = SQL_SS_TIME2 Skala jest zestaw do SQL_DESC_PRECISION ( DecimalDigits Parametr SQLBindParameter). |
SQL_C_BINARY |
datetimeoffset |
SQL_CA_SS_VARIANT_SQL_TYPE = SQL_SS_TIMESTAMPOFFSET Skala jest zestaw do SQL_DESC_PRECISION ( DecimalDigits Parametr SQLBindParameter). |
SQL_C_TYPE_DATE |
data |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_TYPE_TIME |
czas(0) |
SQL_CA_SS_VARIANT_SQL_TYPE jest ignorowana. |
SQL_C_TYPE_TIMESTAMP |
datetime2 |
Skala jest zestaw do SQL_DESC_PRECISION ( DecimalDigits Parametr SQLBindParameter). |
SQL_C_NUMERIC |
decimal |
Dokładność jest zestaw do SQL_DESC_PRECISION ( ColumnSize Parametr SQLBindParameter). Ustaw skalę na SQL_DESC_SCALE ( DecimalDigits Parametr SQLBindParameter). |