Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Некоторые аргументы в функциях каталога, например аргумент TableName в SQLTables, принимают шаблоны поиска. Эти аргументы принимают шаблоны поиска, если атрибут инструкции SQL_ATTR_METADATA_ID имеет значение SQL_FALSE; они являются аргументами идентификатора, которые не принимают шаблон поиска, если этот атрибут имеет значение SQL_TRUE.
Символы шаблона поиска:
Символ подчеркивания (_), представляющий любой один символ.
Знак процента (%) представляет любую последовательность нулевых или более символов.
Escape-символ, который относится к драйверу и используется для включения символов подчеркивания, процентов и escape-символа в качестве литерала. Если экранный символ предшествует не специальному символу, экранный символ не имеет особого значения. Если escape-символ предшествует специальному символу, он экранирует специальный символ. Например, "\a" будет рассматриваться как два символа, "\" и "a", но "\%" будет рассматриваться как не специальный одинарный символ "%".
Экранный символ извлекается с параметром SQL_SEARCH_PATTERN_ESCAPE в SQLGetInfo. Он должен предшествовать любому символу подчеркивания, знака процента или escape-символа в аргументе, который принимает шаблоны поиска для включения этого символа в качестве литерала. Примеры показаны в следующей таблице.
| Шаблон поиска | Description |
|---|---|
| %A% | Все идентификаторы, содержащие букву A |
| ABC_ | Все четыре идентификатора символов, начиная с ABC |
| ABC\_ | Идентификатор ABC_, предполагая, что escape-символ является обратной косой чертой (\) |
| \\% | Все идентификаторы, начиная с обратной косой черты (\), предполагая, что 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 и шаблон поиска % (любые символы) эквивалентны. Однако шаблон поиска нулевой длины ( то есть допустимый указатель на строку нулевой длины — соответствует только пустой строке ("").