Bagikan melalui


srv_paramset (EXTENDED Stored Procedure API)

Berlaku untuk: SQL Server

Penting

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan integrasi CLR sebagai gantinya.

Mengatur nilai parameter pengembalian panggilan prosedur tersimpan jarak jauh. Fungsi ini telah digantikan oleh fungsi srv_paramsetoutput .

Sintaks

  
int srv_paramset (  
SRV_PROC *  
srvproc  
,  
int  
n  
,   
void *  
data  
,  
int  
len   
);  

Argumen

srvproc
Adalah penunjuk ke struktur SRV_PROC yang merupakan handel untuk koneksi klien tertentu (dalam hal ini, handel yang menerima panggilan prosedur tersimpan jarak jauh). Struktur berisi informasi yang digunakan pustaka EXTENDED Stored Procedure API untuk mengelola komunikasi dan data antara aplikasi dan klien.

n
Menunjukkan jumlah parameter yang akan diatur. Parameter pertama adalah 1.

data
Adalah penunjuk ke nilai data yang akan dikirim kembali ke klien sebagai parameter pengembalian prosedur tersimpan jarak jauh.

Len
Menentukan panjang aktual data yang akan dikembalikan. Jika jenis data parameter memiliki panjang konstan dan tidak mengizinkan nilai null (misalnya, srvbit atau srvint1), len diabaikan.

Mengembalikan

BERHASIL jika nilai parameter berhasil diatur; jika tidak, FAIL. FAIL dikembalikan ketika tidak ada prosedur tersimpan jarak jauh saat ini, ketika tidak ada parameter prosedur tersimpan jarak jauh nth, ketika parameter bukan parameter pengembalian, dan ketika argumen len tidak legal.

Jika len adalah 0, lensamengembalikan NULL. Mengatur lensa ke 0 adalah satu-satunya cara untuk mengembalikan NULL ke klien.

Fungsi ini mengembalikan nilai berikut, jika parameter adalah salah satu jenis data Microsoft SQL Server 2005 (9.x).

Jenis data baru Mengembalikan panjang data
BITN NULL: len = 0, data = IG, RET = 0

NOL: N/A

>=255: N/A

<255: N/A
BIGVARCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k, data = valid, RET = 1
BIGCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k, data = valid, RET = 1
BIGBINARY NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k, data = valid, RET = 1
BIGVARBINARY NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k, data = valid, RET = 1
NCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k, data = valid, RET = 1
NVARCHAR NULL: len = 0, data = IG, RET = 1

ZERO: len = IG, data = IG, RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k, data = valid, RET = 1
NTEXT NULL: len = IG, data = IG, RET = 0

ZERO: len = IG, data = IG, RET = 0

>=255: len = IG, data = IG, RET = 0

<255: len = IG, data = IG, RET = 0
RET = Mengembalikan nilai srv_paramset
IG = Nilai akan diabaikan
valid = Setiap penunjuk yang valid ke data

Keterangan

Parameter berisi data yang diteruskan antara klien dan aplikasi dengan prosedur tersimpan jarak jauh. Klien dapat menentukan parameter tertentu sebagai parameter pengembalian. Parameter pengembalian ini dapat berisi nilai yang diteruskan kembali oleh aplikasi server Open Data Services ke klien. Menggunakan parameter pengembalian dianalogikan untuk meneruskan parameter berdasarkan referensi.

Anda tidak dapat mengatur nilai pengembalian untuk parameter yang tidak dipanggil sebagai parameter pengembalian. Anda dapat menggunakan srv_paramstatus untuk menentukan bagaimana parameter dipanggil.

Fungsi ini mengatur nilai pengembalian untuk parameter tetapi tidak benar-benar mengirim nilai pengembalian ke klien. Semua parameter pengembalian, apakah nilai pengembaliannya telah diatur dengan srv_paramset atau tidak, secara otomatis dikirim ke klien ketika srv_senddone dipanggil dengan bendera status SRV_DONE_FINAL diatur.

Ketika panggilan prosedur tersimpan jarak jauh dilakukan dengan parameter, parameter dapat diteruskan baik berdasarkan nama atau berdasarkan posisi (tidak disebutkan namanya). Jika panggilan prosedur tersimpan jarak jauh dilakukan dengan beberapa parameter yang diteruskan oleh nama dan beberapa diteruskan oleh posisi, kesalahan terjadi. Handler SRV_RPC masih dipanggil, tetapi muncul seolah-olah tidak ada parameter, dan srv_rpcparams mengembalikan 0.

Penting

Anda harus meninjau kode sumber prosedur tersimpan yang diperluas secara menyeluruh, dan Anda harus menguji DLL yang dikompilasi sebelum menginstalnya di server produksi. Untuk informasi tentang peninjauan dan pengujian keamanan, lihat situs Web Microsoft ini.

Lihat Juga

srv_paramsetoutput (EXTENDED Stored Procedure API)