Distributed Tuning Interface のリファレンス : PvGetDbName()
 
このページをシェアする                  
PvGetDbName()
シーケンス番号を使って、接続されたサーバーのデータベース名を取得します。データベース名の番号は、PvGetDbNamesData()関数を呼び出すことによって取得できます。シーケンス番号は 1 基準です。
ヘッダー ファイル:catalog.h(ヘッダー ファイルも参照)
関数が最初に利用可能になるライブラリ:w3dbav75.dll(Windows)、libpsqldti.so(Linux)、libpsqldti.dylib(OS X)(リンク ライブラリも参照)
構文
BTI_API PvGetDbName(
   BTI_LONG           hConnection,
   BTI_ULONG          sequence,
   BTI_ULONG_PTR      pBufSize,
   BTI_CHAR_PTR       dbName);
引数
 
In
hConnection
サーバーを識別する接続ハンドル。接続ハンドルは PvConnectServer()関数によって取得されます。
In
sequence
データベース名のシーケンス番号(1 基準)。PvGetDbNamesData()によって定義される値を上限とした、有効な範囲内の番号でなければなりません。
In/Out
pBufSize
データベース名を取得するために割り当てられたバッファーのサイズを格納する、符号なし Long 型のアドレス。コピーされた文字の実際のサイズを受け取ります。サイズにはヌル終端文字を含める必要があります。
Out
dbName
返された文字列値。
戻り値
 
P_OK
操作は成功しました。
P_E_INVALID_HANDLE
接続ハンドルが無効です。
P_E_DATA_UNAVAILABLE
データベース名に関連するデータがありません。
P_E_NULL_PTR
ヌル ポインターによる呼び出しです。
P_E_BUFFER_TOO_SMALL
文字列に対し、割り当てられたバッファーが小さすぎます。
P_E_INVALID_SEQUENCE
シーケンス番号が無効です。
P_E_FAIL
その他の理由により失敗しました。
BTI_ULONG i;
BTI_ULONG count = 0;
BTI_CHAR dbName[BDB_SIZE_DBNAME+1];
BTI_SINT status = PvGetDbNamesData(connection, &count);
for (i=1; i<= count; i++)
{
   BTI_ULONG dbNameSize = sizeof(dbName);
   status = PvGetDbName(connection, i, &dbNameSize, dbName);
}
status = PvFreeDbNamesData(connection);
備考
以下の前提条件を満たす必要があります。
PvStart()呼び出しによって DTI セッションが開始されている。
PvConnectServer()によって接続が確立している。ただし、ローカル マシンで操作を実行する場合は、接続ハンドルとして P_LOCAL_DB_CONNECTION を使用できます。
PvGetDbNamesData()呼び出しによって、データベース名のデータが取得されている。
呼び出し元には、有効なデータベース名のシーケンス番号がある。
関連項目
PvStart()
PvConnectServer()
PvGetDbNamesData()
PvFreeDbNamesData()
PvDisconnect()
PvStop()