标识符自变量

如果引用标识符参数中的字符串,驱动程序将删除前导和尾随空白,并按字面意思处理引号内的字符串。 如果未引用字符串,驱动程序将删除尾随空白并将字符串折叠为大写。 将标识符参数设置为空指针将返回 SQL_ERROR h和 SQLSTATE HY009(空指针的使用无效),除非参数是目录名称且目录不受支持。

如果 SQL_ATTR_METADATA_ID 语句属性被设置为 SQL_TRUE,则这些参数将被视为标识符参数。 在这种情况下,下划线 (_) 和百分号 (%) 将被视为实际字符,而不是搜索模式字符。 如果此属性设置为 SQL_FALSE,这些参数将被视为普通参数或模式参数,具体取决于参数。

尽管在 SQL 语句中必须引用包含特殊字符的标识符,但在作为目录函数参数传递时不得引用它们,因为传递给目录函数的引号字符将按字面解释。 例如,假设标识符引号(特定于驱动程序并通过 SQLGetInfo 返回)是双引号 (")。 对 SQLTables 的第一次调用将返回一个包含有关应付帐款表的信息的结果集,而第二个调用返回有关“应付帐款”表的信息,该表可能不是预期的。

SQLTables(hstmt1, NULL, 0, NULL, 0, "Accounts Payable", SQL_NTS, NULL, 0);  
SQLTables(hstmt2, NULL, 0, NULL, 0, "\"Accounts Payable\"", SQL_NTS, NULL, 0);  

带引号的标识符用于区分真实列名与同名的伪列,例如 Oracle 中的 ROWID。 如果在目录函数的参数中传递了 "ROWID",则该函数将处理 ROWID 伪列(如果存在)。 如果伪列不存在,该函数将处理 "ROWID" 列。 如果在目录函数的参数中传递了 ROWID,则该函数将处理 ROWID 列。

有关带引号的标识符的详细信息,请参阅带引号的标识符