16.4.1 SQLDataSources,SQLDataSourcesW
- 〈この項の構成〉
(1) 機能
次の情報を返します。
-
データソース名
-
データソースに関連づけられたドライバの記述
この関数は,ドライバマネージャで実行できます。HADB ODBCドライバでは,常にSQL_SUCCESSを返す関数としてSQLDataSourcesまたはSQLDataSourcesWを提供しています。
(2) 形式
-
SQLDataSourcesの場合
SQLRETURN SQLDataSources ( SQLHENV EnvironmentHandle, /* In */ SQLUSMALLINT Direction, /* In */ SQLCHAR * ServerName, /* Out */ SQLSMALLINT BufferLength1, /* In */ SQLSMALLINT * NameLength1Ptr, /* Out */ SQLCHAR * Description, /* Out */ SQLSMALLINT BufferLength2, /* In */ SQLSMALLINT * NameLength2Ptr /* Out */ )
-
SQLDataSourcesWの場合
SQLRETURN SQLDataSourcesW ( SQLHENV EnvironmentHandle, /* In */ SQLUSMALLINT Direction, /* In */ SQLWCHAR * ServerName, /* Out */ SQLSMALLINT BufferLength1, /* In */ SQLSMALLINT * NameLength1Ptr, /* Out */ SQLWCHAR * Description, /* Out */ SQLSMALLINT BufferLength2, /* In */ SQLSMALLINT * NameLength2Ptr /* Out */ )
(3) 引数
- EnvironmentHandle:
-
環境ハンドルを指定します。
- Direction:
-
ドライバマネージャがデータソースの情報を取得するときの読み込み方式を指定します。次の値を指定できます。
-
SQL_FETCH_FIRST:一覧の先頭からデータソース名(以降DSN)をフェッチします(ユーザDSN,システムDSNの両方)。
-
SQL_FETCH_FIRST_USER:最初のユーザDSNをフェッチします。
-
SQL_FETCH_FIRST_SYSTEM:最初のシステムDSNをフェッチします。
-
SQL_FETCH_NEXT:一覧の中の次のDSNをフェッチします。対象となるのはFIRSTでフェッチ対象としたDSNと同じ種類のものです(ユーザDSNとシステムDSNの両方,ユーザDSNだけ,またはシステムDSNだけ)。
-
- ServerName:
-
データソース名を返すバッファへのポインタを指定します。
- BufferLength1:
-
*ServerNameバッファの長さ※を指定します。指定が有効になる最大値はSQL_MAX_DSN_LENGTHにNULL終端文字分を足した値です。それより大きい値を指定しても前述の最大値が指定されます。この長さにNULL終端文字は含まれます。
- NameLength1Ptr:
-
*ServerNameの有効な長さ※の合計を格納するバッファへのポインタを指定します。この長さにNULL終端文字は含まれません。
- 重要
-
ここに格納されたデータソース名の長さ※が,BufferLength1からNULL終端文字分を引いた長さ※より大きい場合,*ServerNameに格納される文字列はBufferLength1からNULL終端文字分を引いた長さ※に切り捨てられ,末尾にNULL終端文字が付加されます。
- Description:
-
データソースに関連づけられたドライバの記述(HADBサーバなど)を返すバッファへのポインタを指定します。
- BufferLength2:
-
* Descriptionバッファの長さ※を指定します。
この長さにNULL終端文字は含まれます。
- NameLength2Ptr:
-
*Descriptionに返す有効な長さ※の合計を格納するバッファへのポインタを指定します。この長さにNULL終端文字は含まれません。
- 重要
-
ここに格納されたドライバの記述の長さ※が,BufferLength2からNULL終端文字分を引いた長さ※より大きい場合,* Descriptionに格納される文字列はBufferLength2からNULL終端文字分を引いた長さ※に切り捨てられ,末尾にNULL終端文字が付加されます。
- 注※
-
長さの単位は,SQLDataSourcesの場合はバイト長,SQLDataSourcesWの場合は文字数となります。
(4) 戻り値
SQL_SUCCESSが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
01004 |
文字列データの右側が切り捨てられた |
× |
|
HY000 |
一般エラー |
× |
|
HY001 |
メモリ割り当てエラー |
× |
|
HY013 |
メモリ管理エラー |
× |
|
HY090 |
無効な文字列長または無効なバッファ長 |
× |
|
HY103 |
無効な取得コード |
× |
- (凡例)
-
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。