ページの先頭行へ戻る
Symfoware Server V12.7.0 アップデート情報
FUJITSU Software

3.55 SQLTables関数の仕様変更

変更内容

ODBCのSQLTables関数にSQL_ALL_CATALOGS、SQL_ALL_SCHEMAS、およびSQL_ALL_TABLE_TYPESを指定した場合の返却値を変更します。

非互換

ODBCのSQLTables関数にSQL_ALL_CATALOGS、SQL_ALL_SCHEMAS、およびSQL_ALL_TABLE_TYPESを指定した場合の返却値が以下のように変更になります。

第2引数

第4引数

第6引数

第8引数

返却値

9.2.0以前

V10.0.0以降

SQL_ALL_CATALOGS

空の文字列

空の文字列

任意

テーブル一覧

カタログ名一覧
カタログ名以外はNULL

空の文字列

SQL_ALL_SCHEMAS

空の文字列

任意

スキーマ名一覧
スキーマ名以外はNULL

空の文字列

空の文字列

空の文字列

SQL_ALL_TABLE_TYPES

テーブル種別一覧
テーブル種別以外はNULL

備考.SQL_ALL_CATALOGSを指定した場合、V10.0.0以降はカタログ名の重複を排除した結果が返却されます。
SQL_ALL_SCHEMASを指定した場合、V10.0.0以降はスキーマ名の重複を排除した結果が返却されます。
SQL_ALL_TABLE_TYPESを指定した場合、V10.0.0以降はテーブル種別の重複を排除した結果が返却されます。


以下にSQLTables関数にSQL_ALL_CATALOGSを指定してカタログ名一覧を取得する場合の返却値の例を示します。

表3.7 定義した表の一覧

カタログ名

スキーマ名

テーブル名

DB1

S1

T1(実表)

DB1

S1

T2(実表)

DB1

S2

T3(実表)

DB2

S3

T4(ビュー表)


表3.8 9.2.0以前の返却値

TABLE_CAT

TABLE_SCHEM

TABLE_NAME

TABLE_TYPE

REMARKS

DB1

S1

T1

TABLE

NULL

DB1

S1

T2

TABLE

NULL

DB1

S2

T3

TABLE

NULL

DB2

S3

T4

VIEW

NULL


表3.9 V10.0.0以降の返却値

TABLE_CAT

TABLE_SCHEM

TABLE_NAME

TABLE_TYPE

REMARKS

DB1

NULL

NULL

NULL

NULL

DB2

NULL

NULL

NULL

NULL


対処方法

9.2.0以前と同様の動作としたい場合、ODBCデータソースのオプションとして、CLI_SQLTABLES_COMPATIBLEにYESを設定してください。

指定形式
CLI_SQLTABLES_COMPATIBLE={YES|NO}
省略時
CLI_SQLTABLES_COMPATIBLE=NO
パラメタの意味
YES:

SQL_ALL_CATALOGS、SQL_ALL_SCHEMAS、SQL_ALL_TABLE_TYPESを指定した場合、カタログ名、スキーマ名、テーブル名、テーブル種別をすべて返却します。

NO:

SQLTables関数の第2引数にSQL_ALL_CATALOGSを指定し、第4引数のスキーマ名、第6引数のテーブル名に空の文字列を指定した場合、カタログ名のみ返却し、その他の列はNULLを返却します。

SQLTables関数の第4引数にSQL_ALL_SCHEMASを指定し、第2引数のカタログ名、第6引数のテーブル名に空の文字列を指定した場合、スキーマ名のみ返却し、その他の列はNULLを返却します。

SQLTables関数の第8引数にSQL_ALL_TABLE_TYPESを指定し、第2引数のカタログ名、第4引数のスキーマ名、第6引数のテーブル名に空の文字列を指定した場合、テーブル種別のみ返却し、その他の列はNULLを返却します。