События
Получите сертификацию в Microsoft Fabric бесплатно!
19 нояб., 23 - 10 дек., 23
В течение ограниченного времени команда сообщества Microsoft Fabric предлагает бесплатные ваучеры dp-600 экзаменов.
Подготовка сейчасЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Соответствия
Представлена версия: соответствие стандартам ODBC 1.0: ODBC
Сводка
SQLColumnPrivileges возвращает список столбцов и связанных привилегий для указанной таблицы. Драйвер возвращает сведения в виде результирующих наборов для указанного оператора StatementHandle.
SQLRETURN SQLColumnPrivileges(
SQLHSTMT StatementHandle,
SQLCHAR * CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR * SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR * TableName,
SQLSMALLINT NameLength3,
SQLCHAR * ColumnName,
SQLSMALLINT NameLength4);
ОператорHandle
[Входные данные] Дескриптор инструкции.
Имя каталога
[Входные данные] Имя каталога. Если драйвер поддерживает имена для некоторых каталогов, но не для других, например, когда драйвер извлекает данные из разных СУБД, пустая строка ("") обозначает эти каталоги, которые не имеют имен. CatalogName не может содержать шаблон поиска строк.
Если для атрибута инструкции SQL_ATTR_METADATA_ID задано значение SQL_TRUE, Имя каталога рассматривается как идентификатор, и его регистр не имеет значения. Если это SQL_FALSE, CatalogName является обычным аргументом; он обрабатывается буквально, и его дело является значительным. Дополнительные сведения см. в разделе "Аргументы" в функциях каталога.
NameLength1
[Входные данные] Длина символов *CatalogName.
Schemaname
[Входные данные] Имя схемы. Если драйвер поддерживает схемы для некоторых таблиц, но не для других, например, когда драйвер извлекает данные из разных СУБД, пустая строка ("") обозначает те таблицы, которые не имеют схем. SchemaName не может содержать шаблон поиска строк.
Если для атрибута инструкции SQL_ATTR_METADATA_ID задано значение SQL_TRUE, имя схемы рассматривается как идентификатор. Если это SQL_FALSE, SchemaName является обычным аргументом; он обрабатывается буквально, и его дело является значительным.
NameLength2
[Входные данные] Длина символов *SchemaName.
TableName
[Входные данные] Имя таблицы. Этот аргумент не может быть пустым указателем. TableName не может содержать шаблон поиска строк.
Если для атрибута инструкции SQL_ATTR_METADATA_ID задано значение SQL_TRUE, TableName обрабатывается как идентификатор, и его регистр не имеет значения. Если это SQL_FALSE, TableName является обычным аргументом; он обрабатывается буквально, и его дело является значительным.
NameLength3
[Входные данные] Длина символов *TableName.
ColumnName
[Входные данные] Шаблон поиска строк для имен столбцов.
Если для атрибута оператора SQL_ATTR_METADATA_ID задано значение SQL_TRUE, ColumnName обрабатывается как идентификатор, и его регистр не имеет значения. Если это SQL_FALSE, ColumnName является аргументом значения шаблона; он обрабатывается буквально, и его случай является значительным.
NameLength4
[Входные данные] Длина символов *ColumnName.
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR или SQL_INVALID_HANDLE.
Когда SQLColumnPrivileges возвращает SQL_ERROR или SQL_SUCCESS_WITH_INFO, связанное значение SQLSTATE может быть получено путем вызова SQLGetDiagRec с handleType SQL_HANDLE_STMT и handle of StatementHandle. В следующей таблице перечислены значения SQLSTATE, которые обычно возвращаются SQLColumnPrivileges и объясняются каждый из них в контексте этой функции. Нотация "(DM)" предшествует описаниям SQLSTATEs, возвращаемых диспетчером драйверов. Возвращаемый код, связанный с каждым значением SQLSTATE, SQL_ERROR, если не указано иное.
SQLSTATE | Error | Description |
---|---|---|
01000 | Общее предупреждение | Информационное сообщение для конкретного драйвера. (Функция возвращает SQL_SUCCESS_WITH_INFO.) |
08S01 | Сбой связи | Связь между драйвером и источником данных, к которому был подключен драйвер, произошел сбой до завершения обработки функции. |
24000 | Недопустимое состояние курсора | Курсор был открыт на операторе StatementHandle, и был вызван SQLFetch или SQLFetchScroll . Эта ошибка возвращается диспетчером драйверов, если SQLFetch или SQLFetchScroll не вернул SQL_NO_DATA и возвращается драйвером, если SQLFetch или SQLFetchScroll вернул SQL_NO_DATA. Курсор был открыт на операторе StatementHandle, но не был вызван SQLFetch или SQLFetchScroll . |
40001 | Сбой сериализации | Транзакция была откатена из-за взаимоблокировки ресурсов с другой транзакцией. |
40003 | Неизвестное завершение инструкции | Связанное соединение завершилось сбоем во время выполнения этой функции, и состояние транзакции невозможно определить. |
HY000 | Общая ошибка | Произошла ошибка, для которой не было определенного SQLSTATE и для которого не было определено значение SQLSTATE для конкретной реализации. Сообщение об ошибке, возвращаемое SQLGetDiagRec в буфере *MessageText , описывает ошибку и ее причину. |
HY001 | Ошибка выделения памяти | Драйверу не удалось выделить память, необходимую для поддержки выполнения или завершения функции. |
HY008 | Операция отменена | Асинхронная обработка была включена для ОператораHandle. Функция была вызвана и до завершения выполнения, SQLCancel или SQLCancelHandle была вызвана на ОператорHandle. Затем функция снова была вызвана на ОператорHandle. Функция была вызвана и до завершения выполнения SQLCancel или SQLCancelHandle была вызвана оператором StatementHandle из другого потока в многопотоковом приложении. |
HY009 | Недопустимое использование указателя NULL | Аргумент TableName был пустым указателем. Для атрибута инструкции SQL_ATTR_METADATA_ID задано значение SQL_TRUE, аргумент CatalogName был пустым указателем, а SQL_CATALOG_NAME InfoType возвращает поддерживаемые имена каталогов. (DM) Атрибут инструкции SQL_ATTR_METADATA_ID был задан как SQL_TRUE, а аргумент SchemaName или ColumnName был пустым указателем. |
HY010 | Ошибка последовательности функций | (DM) Асинхронно выполняющаяся функция была вызвана для дескриптора соединения, связанного с ОператоромHandle. Эта асинхронная функция по-прежнему выполнялась при вызове этой функции. (DM) SQLExecute, SQLExecDirect или SQLMoreResults был вызван для ОператораHandle и возвращен SQL_PARAM_DATA_AVAILABLE. Эта функция была вызвана до получения данных для всех потоковых параметров. (DM) асинхронно выполняющаяся функция (не эта) была вызвана для StatementHandle и по-прежнему выполнялась при вызове этой функции. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations или SQLSetPos были вызваны для ОператораHandle и возвращены SQL_NEED_DATA. Эта функция была вызвана до отправки данных для всех параметров выполнения или столбцов. |
HY013 | Ошибка управления памятью | Не удалось обработать вызов функции, так как к базовым объектам памяти не удалось получить доступ, возможно, из-за низкой памяти. |
HY090 | Недопустимая длина строки или буфера | (DM) Значение одного из аргументов длины имени было меньше 0, но не равно SQL_NTS. |
Значение одного из аргументов длины имени превысило максимальное значение длины соответствующего имени. (См. комментарии.) | ||
HY117 | Подключение приостановлено из-за неизвестного состояния транзакции. Разрешены только функции отключения и только для чтения. | (DM) Дополнительные сведения о приостановленном состоянии см. в статье SQLEndTran Function. |
HYC00 | Необязательный компонент не реализован | Было указано имя каталога, а драйвер или источник данных не поддерживает каталоги. Было указано имя схемы, а драйвер или источник данных не поддерживает схемы. Шаблон поиска строк был указан для имени столбца, и источник данных не поддерживает шаблоны поиска для этого аргумента. Сочетание текущих параметров SQL_CONCURRENCY и атрибутов инструкции SQL_CURSOR_TYPE не поддерживается драйвером или источником данных. Для атрибута инструкции SQL_ATTR_USE_BOOKMARKS задано значение SQL_UB_VARIABLE, а для атрибута инструкции SQL_ATTR_CURSOR_TYPE задан тип курсора, для которого драйвер не поддерживает закладки. |
HYT00 | Время ожидания истекло. | Срок ожидания запроса истек, прежде чем источник данных вернул результирующий набор. Период времени ожидания задается через SQLSetStmtAttr, SQL_ATTR_QUERY_TIMEOUT. |
HYT01 | Время ожидания для подключения истекло | Срок ожидания подключения истек до того, как источник данных ответил на запрос. Период времени ожидания подключения задается через SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT. |
IM001 | Драйвер не поддерживает эту функцию | (DM) Драйвер, связанный с StatementHandle , не поддерживает функцию. |
IM017 | Опрос отключен в асинхронном режиме уведомлений | При использовании модели уведомлений опрос отключается. |
IM018 | SQLCompleteAsync не был вызван для выполнения предыдущей асинхронной операции с этим дескриптором. | Если предыдущий вызов функции дескриптора возвращает SQL_STILL_EXECUTING и если включен режим уведомлений, sqlCompleteAsync должен вызываться на дескрипторе для выполнения последующей обработки и завершения операции. |
SQLColumnPrivileges возвращает результаты в виде стандартного результирующий набор, упорядоченный TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME и PRIVILEGE.
Примечание
SQLColumnPrivileges может не возвращать привилегии для всех столбцов. Например, драйвер может не возвращать сведения о привилегиях для псевдоколонок, таких как Oracle ROWID. Приложения могут использовать любой допустимый столбец независимо от того, возвращается ли он SQLColumnPrivileges.
Длина столбцов VARCHAR не отображается в таблице; фактические длины зависят от источника данных. Чтобы определить фактическую длину столбцов CATALOG_NAME, SCHEMA_NAME, TABLE_NAME и COLUMN_NAME, приложение может вызывать SQLGetInfo с параметрами SQL_MAX_CATALOG_NAME_LEN, SQL_MAX_SCHEMA_NAME_LEN, SQL_MAX_TABLE_NAME_LEN и SQL_MAX_COLUMN_NAME_LEN.
Примечание
Дополнительные сведения об общем использовании, аргументах и возвращаемых данных функций каталога ODBC см. в разделе "Функции каталога".
Следующие столбцы были переименованы для ODBC 3.x. Изменения имени столбца не влияют на обратную совместимость, так как приложения привязываются по номеру столбца.
Столбец ODBC 2.0 | ODBC 3.Столбец x |
---|---|
TABLE_QUALIFIER | TABLE_CAT |
TABLE_OWNER | TABLE_SCHEM |
В следующей таблице перечислены столбцы в результирующем наборе. Дополнительные столбцы за пределами столбца 8 (IS_GRANTABLE) можно определить драйвером. Приложение должно получить доступ к столбцам для конкретного драйвера, отсчитывая от конца результирующего набора, а не указывая явное порядковое положение. Дополнительные сведения см. в разделе "Данные, возвращаемые функциями каталога".
Столбец | Номер столбца | Тип данных | Комментарии |
---|---|---|---|
TABLE_CAT (ODBC 1.0) | 1 | Varchar | Идентификатор каталога; ЗНАЧЕНИЕ NULL, если применимо к источнику данных. Если драйвер поддерживает каталоги для некоторых таблиц, но не для других, например, когда драйвер извлекает данные из разных СУБД, он возвращает пустую строку ("") для тех таблиц, которые не имеют каталогов. |
TABLE_SCHEM (ODBC 1.0) | 2 | Varchar | Идентификатор схемы; ЗНАЧЕНИЕ NULL, если применимо к источнику данных. Если драйвер поддерживает схемы для некоторых таблиц, но не для других, например, когда драйвер получает данные из разных СУБД, он возвращает пустую строку ("") для тех таблиц, которые не имеют схем. |
TABLE_NAME (ODBC 1.0) | 3 | Varchar не NULL | Идентификатор таблицы. |
COLUMN_NAME (ODBC 1.0) | 4 | Varchar не NULL | Имя столбца. Драйвер возвращает пустую строку для столбца, который не имеет имени. |
GRANTOR (ODBC 1.0) | 5 | Varchar | Имя пользователя, которому предоставлена привилегия; ЗНАЧЕНИЕ NULL, если применимо к источнику данных. Для всех строк, в которых значение в столбце GRANTEE является владельцем объекта, столбец GRANTOR будет "_SYSTEM". |
GRANTEE (ODBC 1.0) | 6 | Varchar не NULL | Имя пользователя, которому предоставлена привилегия. |
PRIVILEGE (ODBC 1.0) | 7 | Varchar не NULL | Определяет привилегию столбца. Может быть одним из следующих (или других, поддерживаемых источником данных при определении реализации): SELECT: Участнику разрешено получать данные для столбца. INSERT: Участник может предоставить данные для столбца в новых строках, вставляемых в связанную таблицу. UPDATE: участнику разрешено обновлять данные в столбце. ССЫЛКИ. Участник может ссылаться на столбец в пределах ограничения (например, уникальное, ссылочного или контрольного ограничения таблицы). |
IS_GRANTABLE (ODBC 1.0) | 8 | Varchar | Указывает, разрешено ли участнику предоставлять права другим пользователям; Значение "ДА", "НЕТ" или "NULL", если неизвестно или не применимо к источнику данных. Привилегия предоставляется или не предоставляется, но не оба. Результирующий набор, возвращаемый SQLColumnPrivileges , никогда не будет содержать две строки, для которых все столбцы, кроме столбца IS_GRANTABLE, содержат одно и то же значение. |
Пример кода аналогичной функции см . в статье SQLColumns Function.
Сведения | Раздел |
---|---|
Привязка буфера к столбцу в результирующем наборе | Функция SQLBindCol |
Отмена обработки инструкций | Функция SQLCancel |
Возврат столбцов в таблице или таблицах | Функция SQLColumns |
Получение блока данных или прокрутка результирующий набор | Функция SQLFetchScroll |
Получение нескольких строк данных | Функция SQLFetch |
Возврат привилегий для таблицы или таблиц | Функция SQLTablePrivileges |
Возврат списка таблиц в источнике данных | Функция SQLTables |
События
Получите сертификацию в Microsoft Fabric бесплатно!
19 нояб., 23 - 10 дек., 23
В течение ограниченного времени команда сообщества Microsoft Fabric предлагает бесплатные ваучеры dp-600 экзаменов.
Подготовка сейчас