Parametr i wynik metadane
W tym temacie opisano, co zwracany jest w realizacji parametr deskryptora (IPD) i realizacji wiersza pola deskryptora (IRD) dla danych typu Data i godzina.
Informacje zwrócone w polu IPD pola
Następujące informacje są zwracane w polach IPD:
Typ parametru |
data |
godzina |
Smalldatetime |
data_i_godzina |
datetime2 |
datetimeoffset |
|---|---|---|---|---|---|---|
SQL_DESC_CASE_SENSITIVE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_DESC_CONCISE_TYPE |
SQL_TYPE_DATE |
SQL_SS_TIME2 |
SQL_TYPE_TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_DATETIME_INTERVAL_CODE |
SQL_CODE_DATE |
0 |
SQL_CODE_TIMESTAMP |
SQL_CODE_TIMESTAMP |
SQL_CODE_TIMESTAMP |
0 |
SQL_DESC_DATETIME_INTERVAL_PRECISION |
10 |
8,10..16 |
16 |
23 |
19, 21..27 |
26, 28..34 |
SQL_DESC_FIXED_PREC_SCALE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_DESC_LENGTH |
10 |
8,10..16 |
16 |
23 |
19, 21..27 |
26, 28..34 |
SQL_DESC_OCTET_LENGTH |
6 |
12 |
4 |
8 |
16 |
20 |
SQL_DESC_PRECISION |
0 |
0..7 |
0 |
3 |
0..7 |
0..7 |
SQL_DESC_SCALE |
0 |
0..7 |
0 |
3 |
0..7 |
0..7 |
SQL_DESC_TYPE |
SQL_TYPE_DATE |
SQL_SS_TYPE_TIME2 |
SQL_DATETIME |
SQL_DATETIME |
SQL_DATETIME |
SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_TYPE_NAME |
date |
time |
smalldatetime w IRD, datetime2 w IPD |
datetime w IRD, datetime2 w IPD |
datetime2 |
datetimeoffset |
SQL_CA_SS_VARIANT_TYPE |
SQL_C_TYPE_DATE |
SQL_C_TYPE_BINARY |
SQL_C_TYPE_TIMESTAMP |
SQL_C_TYPE_TIMESTAMP |
SQL_C_TYPE_TIMESTAMP |
SQL_C_TYPE_BINARY |
SQL_CA_SS_VARIANT_SQL_TYPE |
SQL_TYPE_DATE |
SQL_SS_TIME2 |
SQL_TYPE_TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_SS_TIMESTAMPOFFSET |
SQL_CA_SS_SERVER_TYPE |
NIE DOTYCZY |
NIE DOTYCZY |
SQL_SS_TYPE_SMALLDATETIME |
SQL_SS_TYPE_DATETIME |
SQL_SS_TYPE_DEFAULT |
NIE DOTYCZY |
Czasami ubezpieczeniowych w są zakresy wartości.Na przykład 9 Brak 8 10..16.Jest to spowodowane dodanie przecinek dziesiętny podczas dokładność ułamkowa jest większa od zera.
datetime2 zwracane w postaci nazwa_typu dla smalldatetime i datetime ponieważ sterownik to jest używane jako typu wspólnego dla wszystkich transmisji SQL_TYPE_TIMESTAMP wartości, które mają na serwerze.
SQL_CA_SS_VARIANT_SQL_TYPE jest nowe pole deskryptora.To pole zostało dodane do włączania aplikacji określić typ wartości skojarzone z IRD i IPD sqlvariant Kolumny (SQL_SSVARIANT) i parametry
SQL_CA_SS_SERVER_TYPE jest nowe pole tylko do IPD do włączania aplikacji kontrolować, w jaki sposób wartości dla parametrów związanego jako SQL_TYPE_TYPETIMESTAMP (lub SQL_SS_VARIANT C typu SQL_C_TYPE_TIMESTAMP) są wysyłane do serwera.W przypadku SQL_DESC_CONCISE_TYPE SQL_TYPE_TIMESTAMP (lub jest SQL_SS_VARIANT i C jest SQL_C_TYPE_TIMESTAMP) po SQLExecute lub SQLExecDirect jest wywoływana, wartość SQL_CA_SS_SERVER_TYPE określa danych tabelarycznych strumienia wartości parametru typu (TDS) w następujący sposób:
Wartość SQL_CA_SS_SERVER_TYPE |
Prawidłowe wartości parametru SQL_DESC_PRECISION |
Prawidłowe wartości parametru SQL_DESC_LENGTH |
Typ TDS |
|---|---|---|---|
SQL_SS_TYPE_DEFAULT |
0..7 |
19, 21..27 |
datetime2 |
SQL_SS_TYPE_SMALLDATETIME |
0 |
19 |
smalldatetime |
SQL_SS_TYPE_DATETIME |
3 |
23 |
datetime |
Domyślnym ustawieniem SQL_CA_SS_SERVER_TYPE jest SQL_SS_TYPE_DEFAULT.Ustawienia SQL_DESC_PRECISION i SQL_DESC_LENGTH sprawdzania poprawności z ustawieniem SQL_CA_SS_SERVER_TYPE, jak to opisano w powyższej tabela.Jeśli to uwierzytelnienie nie powiedzie się, zwracana jest SQL_ERROR i diagnostyczne rekord jest rejestrowany z SQLState 07006 i komunikat "dane ograniczeniami typ atrybut".Ten błąd jest również zwracana, jeśli jest SQL_CA_SS_SERVER_TYPE zestaw na wartość inną niż SQL_SS_TYPE DEFAULT i DESC_CONCISE_TYPE nie jest SQL_TYPE_TIMESTAMP.Tych funkcji sprawdzania poprawności są wykonywane, gdy wystąpi deskryptora sprawdzania spójności, na przykład:
Kiedy SQL_DESC_DATA_PTR ulega zmianie.
Na przygotowanie lub wykonywania czas (jeśli SQLExecute, SQLExecDirect, SQLSetPos lub SQLBulkOperations jest nazywana).
Gdy aplikacja wymusza nie odroczone przygotować poprzez wywołanie SQLPrepare w czasie przygotowywania wyłączone lub poprzez wywołanie SQLNumResultCols, SQLDescribeCol, lub SQLDescribeParam dla instrukcja, która jest przygotowana, ale nie jest wykonywane.
Kiedy SQL_CA_SS_SERVER_TYPE jest ustawiana przez wywołanie SQLSetDescField, jego wartość musi być SQL_SS_TYPE_DEFAULT, SQL_SS_TYPE_SMALLDATETIME lub SQL_SS_TYPE_DATETIME. Jeśli tak nie jest, SQL_ERROR jest zwracany i diagnostyczne rekord jest rejestrowany z SQLState HY092 i komunikatu "identyfikator atrybut/opcji nieprawidłowe".
Atrybut SQL_CA_SS_SERVER_TYPE może być używany przez aplikacje, które zależą od funkcji obsługiwanych przez datetime i smalldatetime, ale nie datetime2. Na przykład datetime2 wymaga użycia dateadd i datediif Funkcje, dlatego datetime i smalldatetime Umożliwia także operatorów arytmetycznych. Większość aplikacji nie będą musieli używać ten atrybut i należy unikać jej wykorzystania.
Informacje zwrócone w polu IRD pola
Następujące informacje są zwracane w polach IRD:
Typ kolumna |
data |
godzina |
Smalldatetime |
data_i_godzina |
datetime2 |
datetimeoffset |
|---|---|---|---|---|---|---|
SQL_DESC_AUTO_UNIQUE_VALUE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_DESC_CASE_SENSITIVE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_DESC_CONCISE_TYPE |
SQL_TYPE_DATE |
SQL_SS_TIME2 |
SQL_TYPE_TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_TYPE_TIMESTAMP |
SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_DATETIME_INTERVAL_CODE |
SQL_CODE_DATE |
0 |
SQL_CODE_TIMESTAMP |
SQL_CODE_TIMESTAMP |
SQL_CODE_TIMESTAMP |
0 |
SQL_DESC_DATETIME_INTERVAL_PRECISION |
10 |
8,10..16 |
16 |
23 |
19, 21..27 |
26, 28..34 |
SQL_DESC_DISPLAY_SIZE |
10 |
8,10..16 |
16 |
23 |
19, 21..27 |
26, 28..34 |
SQL_DESC_FIXED_PREC_SCALE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_FALSE |
SQL_DESC_LENGTH |
10 |
8,10..16 |
16 |
2 |
19, 21..27 |
26, 28..34 |
SQL_DESC_LITERAL_PREFIX |
‘ |
‘ |
‘ |
‘ |
‘ |
‘ |
SQL_DESC_LITERAL_SUFFIX |
‘ |
‘ |
‘ |
‘ |
‘ |
‘ |
SQL_DESC_LOCAL_TYPE_NAME |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
SQL_DESC_OCTET_LENGTH |
6 |
12 |
4 |
8 |
16 |
20 |
SQL_DESC_PRECISION |
0 |
0..7 |
0 |
3 |
0..7 |
0..7 |
SQL_DESC_SCALE |
0 |
0..7 |
0 |
3 |
0..7 |
0..7 |
SQL_DESC_SEARCHABLE |
SQL_PRED_SEARCHABLE |
SQL_PRED_SEARCHABLE |
SQL_PRED_SEARCHABLE |
SQL_PRED_SEARCHABLE |
SQL_PRED_SEARCHABLE |
SQL_PRED_SEARCHABLE |
SQL_DESC_TYPE |
SQL_DATETIME |
SQL_SS_TIME2 |
SQL_DATETIME |
SQL_DATETIME |
SQL_DATETIME |
SQL_SS_TIMESTAMPOFFSET |
SQL_DESC_TYPE_NAME |
date |
time |
smalldatetime |
datetime |
datetime2 |
datetimeoffset |
SQL_DESC_UNSIGNED |
SQL_TRUE |
SQL_TRUE |
SQL_TRUE |
SQL_TRUE |
SQL_TRUE |
SQL_TRUE |