共用方式為


資料緩衝區長度

應用程式會將資料緩衝區的位元組長度傳遞至引數 (名為 BufferLength 或類似名稱) 中的驅動程式。 例如,在下列對 SQLBindCol 的呼叫中,應用程式會指定 ValuePtr 緩衝區的長度 (sizeof (ValuePtr)):

SQLCHAR      ValuePtr[50];  
SQLINTEGER   ValueLenOrInd;  
SQLBindCol(hstmt, 1, SQL_C_CHAR, ValuePtr, sizeof(ValuePtr), &ValueLenOrInd);  

針對任何具有輸出字串引數的函式,驅動程式一律會傳回其緩衝區長度引數中的位元組數目,而不是字元數目。

只有輸出緩衝區才需要資料緩衝區長度;驅動程式會使用這些長度來避免寫入時超過緩衝區結尾。 不過,只有在緩衝區包含可變長度的資料 (例如字元或二進位資料) 時,驅動程式才會檢查資料緩衝區長度。 如果緩衝區包含的是固定長度的資料 (例如整數或日期結構),驅動程式便會忽略資料緩衝區長度,並假設緩衝區的空間足以容納該資料;也就是說,其永遠不會截斷固定長度的資料。 因此,應用程式必須配置足以容納固定長度資料的緩衝區空間。

非資料輸出字串遭到截斷時 (例如 SQLGetCursorName 所傳回的資料指標名稱),緩衝區長度引數中所傳回的長度是可能的最大字元長度。

輸入緩衝區不需要資料緩衝區長度,因為驅動程式不會寫入到這些緩衝區。

此章節包含下列主題。