Udostępnij za pośrednictwem


Parametr i wynik metadanych

W tym temacie opisano, co jest zwracany w deskryptorze parametr wykonania (IPD) i pola deskryptora wiersza implementacji (IRD) dla daty i czas typów danych.

Informacje zwrócone w polach IPD

W polach IPD zwracany jest następujące informacje:

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

smalldatetimew IRD datetime2 w IPD

datetimew 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

Brak

Brak

SQL_SS_TYPE_SMALLDATETIME

SQL_SS_TYPE_DATETIME

SQL_SS_TYPE_DEFAULT

Brak

Czasami demograficznymi w są zakresy wartości.Na przykład 9 brakuje w 8 10..16.Jest to spowodowane dodanie przecinka dziesiętnego po dokładność ułamkowa jest większa od zera.

datetime2zwracane jako typename dla smalldatetime i datetime , ponieważ sterownik używa go jako typu wspólnego dla wszystkich transmisji SQL_TYPE_TIMESTAMP wartości do serwera.

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 (SQL_SSVARIANT), kolumn i parametry

SQL_CA_SS_SERVER_TYPE jest nowe pole tylko do IPD Aby włączyć aplikacje do kontrolowania sposobu wartości parametrów powiązane jako SQL_TYPE_TYPETIMESTAMP (lub SQL_SS_VARIANT C typu SQL_C_TYPE_TIMESTAMP) są wysyłane do serwera.Jeśli SQL_DESC_CONCISE_TYPE jest SQL_TYPE_TIMESTAMP (lub jest SQL_SS_VARIANT i SQL_C_TYPE_TIMESTAMP jest typu C) po SQLExecute lub nosi nazwęSQLExecDirect , wartość SQL_CA_SS_SERVER_TYPE określa typ (TDS) wartości parametru strumień danych tabelarycznych, w następujący sposób:

Wartość SQL_CA_SS_SERVER_TYPE

Prawidłowe wartooci dla SQL_DESC_PRECISION

Prawidłowe wartooci dla 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ślne ustawienie SQL_CA_SS_SERVER_TYPE jest SQL_SS_TYPE_DEFAULT.Poprawność ustawień SQL_DESC_PRECISION i SQL_DESC_LENGTH z ustawieniem SQL_CA_SS_SERVER_TYPE opisane w powyższej tabela.Jeśli to uwierzytelnienie nie powiedzie się, zwracana jest wartość SQL_ERROR i diagnostycznych rekord rejestrowany jest SQLState 07006 i komunikat "ograniczonego typu danych atrybut".Ten błąd jest również zwracana, jeśli jest SQL_CA_SS_SERVER_TYPE zestaw na wartość inną niż domyślna SQL_SS_TYPE i DESC_CONCISE_TYPE nie jest SQL_TYPE_TIMESTAMP.Poprawności te są wykonywane podczas sprawdzania spójności deskryptora występuje na przykład:

  • Kiedy SQL_DESC_DATA_PTR zostanie zmieniona.

  • Na przygotowanie i wykonanie czas (po SQLExecute, SQLExecDirect, SQLSetPos lub SQLBulkOperations jest nazywana).

  • Gdy aplikacja wymusza nie odroczone przygotować poprzez wywołanie SQLPrepare z odroczonym przygotować wyłączone lub poprzez wywołanie SQLNumResultCols, SQLDescribeCol, lub SQLDescribeParam dla instrukcja, która jest przygotowana, ale nie jest wykonywany.

Gdy jest SQL_CA_SS_SERVER_TYPE zestaw przez wywołanie do SQLSetDescField, jej wartość musi być SQL_SS_TYPE_DEFAULT, SQL_SS_TYPE_SMALLDATETIME lub SQL_SS_TYPE_DATETIME.Jeśli nie jest przypadek, zwracana jest wartość SQL_ERROR i diagnostycznych rekord rejestrowany jest z SQLState HY092 i komunikat "nieprawidłowy atrybut/opcji Identyfikator".

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 korzystania z dateadd i datediif funkcje konieczne datetime i smalldatetime także umożliwić operatorów arytmetycznych.Większość aplikacji nie trzeba używać tego atrybut i jego zastosowania, należy unikać.

Informacje zwrócone w polach IRD

W polach IRD zwracany jest następujące informacje:

Typ kolumny

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

Zobacz także

Koncepcje