SQLTables
SQLTables は静的サーバー カーソルで実行できます。 更新可能なカーソル (動的カーソルまたはキーセット カーソル) で SQLTables を実行しようとすると、カーソルの種類が変更されていることを示す SQL_SUCCESS_WITH_INFO が返されます。
CatalogName パラメーターに SQL_ALL_CATALOGS を指定し、他のすべてのパラメーターに既定値 (NULL ポインター) を指定すると、SQLTables は、すべてのデータベースのテーブルを報告します。
SQLTables では、使用可能なカタログ、スキーマ、およびテーブル型を報告するために、空文字列 (長さが 0 バイトのポインター) を特別に使用します。 空文字列は、既定値 (NULL ポインター) ではありません。
SQL Server Native Client ODBC ドライバーは、CatalogName パラメーターについて 2 部構成の名前 (Linked_Server_Name.Catalog_Name) を受け入れることにより、リンク サーバーのテーブルに関する情報の報告をサポートしています。
SQLTables は、TableName と名前が一致し、現在のユーザーが所有するテーブルに関する情報を返します。
SQLTables とテーブル値パラメーター
ステートメント属性 SQL_SOPT_SS_NAME_SCOPE の値が、既定値の SQL_SS_NAME_SCOPE_TABLE ではなく SQL_SS_NAME_SCOPE_TABLE_TYPE である場合、SQLTables はテーブル型に関する情報を返します。 SQLTables によって返される結果セットの列 4 でテーブル型に対して返される TABLE_TYPE 値は 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);