Udostępnij za pośrednictwem


Konwersje wykonywane z serwera do klienta

W tym temacie opisano data /czas konwersje wykonywane między SQL Server 2008 (lub nowszym) i aplikacji klient napisanych z SQL Server Macierzystego klient OLE DB.

Konwersje

W poniższej tabela opisano konwersje między typu zwracane do klient i w powiązanie.Dla parametrów wyjściowych Jeśli ICommandWithParameters::SetParameterInfo została wywołana i typ określony w pwszDataSourceType pasuje nie rzeczywisty typ na serwerze niejawna konwersja będzie wykonywane przez serwer, a typ zwracany do klient będzie zgodny z typem określonym przez ICommandWithParameters::SetParameterInfo.Może to prowadzić do konwersji nieoczekiwane wyniki reguły konwersji serwera są inne niż opisane w tym temacie.Na przykład, kiedy domyślnej data należy dostarczyć, SQL Server używa 1900-1-1 zamiast 1899-12-30.

->

Z

DATA

DBDATE

DBTIME

DBTIME2

ODCISK CZASOWY

DBTIMESTAMPOFFSET

FILETIME

BAJTÓW

WARIANT

SSVARIANT

BSTR

STR

WSTR

Data

1,7

OK

-

-

1

1,3

1,7

-

OK (VT_BSTR)

OK

OK

4

4

Godzina

5,6,7

-

9

OK

6

3,6

5,6

-

OK (VT_BSTR)

OK

OK

4

4

Smalldatetime

7

8

9,10

10

OK

3

7

-

7 (VT_DATE)

OK

OK

4

4

Datetime

5,7

8

9,10

10

OK

3

7

-

7 (VT_DATE)

OK

OK

4

4

Datetime2

5,7

8

9,10

10

7

3

5,7

-

OK (VT_BSTR)

OK

OK

4

4

Datetimeoffset

5,7,11

8,11

9,10,11

10,11

7,11

OK

5,7,11

-

OK (VT_BSTR)

OK

OK

4

4

CHAR, Varchar,

Nchar, Nvarchar

7, 13

12

12,9

12

12

12

7,13

Brak

Brak

Brak

Brak

Brak

Brak

Sql_variant

(datetime)

7

8

9,10

10

OK

3

7

-

7 (VT_DATE)

OK

OK

4

4

Sql_variant

(smalldatetime)

7

8

9,10

10

OK

3

7

-

7 (VT_DATE)

OK

OK

4

4

Sql_variant

(Data)

1,7

OK

2

2

1

1,3

1,7

-

OK (VT_BSTR)

OK

OK

4

4

Sql_variant

(czas)

5,6,7

2

6

OK

6

3,6

5,6

-

OK (VT_BSTR)

OK

OK

4

4

Sql_variant

(datetime2)

5,7

8

9,10

10

OK

3

5,7

-

OK (VT_BSTR)

OK

OK

4

4

Sql_variant

(datetimeoffset)

5,7,11

8,11

9,10,11

10,11

7,11

OK

5,7,11

-

OK (VT_BSTR)

OK

OK

4

4

Klucz do symboli

Symbol

Znaczenie

OK

Konwersja nie jest konieczne.

-

Konwersja nie jest obsługiwane.Jeśli powiązanie jest sprawdzana podczas IAccessor::CreateAccessor jest wywoływana, DBBINDSTATUS_UPSUPPORTEDCONVERSION jest zwracany w rgStatus.Sprawdzenie metoda dostępua jest odroczona, DBSTATUS_E_BADACCESSOR jest zestaw.

1

czas Pól są ustawiane na zero.

2

DBSTATUS_E_CANTCONVERTVALUE jest zestaw.

3

Strefa czasowa jest zestaw do zera.

4

Jeśli bufor klient nie jest wystarczająco duży, DBSTATUS_S_TRUNCATED jest zestaw.Typ serwera zawiera ułamków sekund, liczba cyfr w ciąg wynik dokładnie odpowiada skali typ serwera.

5

Obcięcie sekund lub ułamków sekund jest ignorowana.

6

Data jest zestaw do daty bieżącej, chyba, że źródło jest czas ciąg literału i miejsce docelowe jest DBTYPE_DATE.W takim przypadek 1899-12-30 jest używany.

7

Jeśli wartość przepełnienie, DBSTATUS_E_DATAOVERFLOW jest zestaw.

8

Pola czasu są ignorowane.

9

Pola ułamków sekund są ignorowane.

10

Składnik data jest ignorowana.

11

Czas jest konwertowany na strefa czasowa klient.Jeśli wystąpi błąd podczas konwersji tego zestaw DBSTATUS_E_DATAOVERFLOW.

12

Ciąg jest analizowana jako literał ISO i konwertowana na typ miejsce docelowe.Jeśli to się nie powiedzie, ciąg jest analizowany jako literałem data OLE (także czas składników) i konwertowane z data OLE (DBTYPE_DATE) na typ miejsce docelowe.Ciąg musi być zgodna ze składni literały typ docelowy dozwolone w formacie ISO analizowania powiodła się.Dla OLE analizowania powiodła się ciąg musi być zgodna ze składnią przez mechanizm OLE.Jeśli nie można przeanalizować ciąg, DBSTATUS_E_CANTCONVERTVALUE jest zestaw.Jeśli poza zakresem wartości składowych, DBSTATUS_E_DATAOVERFLOW jest zestaw.

13

Ciąg jest analizowana jako literał ISO i konwertowana na typ miejsce docelowe.Jeśli to się nie powiedzie, ciąg jest analizowany jako literałem data OLE (także czas składników) i konwertowane z data OLE (DBTYPE_DATE) na typ miejsce docelowe.Ciąg musi odpowiadać składnia literały datetime, chyba że obiekt obiekt docelowy jest DBTYPE_DATE lub DBTYPE_DBTIMESTAMP.Jeśli tak jest, albo dataczas lub czas literał jest dozwolone w formacie ISO analizowania powiodła się.Dla OLE analizowania powiodła się ciąg musi być zgodna ze składnią przez mechanizm OLE.Jeśli nie można przeanalizować ciąg, DBSTATUS_E_CANTCONVERTVALUE jest zestaw.Jeśli poza zakresem wartości składowych, DBSTATUS_E_DATAOVERFLOW jest zestaw.

Zobacz także

Koncepcje