Udostępnij za pośrednictwem


srv_convert (Extended przechowywane procedury API)

Ważna informacjaWażne:

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja. Użyj integracja CLR.

Zmienia dane z jednego typu danych.

Składnia


int srv_convert (
SRV_PROC *
srvproc
,
int
srctype
,
void *
src
,
DBINT
srclen
,
int
desttype
,
void *
  dest
,
DBINT
destlen
);

Argumenty

  • srvproc
    Jest wskaźnik do struktury SRV_PROC dojście do połączenia określonego klient.Struktura zawiera używający zarządzanie komunikacji i danych między aplikacją i klient API rozszerzone procedury przechowywane informacje sterujące.Jeśli srvproc podano dojście, jest przekazywany do funkcja obsługi błąd rozszerzony API procedury przechowywane, gdy wystąpi błąd.

  • srctype
    Określa typ danych do konwersji danych.Ten parametr może być dowolnego typu Extended API procedury magazynu danych.

  • src
    Jest wskaźnik do danych do konwersji.Ten parametr może być dowolnego typu Extended API procedury magazynu danych.

  • srclen
    Określa długość bajtów danych do konwersji.Jeśli srclen jest równa 0, srv_convert umieści wartości null w obiekt docelowy zmiennej.Jeśli nie jest 0, ten parametr jest ignorowany dla typów danych o stałej długości, w którym to przypadek źródło danych jest przyjmowany domyślnie jako NULL.Dla danych typu danych SRVCHAR długość –1 wskazuje ciąg jest zakończony znakiem null.

  • desttype
    Określa typ danych do konwersji na źródło.Ten parametr może być dowolnego typu Extended API procedury magazynu danych.

  • dest
    Wskaźnik jest obiekt docelowy zmienna, która odbiera przekonwertowany danych.Jeżeli wskaźnik jest NULL, srv_convert wywołania obsługi błędu dostarczone przez użytkownika, jeśli i zwraca wartość -1.

    Jeśli desttype SRVDECIMAL lub SRVNUMERIC, dest parametr musi być już wskaźnika do struktury DBNUMERIC lub DBDECIMAL z polami precyzji i skali struktury zestaw do żądanej wartości.DEFAULTPRECISION można używać do określania Domyślna precyzja i DEFAULTSCALE, aby określić Skala domyślna.

  • destlen
    Określa długość w bajtach, obiekt docelowy zmiennej.Ten parametr jest ignorowany dla typów danych o stałej długości.Dla docelowej zmiennej typu SRVCHAR, wartość destlen musi być całkowitą długość miejsca bufor obiekt docelowy.Długość -1 obiekt docelowy wskazuje zmienna typu SRVCHAR lub SRVBINARY jest dostępna wystarczająca ilość miejsca.Dla docelowej zmiennej typu srvchar, długość -1 powoduje, że ciąg znaków do null-zakończone.

Zwraca

Długość danych przekonwertowane, w bajtach, jeśli konwersja typu danych powiedzie się.Gdy srv_convert napotka na wniosek o konwersję nie obsługuje, wywołuje obsługi błędu dostarczonych przez dewelopera, ustawia numer błędu globalnego i zwraca wartość -1.

Uwagi

Srv_willconvert funkcja określa, czy jest dozwolone określonego konwersji.

Konwersja na typy przybliżonych danych liczbowych, SRVFLT4 lub SRVFLT8 spowodować utratę precyzji.Konwertowanie typów przybliżonych danych liczbowych, SRVFLT4 lub SRVFLT8 SRVCHAR lub SRVTEXT również spowodować utratę precyzji.

Konwertowanie na SRVFLTx, SRVINTx, SRVMONEY, SRVMONEY4, SRVDECIMAL lub SRVNUMERIC może spowodować przepełnienie, jeśli liczba jest większa niż maksymalna wartość docelowego lub niedopełnienie Jeśli liczba jest mniejsza niż minimalna wartość obiekt docelowy.W przypadku wystąpienia przepełnienie podczas konwertowania SRVCHAR lub SRVTEXT pierwszy znak wartości wynikowej zawiera gwiazdka (*), aby wskazać błąd.

Podczas konwertowania SRVCHAR SRVBINARY, srv_convert interpretuje jako szesnastkowym, SRVCHAR, czy ciąg zawiera początkową cyfrą 0.Podczas konwertowania SRVBINARY SRVCHAR, srv_convert tworzy ciąg szesnastkowy bez początkowej cyfry 0.W innych przypadkach konwersja z typu danych SRVBINARY lub jest proste kopii bit.

W niektórych przypadkach może być przydatne do konwersji typu danych do siebie.Na przykład, konwersja na SRVCHAR z SRVCHAR destlen -1 dodaje null terminator do ciąg.

Opis typów danych i konwersje typów danych rozszerzonych API procedury magazynu, zobaczTypy danych (rozszerzona procedura przechowywana API).

Srv_convert funkcja może się nie udać z kilku powodów:

  • Żądana konwersja nie jest dostępna.

  • Konwersja spowodowało obcinania, przepełnienie lub utraty precyzji w obiekt docelowy zmiennej.

  • Wystąpił błąd składni podczas konwertowania ciąg znaków na typ danych numerycznych.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Należy dokładnie przejrzeć kod źródłowy rozszerzonych procedur przechowywanych oraz przetestować skompilowane biblioteki DLL przed zainstalowaniem ich na serwerze produkcyjnym.Informacje o przegląd zabezpieczeń i testowania Zobacz to witryna sieci Web Microsoft.