Данные, возвращаемые функциями каталога

Каждая функция каталога возвращает данные в виде результирующих наборов. Этот результирующий набор отличается от любого другого результирующий набор. Обычно он создается предопределенной параметризованной инструкцией SELECT, которая жестко закодирована в драйвере или хранится в процедуре в источнике данных. Сведения о том, как получить данные из результирующий набор, см. в разделе "Создано результирующий набор?".

Результирующий набор для каждой функции каталога описан в справочной записи для этой функции. Помимо перечисленных столбцов результирующий набор может содержать столбцы, относящиеся к драйверу, после последнего предопределенного столбца. Эти столбцы (если таковые имеются) описаны в документации по драйверу.

Приложения должны привязывать столбцы, относящиеся к драйверу, относительно конца результирующего набора. То есть они должны вычислить число столбцов, относящихся к драйверу, как число последнего столбца, полученного с помощью SQLNumResultCols , меньше количества столбцов, происходящих после обязательного столбца. Это позволяет изменить приложение при добавлении новых столбцов в результирующий набор в будущих версиях ODBC или драйвера. Чтобы эта схема работала, драйверы должны добавлять новые столбцы для конкретного драйвера перед старыми столбцами для конкретного драйвера, чтобы номера столбцов не изменялись относительно конца результирующего набора.

Идентификаторы, возвращаемые в результирующем наборе, не кавычекируются, даже если они содержат специальные символы. Например, предположим, что символ кавычки идентификатора (который является драйвером и возвращен через SQLGetInfo) является двойным кавычками (") и таблица "Счетная оплата" содержит столбец с именем "Имя клиента". В строке, возвращаемой SQLColumns для этого столбца, значение столбца TABLE_NAME — "Счетная плата", а не "Счетная оплата", а значение столбца COLUMN_NAME — "Имя клиента", а не "Имя клиента". Чтобы получить имена клиентов в таблице с оплатой счетов, приложение будет цитировать следующие имена:

SELECT "Customer Name" FROM "Accounts Payable"  

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

Функции каталога основаны на модели авторизации, подобной SQL, в которой соединение выполняется на основе имени пользователя и пароля, а также только данных, для которых пользователь имеет привилегию. Защита паролей отдельных файлов, которые не вписываются в эту модель, определяется драйвером.

Результирующие наборы, возвращаемые функциями каталога, почти никогда не обновляются, и приложения не должны ожидать изменения структуры базы данных путем изменения данных в этих результирующих наборах.