Udostępnij za pośrednictwem


Ulepszone Data / czas typ zachowania z poprzednich wersji serwera SQL (ODBC)

W tym temacie opisano oczekiwane zachowanie, gdy aplikacja klient, która używa rozszerzonego daty i czas funkcji komunikuje się za pomocą wersja programu SQL Server starsze niż SQL Server 2008, a gdy aplikacja klient, za pomocą składników Microsoft Data Access Components, system Windows Data Access Components lub wersja programu SQL Server Macierzysta klient starsze niż SQL Server 2008 wysyła polecenia do serwera, który obsługuje rozszerzone daty i czas funkcji.

Zachowanie klient poziom niedziałający

Aplikacje klienckie, które zostały skompilowane przy użyciu wersja programu SQL Server Macierzysta klient przed SQL Server 2008 Zobacz typy nowe data i godziny jako kolumny nvarchar. Zawartość kolumna jest literałem reprezentacje zgodnie z opisem w "formatów danych: Ciągi i literały"sekcjiObsługa typu danych dla ulepszenia ODBC Data/Godzina. Rozmiar kolumna jest maksymalna długość literału dokładność ułamków sekund określona dla kolumna.

Katalog interfejsów API zwróci metadane zgodne z niedziałający-kod zwrócony do klient (na przykład, nvarchar) i skojarzonym typie danych poziomu niedziałający-poziom reprezentację (na przykład odpowiedni literału format).Jednak nazwa typu danych zwróconych będzie rzeczywistych SQL Server 2008 Nazwa typu.

Metadane instrukcja zwrócone przez SQLDescribeCol, SQLDescribeParam, SQGetDescField, a SQLColAttribute Zwraca wartość metadane, które są zgodne z niedziałający-poziom typu pod względem wszystkich, łącznie z nazwą typu. Na przykład typu niskiego poziom nvarchar.

Gdy aplikacja klient niższego poziom jest uruchamiana przed SQL Server 2008 serwer, na których zmiany schematu na datę / czas typów zostaną wprowadzone, oczekiwane zachowanie jest następująca:

Typ programu SQL Server 2005

SQL Server 2008 Typ

Typ klient ODBC

Wynik konwersji (SQL c)

Parametr konwersji (C-SQL)

Data i godzina

Data

SQL_C_TYPE_DATE

OK

OK (1)

SQL_C_TYPE_TIMESTAMP

Czas pól zestaw na zero.

OK (2)

Kończy się niepowodzeniem, jeśli pole czas jest różna od zera.Współpracuje z SQL Server 2005.

czas(0)

SQL_C_TYPE_TIME

OK

OK (1)

SQL_C_TYPE_TIMESTAMP

Data pola zestaw do bieżącej data.

OK (2)

Data jest ignorowana.Kończy się niepowodzeniem, jeśli ułamków sekund są od zera.Współpracuje z SQL Server 2005.

czas(7)

SQL_C_TIME

Niepowodzenie — czas Nieprawidłowy literał.

OK (1)

SQL_C_TYPE_TIMESTAMP

Niepowodzenie — czas Nieprawidłowy literał.

OK (1)

Datetime2(3)

SQL_C_TYPE_TIMESTAMP

OK

OK (1)

Datetime2(7)

SQL_C_TYPE_TIMESTAMP

OK

Wartość zostanie zaokrąglona do 1/300th sekundy, przez przekształcenie klient.

Smalldatetime

Data

SQL_C_TYPE_DATE

OK

OK

SQL_C_TYPE_TIMESTAMP

Czas pól zestaw na zero.

OK (2)

Kończy się niepowodzeniem, jeśli pole czas jest różna od zera.Współpracuje z SQL Server 2005.

czas(0)

SQL_C_TYPE_TIME

OK

OK

SQL_C_TYPE_TIMESTAMP

Data pola zestaw do bieżącej data.

OK (2)

Data jest ignorowana.Kończy się niepowodzeniem, jeśli ułamków sekund od zera.

Współpracuje z SQL Server 2005.

Datetime2(0)

SQL_C_TYPE_TIMESTAMP

OK

OK

Klucz do symboli

Symbol

Znaczenie

1

Jeśli jego pracy z SQL Server 2005 należy kontynuować pracę z SQL Server 2008.

2

Działające z aplikacji SQL Server 2005 może nie działać z SQL Server 2008.

Należy zwrócić uwagę, zostały uwzględnione jedynie typowych zmian schematu.Poniżej przedstawiono typowe zmiany:

  • Za pomocą nowego typu, w której logicznie aplikacja wymaga tylko datę lub czas wartości.Jednak aplikacja została zmuszona do korzystania z typu Data/Godzina lub smalldatetime ze względu na Brak daty oddzielne i typy wartości czas.

  • Uzyskanie dokładność ułamkowa kilka sekund lub dokładności przy użyciu nowego typu.

  • Przełączanie do datetime2, ponieważ jest to preferowany data i czas typu danych.

Zwrócone przez SQLColumns SQLProcedureColumns i SQLSpecialColumns metadane kolumna

Następujące wartości kolumn są zwracane dla daty / czas typów:

Typ kolumna

data

godzina

Smalldatetime

data_i_godzina

datetime2

datetimeoffset

DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_TYPE_TIMESTAMP

SQL_TYPE_TIMESTAMP

SQL_WVARCHAR

SQL_WVARCHAR

TYPE_NAME

data

godzina

Smalldatetime

data_i_godzina

datetime2

datetimeoffset

COLUMN_SIZE

10

8,10..16

16

23

19, 21..27

26, 28..34

BUFFER_LENGTH

20

16, 20..32

16

16

38, 42..54

52, 56..68

DECIMAL_DIGITS

WARTOŚCI NULL

WARTOŚCI NULL

0

3

WARTOŚCI NULL

WARTOŚCI NULL

SQL_DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME

SQL_DATETIME

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME_SUB

WARTOŚCI NULL

WARTOŚCI NULL

SQL_CODE_TIMESTAMP

SQL_CODE_TIMESTAMP

WARTOŚCI NULL

WARTOŚCI NULL

CHAR_OCTET_LENGTH

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

SS_DATA_TYPE

0

0

111

111

0

0

SQLSpecialColumns nie zwraca SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH lub SS_DATA_TYPE.

Metadane typ danych zwracanych przez SQLGetTypeInfo

Następujące wartości kolumn są zwracane dla daty / czas typów:

Typ kolumna

data

godzina

Smalldatetime

data_i_godzina

datetime2

datetimeoffset

TYPE_NAME

data

godzina

Smalldatetime

data_i_godzina

datetime2

datetimeoffset

DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_TYPE_TIMESTAMP

SQL_TYPE_TIMESTAMP

SQL_WVARCHAR

SQL_WVARCHAR

COLUMN_SIZE

10

16

16

23

27

34

LITERAL_PREFIX

LITERAL_SUFFIX

CREATE_PARAMS

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

ZEROWALNE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

SQL_NULLABLE

CASE_SENSITIVE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

MOŻNA WYSZUKIWAĆ

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

SQL_PRED_SEARCHABLE

UNSIGNED_ATTRIBUTE

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

FXED_PREC_SCALE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

SQL_FALSE

AUTO_UNIQUE_VALUE

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

LOCAL_TYPE_NAME

data

godzina

Smalldatetime

data_i_godzina

datetime2

datetimeoffset

MINIMUM_SCALE

WARTOŚCI NULL

WARTOŚCI NULL

0

3

WARTOŚCI NULL

WARTOŚCI NULL

MAXIMUM_SCALE

WARTOŚCI NULL

WARTOŚCI NULL

0

3

WARTOŚCI NULL

WARTOŚCI NULL

SQL_DATA_TYPE

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME

SQL_DATETIME

SQL_WVARCHAR

SQL_WVARCHAR

SQL_DATETIME_SUB

WARTOŚCI NULL

WARTOŚCI NULL

SQL_CODE_TIMESTAMP

SQL_CODE_TIMESTAMP

WARTOŚCI NULL

WARTOŚCI NULL

NUM_PREC_RADIX

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

INTERVAL_PRECISION

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

WARTOŚCI NULL

USERTYPE

0

0

12

22

0

0

Zachowanie serwera poziom niedziałający

Podczas połączenia z wystąpienie serwera z wcześniejszej wersja, SQL Server 2008, dowolne próbować używać nowych typów serwerów lub skojarzony metadane kodów i pól deskryptora spowoduje SQL_ERROR zwracanych. Diagnostyczne rekord zostanie wygenerowany HY004 SQLSTATE i komunikat "SQL nieprawidłowy typ danych dla serwera w wersja dla połączenia" lub 07006 i "Z ograniczeniami naruszenie atrybut typu danych".

See Also

Concepts