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


SQLTables

Метод SQLTables может быть выполнен для статического серверного курсора. При попытке выполнить метод SQLTables для обновляемого (динамического или набора ключей) курсора будет возвращено значение SQL_SUCCESS_WITH_INFO, которое указывает на то, что тип курсора был изменен.

Функция SQLTables сообщает о таблицах из всех баз данных, в которых параметр CatalogName имеет значение SQL_ALL_CATALOGS, а остальные параметры содержат значения по умолчанию (указатели NULL).

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

Драйвер ODBC для собственного клиента SQL Server поддерживает выдачу сведений о таблицах, находящихся на связанных серверах, принимая двухкомпонентное имя в параметре CatalogName: Linked_Server_Name.Catalog_Name.

Функция SQLTables возвращает сведения о всех таблицах, имена которых соответствуют TableName и которые принадлежат текущему пользователю.

Функция SQLTables и возвращающие табличное значение параметры

Если атрибут инструкции SQL_SOPT_SS_NAME_SCOPE имеет значение SQL_SS_NAME_SCOPE_TABLE_TYPE, а не значение по умолчанию (SQL_SS_NAME_SCOPE_TABLE), функция SQLTables возвращает сведения о табличных типах. Значение TABLE_TYPE, возвращаемое для табличного типа, в столбце 4 результирующего набора функции SQLTables имеет тип TABLE TYPE. Дополнительные сведения о SQL_SOPT_SS_NAME_SCOPE см. в разделе SQLSetStmtAttr.

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

Дополнительные сведения о возвращающих табличное значение параметрах см. в разделе Возвращающие табличное значение параметры (ODBC).

Пример

// Get a list of all tables in the current database.
SQLTables(hstmt, NULL, 0, NULL, 0, NULL, 0, NULL,0);

// Get a list of all tables in all databases.
SQLTables(hstmt, (SQLCHAR*) "%", SQL_NTS, NULL, 0, NULL, 0, NULL,0);

// Get a list of databases on the current connection's server.
SQLTables(hstmt, (SQLCHAR*) "%", SQL_NTS, (SQLCHAR*)"", 0, (SQLCHAR*)"",
    0, NULL, 0);

См. также

Основные понятия

Подробности реализации API-интерфейса ODBC

Другие ресурсы

Функция SQLTables