Distributed Tuning Interface のリファレンス : PvGetDSNEx2()
 
このページをシェアする                  
PvGetDSNEx2()
データ ソース名(DSN)に関する情報を取得します。この関数は、データのエンコード オプションが取得されることを除けば、PvGetDSNEx() とまったく同じです。
ヘッダー ファイル:catalog.h(ヘッダー ファイルも参照)
関数が最初に利用可能になるライブラリ:w3dbav90.dll(Windows)、libpsqldti.so(Linux)、libpsqldti.dylib(macOS)(リンク ライブラリも参照)
この関数を Zen v11 以降のバージョンで使用することは推奨されません。クライアント DSN を使った作業には、ODBC API を使用してください。
構文
BTI_API PvGetDSNEx2(
   BTI_LONG           hConnection,
   BTI_CHAR_PTR       dsnName,
   BTI_ULONG_PTR      pdsnDescSize,
   BTI_CHAR_PTR       dsnDesc,
   BTI_ULONG_PTR      pdsnDBQSize,
   BTI_CHAR_PTR       dsnDBQ,
   BTI_LONG_PTR       pOpenMode,
   BTI_LONG_PTR       translate);
引数
 
In
hConnection
サーバーを識別する接続ハンドル。接続ハンドルは PvConnectServer() 関数によって取得されます。
In
dsnName
データ ソース名。DSN の一覧は、PvListDSNs() 関数を使って取得できます。
In/Out
pdsnDescSize
DSN の説明のバッファーのサイズを格納する、符号なし Long 型のアドレス。DSN の説明の実際のサイズを受け取ります。
Out
dsnDesc
成功した場合は、DSN の説明が格納されます。
In/Out
pdsnDBQSize
データベース名用のバッファーのサイズを格納する、符号なし Long 型のアドレス。データベース名の実際のサイズを受け取ります。
Out
dsnDBQ
成功した場合は、データベースの名前が格納されます。
Out
pOpenMode
DSN のオープン モード。次のいずれか 1 つになります。
NORMAL_MODE
ACCELERATED_MODE
READONLY_MODE
EXCLUSIVE_MODE
ODBC Guide』の DSN オープン モードも参照してください。
Out
translate
データのエンコード オプション。次のいずれか 1 つになります。
DSNFLAG_DEFAULT
DSNFLAG_OEMANSI
DSNFLAG_AUTO
ODBC Guide』の DSN オープン モードも参照してください。DSNFLAG_DEFAULT は ODBC アドミニストレーターでエンコード オプション[なし]に該当します。
戻り値
 
P_OK
操作は成功しました。
P_E_INVALID_HANDLE
接続ハンドルが無効です。
P_E_NULL_PTR
ヌル ポインターによる呼び出しです。
P_E_BUFFER_TOO_SMALL
文字列に対しバッファーが小さすぎます。この場合、必要なバッファー サイズが pdsnDescSize または pdsnDBQSize に返されます。
P_E_ACCESS_RIGHT
操作を実行するための十分なアクセス権がありません。
P_E_DSN_DOES_NOT_EXIST
指定された DSN は存在しません。
P_E_INVALID_OPEN_MODE
オープン モードが無効です。
P_E_INVALID_TRANSLATE_OPTION
指定されたエンコード変換オプションが不正です。
P_E_FAIL
データ パスの検索に失敗しました。
備考
以下の前提条件を満たす必要があります。
PvConnectServer() によって接続が確立している。ただし、ローカル マシンで操作を実行する場合は、接続ハンドルとして P_LOCAL_DB_CONNECTION を使用できます。
ユーザーにログイン要求をしないで DSN に関する情報を取得するには、PvConnectServer() を使ってサーバー接続を確立するとき、userName と password に空文字列を渡します。
メモ:userName と password に空文字列を渡して確立した接続は、セキュリティで保護されていない接続であるため、DTI のこれ以外のほとんどの操作を実行するのに十分なアクセス権を持たない接続となります。
関連項目
PvConnectServer()
PvCountDSNs()
PvCreateDSN2()
PvDeleteDSN()
PvDisconnect()
PvGetDSNEx()
PvListDSNs()
PvModifyDSN2()
PvStart()
PvStop()