Udostępnij przez


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

See Also

Concepts