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


SQLTables

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

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

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

Драйвер 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);

См. также

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

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