開発者リファレンス : プラットフォーム管理 : Distributed Tuning Interface (DTI) Guide : Distributed Tuning Interface のリファレンス : PvCreateDatabase2()
 
このページをシェアする                  
PvCreateDatabase2()
dbnames.cfg ファイルへエントリを追加することによって、データベースを作成します。この関数は、データベース コード ページが指定されることを除けば、PvCreateDatabase() とまったく同じです。
ヘッダー ファイル:catalog.h(ヘッダー ファイルも参照)
関数が最初に利用可能になるライブラリ:w3dbav90.dll(Windows)、libpsqldti.so(Linux)、libpsqldti.dylib(macOS)(リンク ライブラリも参照)
構文
BTI_API PvCreateDatabase2(
   BTI_LONG           hConnection,
   BTI_CHAR_PTR       dbName,
   BTI_CHAR_PTR       dictPath,
   BTI_CHAR_PTR       dataPath,
   BTI_ULONG          dbFlags,
   BTI_LONG           dbCodePage);
引数
 
In
hConnection
サーバーを識別する接続ハンドル。接続ハンドルは PvConnectServer() 関数によって取得されます。
In
dbName
データベース名。
In
dictPath
辞書パス。
In
dataPath
データ パス。デフォルトのデータ パス(つまり、辞書パスと同じパス)を使用するには、空文字列を渡します。
複数のパスに保存された MicroKernel エンジン データ ファイルから構成されるデータベースを作成する場合は、このパラメーターにセミコロン(;)で区切られた一覧を指定します。たとえば、次のようにします。C:\data\path1;C:\data\path2
In
dbFlags
データベース フラグ。P_DBFLAG_ 定数を組み合わせて指定できます。
P_DBFLAG_RI(参照整合性およびトリガーを含む、整合性制約を設定します。)
P_DBFLAG_BOUND(DDF ファイルを作成してデータベース名を辞書にスタンプし、そのデータベースのみが DDF を使用できるようにします。データベースがバインドされていない場合は、複数のデータベースで同一の辞書ファイル セットを使用できます。)バウンド データベースを作成するときに既存の DDF ファイルにバインドしたい場合は、P_DBFLAG_CREATE_DDF と P_DBFLAG_BOUND の両方を指定します。
P_DBFLAG_CREATE_DDF(DDF ファイルを作成します。dictPath に指定されたディレクトリは存在している必要があります。)
P_DBFLAG_DBSEC_AUTHENTICATION(データベース セキュリティ認証の混合セキュリティを使用します。Btrieve セキュリティ ポリシーを参照してください。)
P_DBFLAG_DBSEC_AUTHORIZATION(データベース セキュリティ認証のデータベース セキュリティ ポリシーを使用します。Btrieve セキュリティ ポリシーを参照してください。)
P_DBFLAG_LONGMETADATA(メタデータ バージョン 2 を使用します。メタデータのバージョンを参照してください。)
In
dbCodePage
Windows プラットフォームのデータベースの場合、番号によってデータベース データとメタデータ文字列のコード ページを示します。
Linux および macOS ディストリビューションのデータベースの場合、以下の値のいずれかによってデータベース データとメタデータ文字列のコード ページを示します。
P_DBCODEPAGE_UTF8
P_DBCODEPAGE_EUCJP
P_DBCODEPAGE_ISO8859_1
Windows、Linux、または macOS のデータベースでは、ゼロの値も使用できます。
ゼロは旧来の動作を示します。つまり、コード ページは指定されません。サーバー マシンのオペレーティング システムにおけるエンコードをデフォルトで使用します。『Zen User's Guide』のコード ページ データベース プロパティも参照してください。
メモ:データベース エンジンは、アプリケーションがデータベースに追加するデータおよびメタデータのエンコードを検証しません。エンジンは、すべてのデータが、『Advanced Operations Guide』のデータベース コード ページとクライアント エンコードで説明されているようにサーバーまたはクライアントのエンコードを使用して入力されるものと想定しています。
戻り値
 
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
その他の理由により失敗しました。
備考
以下の前提条件を満たす必要があります。
PvStart() 呼び出しによって DTI セッションが開始されている。
PvConnectServer() によって接続が確立している。ただし、ローカル マシンで操作を実行する場合は、接続ハンドルとして P_LOCAL_DB_CONNECTION を使用できます。
Btrieve セキュリティ ポリシーとメタデータのバージョン
それぞれについて、Btrieve セキュリティ ポリシーおよびメタデータのバージョンを参照してください。
関連項目
PvConnectServer()
PvCreateDSN2()
PvDisconnect()
PvDropDatabase()
PvGetDbCodePage()
PvGetDbFlags()
PvGetDSNEx2()
PvModifyDatabase2()
PvStart()
PvStop()