Udostępnij za pośrednictwem


sql_variant obsługi typów daty i godziny

W tym temacie opisano sposób sql_variant Typ danych obsługuje enhanced Data i czas funkcjonalność.

The column attribute SQL_CA_SS_VARIANT_TYPE is used to return the C type of a variant result column.SQL Server 2008 introduced 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 można również w deskryptorze parametr wykonania (IPD), aby określić typ SQL SQL_SS_TIME2 lub SQL_SS_TIMESTAMPOFFSET parametr, który ma SQL_C_BINARY C, wpisz związany z typem SQL_SS_VARIANT.

zestaw nowe typy SQL_SS_TIME2 i SQL_SS_TIMESTAMPOFFSET SQLColAttribute.SQL_CA_SS_VARIANT_SQL_TYPE mogą być zwracane przez SQLGetDescField.

Wynik kolumn sterownik zostanie przekonwertowana z wariantu do daty /czas typów.Aby uzyskać więcej informacji, zobacz Konwersje z SQL do c.Gdy powiązanie do SQL_C_BINARY, długość buforu musi być wystarczająco duża, aby otrzymać struct, odpowiadający typ SQL.

Parametry SQL_SS_TIME2 i SQL_SS_TIMESTAMPOFFSET sterownik przekonwertuje wartości c sql_variant wartości, jak opisano w poniższej tabela.Jeśli parametr jest związany jako SQL_C_BINARY i SQL_SS_VARIANT jest typ serwera, jest traktowany jako wartości binarne, chyba że aplikacja ma zestaw SQL_CA_SS_VARIANT_SQL_TYPE do innych typów SQL.W takim przypadek SQL_CA_SS_VARIANT_SQL_TYPE pierwszeństwo; oznacza to, że jeśli jest SQL_CA_SS_VARIANT_SQL_TYPE zestaw, zastępuje domyślne zachowanie wydedukowania typ wariantu SQL z typu C.

Typu 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

Pływak

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

dziesiętny

Dokładność jest zestaw do SQL_DESC_PRECISION ( ColumnSize parametr SQLBindParameter).

Skala zestaw do SQL_DESC_SCALE ( DecimalDigits parametr SQLBindParameter).

Zobacz także

Koncepcje