PvCopyDatabase()
データベースを新規データベースにコピーし、必要に応じて参照整合性を調整します。
ヘッダー ファイル:catalog.h(
ヘッダー ファイルも参照)
関数が最初に利用可能になるライブラリ:w3dbav90.dll(Windows)、libpsqldti.so(Linux)、libpsqldti.dylib(OS X)(
リンク ライブラリも参照)
構文
BTI_API PvCopyDatabase(
BTI_LONG hConnection,
BTI_CHAR_PTR dbName,
BTI_CHAR_PTR newdbName,
BTI_CHAR_PTR newdictPath,
BTI_CHAR_PTR newdataPath);
引数
In | hConnection | サーバーを識別する接続ハンドル。接続ハンドルは PvConnectServer() 関数によって取得されます。 |
In | dbName | コピーするデータベースの名前。 |
In | newdbName | 新規のデータベース名。 |
In | newdictPath | 新規データベースの辞書パス。 |
In | newdataPath | データ パス。デフォルトのデータ パス(つまり、辞書パスと同じパス)を使用するには、空文字列を渡します。 複数のパスに保存された MicroKernel エンジン データ ファイルから構成される新規データベースを作成する場合は、このパラメーターにセミコロン(;)で区切られた一覧を指定します。たとえば、次のようにします。C:\data\path1;C:\data\path2 |
戻り値
P_OK | 操作は成功しました。 |
P_E_INVALID_HANDLE | 接続ハンドルが無効です。 |
P_E_NULL_PTR | ヌル ポインターによる呼び出しです。 |
P_E_ACCESS_RIGHT | 操作を実行するための十分なアクセス権がありません。 |
P_E_DICTIONARY_ALREADY_EXISTS | 辞書は既に存在するため、作成できません。 |
P_E_SHARED_DDF_EXIST | 辞書パスは別のデータベースが使用中です。 |
P_E_DUPLICATE_NAME | 名前付きデータベースはサーバーに既に存在します。 |
P_E_FAIL | その他の理由により失敗しました。 |
備考
以下の前提条件を満たす必要があります。
•PvConnectServer() によって接続が確立している。ただし、ローカル マシンで操作を実行する場合は、接続ハンドルとして P_LOCAL_DB_CONNECTION を使用できます。
例
BTI_LONG connectionHandle = P_LOCAL_DB_CONNECTION;
BTI_CHAR_PTR newdataPath = "c:\\data\\gallery2";
BTI_CHAR_PTR newdictPath = "c:\\data\\gallery2";
BTI_CHAR_PTR databaseName = "Gallery";
BTI_CHAR_PTR newdatabaseName = "GalleryCopy";
BTI_SINT status = 0;
BTI_CHAR_PTR server = "MyServer";
BTI_CHAR_PTR user = "Administrator";
BTI_CHAR_PTR pwd = "Admin";
// リモートの場合のみ、サーバーへの接続が必要となる
// リモートでない場合は、ハンドルとして P_LOCAL_DB_CONNECTION を渡すことができる
status = PvCopyDatabase(
connectionHandle,
databaseName,
newdatabaseName
dictPath,
dataPath);
関連項目