Поделиться через


Аргументы идентификатора

Если строка в аргументе идентификатора содержится в кавычках, драйвер удаляет начальные и конечные пробелы и обрабатывает буквально строку в кавычках. Если строка не указана, драйвер удаляет конечные пробелы и сворачивать строку в верхний регистр. Установка аргумента идентификатора в значение null возвращает значение SQL_ERROR и SQLSTATE HY009 (недопустимое использование указателя NULL), если аргумент не является именем каталога и каталогами.

Эти аргументы рассматриваются как аргументы идентификатора, если атрибут инструкции 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);  

Кавычекные идентификаторы используются для отличия имени истинного столбца от псевдоколонна того же имени, например ROWID в Oracle. Если параметр ROWID передается в аргументе функции каталога, функция будет работать с псевдоколонкой ROWID, если она существует. Если псевдоколонец не существует, функция будет работать с столбцом ROWID. Если ROWID передается в аргументе функции каталога, функция будет работать со столбцом ROWID.

Дополнительные сведения об идентификаторах с кавычками см. в разделе "Кавычки идентификаторов".