Distributed Tuning Interface のリファレンス : PvListDSNs()
 
このページをシェアする                  
PvListDSNs()
Pervasive ODBC エンジン インターフェイスのシステムのデータ ソース名(DSN)の一覧を取得します。
ヘッダー ファイル:catalog.h(ヘッダー ファイルも参照)
関数が最初に利用可能になるライブラリ:w3dbav75.dll(Windows)、libpsqldti.so(Linux)(リンク ライブラリも参照)
この関数を Pervasive PSQL v11 以降のバージョンで使用することは推奨されません。クライアント DSN を使った作業には、ODBC API を使用してください。
構文
BTI_API PvListDSNs(
BTI_LONG          hConnection,
BTI_ULONG_PTR     pdsnListSize,
BTI_CHAR_PTR      pdsnList,
BTI_CHAR          filtering);
引数
 
In
hConnection
サーバーを識別する接続ハンドル。接続ハンドルは PvConnectServer()関数によって取得されます。
In/Out
pdsnListSize
DSN 一覧のためのバッファー サイズを格納する、符号なし Long 型のアドレス。返される DSN 一覧の実際のサイズを受け取ります。
Out
pdsnList
成功した場合は DSN の一覧が格納されます。
In
filtering
システムの Pervasive エンジン DSN だけが必要な場合は 1 を設定します。すべての DSN が必要な場合は 0 を設定します。
戻り値
 
P_OK
操作は成功しました。
P_E_INVALID_HANDLE
接続ハンドルが無効です。
P_E_NULL_PTR
ヌル ポインターによる呼び出しです。
P_E_BUFFER_TOO_SMALL
文字列に対しバッファーが小さすぎます。この場合、必要なバッファー サイズが pdsnListSize に返されます。
P_E_FAIL
その他の理由により失敗しました。
備考
以下の前提条件を満たす必要があります。
PvConnectServer()によって接続が確立している。ただし、ローカル マシンで操作を実行する場合は、接続ハンドルとして P_LOCAL_DB_CONNECTION を使用できます。
ユーザーにログイン要求をしないで DSN の一覧を取得するには、PvConnectServer()を使ってサーバー接続を確立するとき、userName と password に空文字列を渡します。
メモ: userName と password に空文字列を渡して確立した接続は、セキュリティで保護されていない接続であるため、DTI のこれ以外のほとんどの操作を実行するのに十分なアクセス権を持たない接続となります。
BTI_WORD res = 0;
BTI_ULONG dsncount = 0;
BTI_ULONG dsnListSize = 0;
BTI_CHAR * dsnList;
 
// MAX_DSN_NAME_LENGTH は catalog.h 内で
// 32 に定義されている
res = PvCountDSNs (hConnection,
&dsnCount,
1);
dsnlistSize = dsnCount * (MAX_DSN_NAME_LENGTH+1);
dsnList = new char[dsnListSize];
res = PvListDSNs (hConnection,
&dsnListSize,
dsnList,
1);
関連項目
PvStart()
PvConnectServer()
PvCountDSNs()
PvGetDSN()
PvDisconnect()
PvStop()