srv_convert (rozszerzona procedura składowana API)
Important Note: |
---|
This feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. Zamiast korzystać z integracja środowiska CLR. |
Zmienia dane z jednego typu danych.
int srv_convert (
SRV_PROC *
srvproc
,
int
srctype
,
void *
src
,
DBINT
srclen
,
int
desttype
,
void *
dest
,
DBINT
destlen
);
Argumenty
srvproc
Jest wskaźnikiem struktury SRV_PROC, która jest dojście do połączenia określonego klient.Struktura zawiera wszystkie informacje sterujące rozszerzona procedura składowana API używane do zarządzania komunikacji i danych między aplikacją a klient.Jeśli srvproc uchwyt jest podany, jest przekazywana do funkcja obsługi błędu rozszerzonego API procedura przechowywana, gdy wystąpi błąd.srctype
Określa typ danych dane, które mają być konwertowane.Ten parametr może być dowolnego typu extended API procedura magazynu danych.src
Jest wskaźnikiem do danych, które mają być konwertowane.Ten parametr może być dowolnego typu extended API procedura magazynu danych.srclen
Określa długość bajtów danych, które mają być konwertowane.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, zakłada, że w takim przypadek danych źródłowych jest ono mieć wartości NULL.W przypadku danych SRVCHAR typu danych, długość równą -1 wskazuje ciąg jest null - zakończone.desttype
Określa typ danych do konwersji na urządzenie źródłowe.Ten parametr może być dowolnego typu extended API procedura magazynu danych.dest
Jest wskaźnikiem obiekt docelowy zmienna, która odbiera przekonwertowane dane.Jeżeli wskaźnik jest null, srv_convert wymaga obsługi dostarczonymi przez użytkownika błędów, jeśli istnieje, a następnie zwraca wartość -1.Jeśli desttype jest SRVDECIMAL lub SRVNUMERIC, dest Parametr musi być wskaźnik do struktury DBNUMERIC lub DBDECIMAL w polach precyzji i skali struktury już ustawiony na żądane wartości. DEFAULTPRECISION służy do określenia dokładności domyślne i DEFAULTSCALE, aby określić skalę domyślne.
destlen
Określa długość, w bajtach, obiekt docelowy zmiennej.Ten parametr jest ignorowany w przypadku typów danych o stałej długości.Aby obiekt docelowy zmiennej typu SRVCHAR wartości destlen musi być całkowitą długość obiekt docelowy buforu miejsca. Długość równą -1 obiekt docelowy zmiennej typu SRVCHAR lub SRVBINARY wskazuje dostępna jest wystarczająca ilość miejsca.Dla docelowej zmiennej typu srvchar, długość równą -1 powoduje, że ciąg znaków, który ma być zostać zakończony wartością zerową.
Zwraca wartość
Przekonwertowane danych, w bajtach, jeśli konwersja typu danych powiedzie się.Kiedy srv_convert napotka wniosek o konwersję, nie obsługuje, wywołuje obsługi błędu dostarczanych przez projektanta, jeśli istnieją, ustawia numer globalny błąd, a następnie zwraca -1.
Remarks
The srv_willconvert funkcja determines whether a particular conversion is allowed.
Konwersji typów przybliżonych danych liczbowych SRVFLT4 lub SRVFLT8 może spowodować utratę precyzji.Konwersja z typu przybliżonych danych liczbowych SRVFLT4 lub SRVFLT8 SRVCHAR lub SRVTEXT również może spowodować utratę precyzji.
Konwertowanie na SRVFLTx, SRVINTx, SRVMONEY, SRVMONEY4, SRVDECIMAL lub SRVNUMERIC może spowodować przepełnienie, jeśli liczba jest większa niż wartość maksymalna obiekt docelowy lub niedopełnienie, jeśli liczba jest mniejsza niż minimalna wartość obiekt docelowy.Jeśli przepełnienie podczas konwertowania SRVCHAR lub SRVTEXT, pierwszy znak obliczonej wartości zawiera gwiazdka **, aby wskazać błąd.
Podczas konwertowania SRVCHAR SRVBINARY, srv_convert interpretuje SRVCHAR jako szesnastkowe, niezależnie od tego, czy ciąg zawiera początkową cyfrą 0.Podczas konwertowania SRVBINARY SRVCHAR, srv_convert tworzy ciąg szesnastkowego bez początkowej cyfry 0.W pozostałych przypadkach konwersja z typu danych SRVBINARY lub jest proste kopii bitów.
W niektórych przypadkach może być przydatny do konwersji typu danych do samego siebie.Na przykład konwersji SRVCHAR SRVCHAR z destlen -1 dodaje terminator null ciąg.
Aby uzyskać opis typów danych i konwersje typów danych API procedura magazynu rozszerzonego ZobaczTypy danych (rozszerzona procedura składowana API).
The srv_convert funkcja can fail for several reasons:
Żądana konwersja nie jest dostępny.
Konwersja spowodowało obcinania, przepełnienie lub utratę precyzji w zmiennej docelowej.
Wystąpił błąd składni podczas konwertowania ciąg znaków na typ danych numerycznych.
Security Note: |
---|
Należy dokładnie przejrzeć kod źródłowy rozszerzonych procedur przechowywanych oraz przetestować skompilowane biblioteki DLL przed zainstalowaniem ich na serwerze produkcyjnym.Aby uzyskać informacje dotyczące zabezpieczeń Przegląd i testowania zobacz temat to Witryny firmy Microsoft w sieci Web. |