srv_describe (API Rozszerzonych Procedur Przechowywanych)

Dotyczy:SQL Server

Important

Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zamiast tego użyj integracji CLR.

Definiuje nazwę kolumny oraz typy danych źródłowe i docelowe dla konkretnej kolumny w wierszu.

Syntax

  
int srv_describe (  
SRV_PROC *  
srvproc  
,  
int  
colnumber  
,  
DBCHAR *  
column_name  
,  
int  
namelen  
,  
DBINT  
desttype  
,  
DBINT  
destlen  
,  
DBINT  
srctype  
,  
DBINT  
srclen  
,  
void *  
srcdata  
);  

Arguments

srvproc
Jest wskaźnikiem do struktury SRV_PROC, która jest uchwytem dla konkretnego połączenia klienta (w tym przypadku klienta wysyłającego wiersz). Struktura zawiera wszystkie informacje, które biblioteka API Extended Stored Procedure wykorzystuje do zarządzania komunikacją i danymi między aplikacją a klientem.

colnumber
Obecnie nie jest obsługiwany. Kolumny muszą być opisane w kolejności. Wszystkie kolumny muszą być opisane przed srv_sendrow wywołaniem.

column_name
Określa nazwę kolumny, do której należą dane. Ten parametr może być NULL, ponieważ kolumna nie musi mieć nazwy.

Namelen
Określa długość column_name w bajtach. Jeśli namelen jest SRV_NULLTERM, to column_name musi być zakończony zerowo.

Desttype
Określa typ danych kolumny wiersza docelowego. To jest typ danych wysyłany do klienta. Typ danych musi być określony nawet jeśli dane są NULL; więcej informacji można znaleźć w artykule Data Types (Extended Stored Procedure API).

Destlen
Określa długość danych wysyłanych do klienta, wyrażoną w bajtach. Dla typów danych o stałej długości, które nie dopuszczają wartości zerowych, destlen jest ignorowany. Dla typów danych o zmiennej długości oraz o stałej długości, które pozwalają na wartości zerowe, destlen określa maksymalną długość, jaką mogą mieć dane docelowe.

SCCTYPE
Określa typ danych źródłowych.

srclen
Określa długość danych źródłowych w bajtach. Ta wartość jest pomijana dla typów danych o stałej długości.

srcdata
Dostarcza adres danych źródłowych dla konkretnej kolumny. Gdy srv_sendrow jest wywoływany, szuka danych o colnumerze w srcdata. Dlatego nie powinno być uwalniane przed wezwaniem do srv_sendrow. Adres danych źródłowych można zmieniać między wywołaniami na srv_sendrow za pomocą srv_setcoldata. Pamięć przydzielona na srcdata nie powinna być zwalniana, dopóki dane kolumny nie zostaną zastąpione kolejnym wywołaniem do srv_setcoldata lub dopóki srv_senddone nie zostanie wywołane.

Jeśli typ desttype jest SRVDECIMAL lub SRVNUMERIC, parametr srcdata musi być wskaźnikiem do struktury DBNUMERIC lub DBDECIMAL, z polami precyzji i skali struktury już ustawionymi na pożądane wartości. Możesz użyć DEFAULTPRECISION do określenia domyślnej precyzji oraz DEFAULTSCALE do określenia domyślnej skali.

Zwroty

Numer opisanej kolumny. Pierwsza kolumna to kolumna 1. Jeśli wystąpi błąd, zwraca 0.

Remarks

Funkcję srv_describe trzeba wywołać raz dla każdej kolumny w wierszu przed pierwszym wywołaniem srv_sendrow. Kolumny wiersza można opisać w dowolnej kolejności.

Aby zmienić położenie i długość danych źródłowych w wierszach kolumn przed wysłaniem pełnego zbioru wyników, użyj odpowiednio srv_setcoldata i srv_setcollen.

Aby uzyskać opis typów danych oraz konwersji typów danych API Extended Store Procedure, zobacz Typy danych (Extended Stored Procedure API).

Jeśli nazwa kolumny w twojej aplikacji jest w Unicode, musisz ją przekonwertować na stronę kodową serwera wielobajtową przed wywołaniem srv_describe. Więcej informacji można znaleźć w sekcji Dane Unicode i strony kodowe serwera.

Important

Powinieneś dokładnie przejrzeć kod źródłowy rozszerzonych procedur przechowywanych i przetestować skompilowane pliki DLL przed instalacją ich na serwerze produkcyjnym. Informacje o przeglądzie i testowaniu bezpieczeństwa znajdziesz na tej stronie internetowej Microsoft.