SQLSpecialColumns -取得特殊 (列 ID) 直欄
SQLSpecialColumns() 會傳回表格的唯一列 ID 資訊 (主要索引鍵或唯一索引)。 例如,唯一索引或主要索引鍵資訊。 此資訊會以 SQL 結果集傳回,您可以使用用來提取 SELECT 陳述式所產生結果集的相同函數來擷取此結果集。
Unicode (UTF-16) 相等: 此函數也可以與 Unicode (UTF-16) 字集搭配使用。 對應的 Unicode 函數為
SQLSpecialColumnsW()。 如需 DB2® CLI 的 Unicode 支援的相關資訊,請參閱 Db2 for i CLI 中的 Unicode 。語法
SQLRETURN SQLSpecialColumns (SQLHSTMT hstmt,
SQLSMALLINT fColType,
SQLCHAR *szCatalogName,
SQLSMALLINT cbCatalogName,
SQLCHAR *szSchemaName,
SQLSMALLINT cbSchemaName,
SQLCHAR *szTableName,
SQLSMALLINT cbTableName,
SQLSMALLINT fScope,
SQLSMALLINT fNullable); 函數引數
| 資料類型 | 引數 | 使用 | 說明 |
|---|---|---|---|
| SQLHSTMT | hstmt | 輸入 | 陳述式控點。 |
| SQLSMALLINT | fCol類型 | 輸入 | 保留供未來使用,以支援其他類型的特殊直欄。 目前已忽略此資料類型。 |
| SQLCHAR * | szCatalog名稱 | 輸入 | 三段式表格名稱的型錄限定元。 這必須是空值指標或零長度字串。 |
| SQLSMALLINT | cbCatalog名稱 | 輸入 | szCatalog名稱的長度。 這必須設為 0。 |
| SQLCHAR * | szSchema名稱 | 輸入 | 指定表格的綱目限定元。 |
| SQLSMALLINT | cbSchema名稱 | 輸入 | szSchema名稱的長度。 |
| SQLCHAR * | szTable名稱 | 輸入 | 表格名稱。 |
| SQLSMALLINT | cbTable名稱 | 輸入 | cbTable名稱的長度。 |
| SQLSMALLINT | fScope | 輸入 | 唯一列 ID 有效的所需持續時間下限。 fScope 必須是下列其中一個值:
|
| SQLSMALLINT | fNullable | 輸入 | 這決定是否傳回可以具有空值的特殊直欄。 必須是下列其中一個值:
|
用法
如果有多種方法可唯一識別表格中的任何列 (例如,如果指定表格上有多個唯一索引) ,則 Db2 for i CLI 會根據其內部準則傳回 最佳 列 ID 直欄集。
如果沒有直欄集容許唯一識別表格中的任何列,則會傳回空的結果集。
會以結果集的形式傳回唯一列 ID 資訊,其中列 ID 的每一個直欄由結果集中的一列代表。
SQLSpecialColumns() 傳回的結果集具有下列直欄,順序如下:| 直欄號碼/名稱 | 資料類型 | 說明 |
|---|---|---|
| 1 個 SCOPE | SMALLINT 不是 NULL | Rowid 的實際範圍。 這包含下列其中一個值:
請參閱 表 1 中的 fScope ,以取得每一個值的說明。 |
| 2 直欄 _ 名稱 | VARCHAR (128) 非空值 | 列 ID 直欄的名稱。 |
| 3 個資料 _ 類型 | SMALLINT 不是 NULL | 直欄的 SQL 資料類型。 |
| 4 TYPE_NAME | VARCHAR (128) 非空值 | 與 DATA_TYPE 直欄值相關的名稱所代表的「資料庫管理系統 (DBMS)」字串。 |
| 5 直欄 MN_SIZE | INTEGER | 直欄的精準度。 對於精準度不適用的資料類型,會傳回空值。 |
| 6 BUFFER_LENGTH | INTEGER | 預設 C 類型所傳回資料的長度 (以位元組為單位)。 對於 CHAR 資料類型,這與 LENGTH_PRECITION 直欄中的值相同。 |
| 7 DECIMAL_DIGITS | SMALLINT | 直欄的小數位數。 如果資料類型的小數位數不適用,則會傳回空值。 |
| 8 虛擬直欄 | SMALLINT | 這指出直欄是否為虛擬直欄; Db2 for i CLI 只會傳回:
|
回覆碼
- SQL_SUCCESS
- SQL_SUCCESS_WITH_INFO
- SQL_ERROR
- SQL_INVALID_HANDLE
診斷
| SQL狀態 | 說明 | 說明 |
|---|---|---|
| 24000 | 無效的游標狀態 | 要求游標相關資訊,但未開啟任何游標。 |
| 40003 * | 陳述式完成不明 | 在函數完成處理之前, CLI 與資料來源之間的通訊鏈結失敗。 |
| HY001 | 記憶體配置失敗 | 驅動程式無法配置支援處理或完成函數所需的記憶體。 |
| HY009 | 無效的引數長度 | 其中一個長度引數的值小於 0 ,但不等於 SQL_NTS。 |
| HY021 | 無效的內部描述子 | 內部描述子無法定址或配置,或包含無效的值。 |
| HYC00 | 驅動程式無法使用 | 資料來源不支援三段式表格名稱的 型錄 部分 (第一部分)。 |