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). |