識別碼引數
如果以引號括住識別項引數中的字串,驅動程式會移除開頭和結尾的空白,並將引號內的字串視為字面上的意思。 如果字串未加上引號,驅動程式會移除尾端空白,並將字串摺疊成大寫。 若將識別項引數設定為 null 指標,除非引數是目錄名稱且目錄不受支援,否則會傳回 SQL_ERROR 和 SQLSTATE HY009 (無效 null 指標使用方式)。
如果 SQL_ATTR_METADATA_ID 陳述式屬性設定為 SQL_TRUE,系統會將這些引數視為識別項引數。 在此情況下,會將底線 (_) 和百分比符號 (%) 視為實際字元,而不是搜尋模式字元。 如果此屬性設定為 SQL_FALSE,則會將這些引數視為一般引數或模式引數。
雖然包含特殊字元的識別項必須在 SQL 陳述式中加上引號,但是當傳遞為目錄函式引數時不能加上引號,因為傳遞至目錄函式的引號字元會解譯為字面上的意思。 例如,假設識別項引號字元 (驅動程式特有,會透過 SQLGetInfo 傳回) 為雙引號 (")。 第一次呼叫 SQLTables 會傳回結果集,其中包含 Accounts Payable 資料表的相關資訊,第二個呼叫則會傳 "Accounts Payable" 資料表的相關資訊,這可能不是預期的結果集。
SQLTables(hstmt1, NULL, 0, NULL, 0, "Accounts Payable", SQL_NTS, NULL, 0);
SQLTables(hstmt2, NULL, 0, NULL, 0, "\"Accounts Payable\"", SQL_NTS, NULL, 0);
引號識別項可用來區別 true 資料行名稱與相同名稱的虛擬資料行,例如 Oracle 中的 ROWID。 如果在目錄函式的引數中傳遞 "ROWID",函式會使用 ROWID 虛擬資料行 (如果存在)。 如果虛擬資料行不存在,函式會使用 "ROWID" 資料行。 如果在目錄函式的引數中傳遞 ROWID,函式會使用 ROWID 資料行。
如需引號識別項的詳細資訊,請參閱引號識別項。