SQLGetLength -擷取字串值的長度
SQLGetLength()
用來擷取大型物件定位器所參照之大型物件值的長度。 在現行交易期間,已從資料來源傳回大型物件定位器 (作為提取或 SQLGetSubString()
呼叫的結果)。
語法
SQLRETURN SQLGetLength (SQLHSTMT StatementHandle,
SQLSMALLINT LocatorCType,
SQLINTEGER Locator,
SQLINTEGER *StringLength,
SQLINTEGER *IndicatorValue);
函數引數
資料類型 | 引數 | 使用 | 說明 |
---|---|---|---|
SQLHSTMT | StatementHandle | 輸入 | 陳述式控點。 這可以是任何已配置但目前未指派備妥陳述式的陳述式控點。 |
SQLSMALLINT | LocatorCType | 輸入 | 來源 LOB 定位器的 C 類型。
|
SQLINTEGER | 定位器 | 輸入 | 必須設為 LOB 定位器值。 |
SQLINTEGER * | StringLength | 輸出 | 指定定位器的長度。1 如果指標設為 NULL ,則會傳回 SQLSTATE HY009。 |
SQLINTEGER * | IndicatorValue | 輸出 | 一律設為零。 |
1. 即使 DBCLOB 資料也以位元組為單位。 |
用法
SQLGetLength()
可用來決定 LOB 定位器所代表的資料值長度。 應用程式會使用它來判斷所參照 LOB 值的整體長度,以便可以選擇適當的策略來取得部分或所有 LOB 值。
Locator 引數可以包含任何有效的 LOB 定位器,這些定位器未使用 FREE LOCATOR 陳述式明確釋放,也未隱含釋放,因為建立它的交易已終止。
陳述式控點不得與任何備妥陳述式或型錄函數呼叫相關聯。
Db2® for i 在沒有隔離層次執行時,限制使用 LOB 定位器。
回覆碼
- SQL_SUCCESS
- SQL_SUCCESS_WITH_INFO
- SQL_ERROR
- SQL_INVALID_HANDLE
錯誤狀況
SQL狀態 | 說明 | 說明 |
---|---|---|
07006 | 轉換無效 | 引數LocatorCType 與 Locator 的組合無效。 |
0F001 | 無效的 LOB 變數 | 指定給引數 Locator 的值未與 LOB 定位器相關聯。 |
58004 | 非預期的系統失敗 | 無法復原的系統錯誤。 |
HY003 | 程式類型超出範圍 | 引數 LocatorCType 不是 SQL_C_CLOB_LOCATOR、SQL_C_BLOB_LOCATOR 或 SQL_C_DBCLOB_LOCATOR 之一。 |
HY009 | 無效的引數值 | 引數 StringLength 或 IndicatorValue 是空值指標。 |
HY010 | 函數順序錯誤 | 指定的引數 StatementHandle 未處於 allocated 狀態。 |
HY021 | 無效的內部描述子 | 內部描述子無法定址或配置,或包含無效的值。 |
HYC00 | 驅動程式無法使用 | 應用程式目前連接至不支援大型物件的資料來源。 |
限制
當連接至不支援「大型物件」的 DB2® 伺服器時,無法使用此功能。