Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Некоторые аргументы в функциях каталога, например аргумент TableName в SQLTables, принимают шаблоны поиска. Эти аргументы принимают шаблоны поиска, если атрибут инструкции SQL_ATTR_METADATA_ID имеет значение SQL_FALSE; они являются аргументами идентификатора, которые не принимают шаблон поиска, если этот атрибут имеет значение SQL_TRUE.
Символы шаблона поиска:
Символ подчеркивания (_), представляющий любой один символ.
Знак процента (%), представляющий любую последовательность нулевых или более символов.
Специфичный для драйвера символ экранирования, который используется для включения символов подчеркивания, процентов и самого символа экранирования в качестве литералов. Если экранный символ предшествует не специальному символу, экранный символ не имеет особого значения. Если escape-символ предшествует специальному символу, он экранирует специальный символ. Например, "\a" будет рассматриваться как два символа, "\" и "a", но "\%" будет рассматриваться как не специальный одинарный символ "%".
Экранирующий символ извлекается с помощью опции SQL_SEARCH_PATTERN_ESCAPE в SQLGetInfo. Он должен стоять перед любым символом подчеркивания, знаком процента или эскейп-символом в аргументе, который принимает шаблоны поиска, чтобы этот символ воспринимался как литерал. Примеры показаны в следующей таблице.
| Шаблон поиска | Description |
|---|---|
| %A% | Все идентификаторы, содержащие букву A |
| ABC_ | Все четыре идентификатора символов, начиная с ABC |
| ABC\_ | Идентификатор ABC_, предполагая, что escape-символ является обратной косой чертой (\) |
| \\% | Все идентификаторы, начинающиеся с обратной косой черты (\), при условии, что экранирующий символ — это обратная косая черта. |
Необходимо учитывать, чтобы избежать символов шаблона поиска в аргументах, которые принимают шаблоны поиска. Это особенно верно для символа подчеркивания, который обычно используется в идентификаторах. Распространенная ошибка в приложениях заключается в том, чтобы получить значение из одной функции каталога и передать это значение в аргумент шаблона поиска в другой функции каталога. Например, предположим, что приложение извлекает имя таблицы MY_TABLE из результирующего набора для SQLTables и передает это в SQLColumns , чтобы получить список столбцов в MY_TABLE. Вместо получения столбцов для MY_TABLE приложение получит столбцы для всех таблиц, соответствующих шаблону поиска MY_TABLE, например MY_TABLE, MY1TABLE, MY2TABLE и т. д.
Замечание
ODBC 2. Драйверы x не поддерживают шаблоны поиска в аргументе CatalogName в SQLTables. Драйверы ODBC 3*.x* принимают шаблоны поиска в этом аргументе, если атрибут среды SQL_ATTR_ ODBC_VERSION имеет значение SQL_OV_ODBC3; Они не принимают шаблоны поиска в этом аргументе, если задано значение SQL_OV_ODBC2.
Передача указателя NULL в аргумент шаблона поиска не ограничивает поиск этого аргумента; То есть указатель null и шаблон поиска % (любые символы) эквивалентны. Однако шаблон поиска нулевой длины ( то есть допустимый указатель на строку нулевой длины — соответствует только пустой строке ("").