共用方式為


srv_describe (擴充預存程式 API)

適用於:SQL Server

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CLR 整合。

定義數據列中特定數據行的數據行名稱和來源和目的地數據類型。

語法

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

引數

srvproc
這是特定客戶端連接句柄之SRV_PROC結構的指標(在此案例中為傳送數據列的用戶端)。 結構包含擴充預存程式 API 連結庫用來管理應用程式與客戶端之間的通訊和數據的所有資訊。

colnumber
目前不支援。 數據行必須依序描述。 呼叫 srv_sendrow之前,必須先描述所有數據行。

column_name
指定數據所屬資料列的名稱。 此參數可以是 NULL,因為資料行不需要有名稱。

namelen
指定column_name的長度,以位元組為單位。 如果 namelen 是SRV_NULLTERM,則必須 以 null 終止column_name

desttype
指定目的地數據列數據行的數據類型。 這是傳送至客戶端的數據類型。 即使數據為 NULL,也必須指定資料類型,如需詳細資訊,請參閱數據類型(擴充預存程式 API)。

destlen
指定要傳送至用戶端之數據的長度,以位元組為單位。 若為不允許 Null 值的固定長度數據類型, 則會忽略 destlen 。 針對允許 Null 值的可變長度數據類型和固定長度數據類型, destlen 會指定目的地數據可以的最大長度。

srctype
指定源數據的數據類型。

srclen
指定源數據的長度,以位元組為單位。 固定長度數據類型會忽略此值。

srcdata
提供特定數據行的源數據位址。 呼叫srv_sendrow時,它會在 srcdata 中尋找 colnumber 的數據。 因此,在呼叫 srv_sendrow 之前,不應該釋放它。 您可以使用 srv_setcoldata,在呼叫srv_sendrow之間變更源數據位址。 除非數據行數據被另一個呼叫取代為 srv_setcoldata,或呼叫srv_senddone否則不應該釋放配置給 srcdata 的記憶體。

如果 desttype 是 SRVDECIMAL 或 SRVNUMERIC,srcdata 參數必須是 DBNUMERIC 或 DBDECIMAL 結構的指標,且結構的有效位數和小數位數位段已設定為您想要的值。 您可以使用 DEFAULTPRECISION 來指定預設有效位數,而 DEFAULTSCALE 則指定預設小數位數。

傳回

描述的數據行數目。 第一個數據行是第 1 欄。 如果發生錯誤,則傳回 0。

備註

第一次呼叫 srv_sendrow 之前,必須先針對數據列中的每個數據行呼叫srv_describe函式一次。 數據列的數據行可以依任何順序加以描述。

若要在傳送完整結果集之前變更數據行數據的位置和長度,請分別使用 srv_setcoldatasrv_setcollen

如需數據類型和擴充預存程式 API 資料類型轉換的描述,請參閱數據類型(擴充預存程式 API)。

如果應用程式中的數據行名稱位於 Unicode 中,您必須先將它轉換成伺服器的多位元組代碼頁,再呼叫 srv_describe。 如需詳細資訊,請參閱 Unicode 資料和伺服器代碼頁

重要

您應該徹底檢閱擴充預存程式的原始程式碼,而且您應該先測試已編譯的 DLL,再於實際執行伺服器上安裝它們。 如需安全性檢閱和測試的相關信息,請參閱此 Microsoft網站

另請參閱

srv_sendrow (擴充預存程式 API)
srv_setutype (擴充預存程式 API)
srv_setcoldata (擴充預存程式 API)