SQL Engine Reference (v11)

SQL アクセスの使用

SQL アクセスを利用するには次の作業を行います。

  1. 適切な XML テンプレートを手で編集して、データ レイアウトを記述します。
  2. XML テンプレートで指定したデータ ファイルをデータベース フォルダーにコピーします。
  3. ユーティリティを実行して、リレーショナル インターフェイスが使用するシステム テーブルを作成します(XML を使って、正規化されたデータを作成します)。
  4. COBOL アプリケーションの開発者である場合は、任意で、Schema Executor によって作成された新しいシステム テーブルを配布します。

手順 1:サンプル XML テンプレートの変更

Pervasive PSQL v11 SP3 にはサンプルの XML テンプレートが含まれており、これを利用すると、COBOL アプリケーションで必要とされるとおりにデータのレイアウトを定義できます。表 196 を参照してください。開発者向けに専門的に言えば、XML ファイルにメタデータを記述します。

XML テンプレートを変更するには

  1. テキスト エディターで XML テンプレートを開きます。
  2. ファイルに記述されているコメントに従って XML を変更します。
  3. 選択したパスとファイル名で、変更したテンプレートを保存します。

手順 2:XML テンプレートで指定したデータ ファイルのコピー

Schema Executor を起動する前に、XML ファイルで指定したデータ ファイルをデータベースのデータ ファイルの場所へコピーします。データベースは、テーブルを追加する必要のあるデータベースです。

たとえば、XML で mytable.mkd と指定したテーブルをデータベース "test" に追加するとします。このとき、データベースのデータ ファイルは c:¥data¥test にあるとします。Schema Executor を起動する前に、データ ファイル mytable.mkd を c:¥data¥test へコピーします。

手順 3:Schema Executor ユーティリティの実行

Pervasive PSQL v11 SP3 には Schema Executor というコマンド ライン ユーティリティが付属しています。このユーティリティは SchemaExec ともいいます。

Schema Executor は以下の操作を実行します。

Schema Executor で XML ファイルを処理するには

サンプル XML ファイルの実行例も参照してください。

  1. オペレーティング システムでコマンド プロンプトにアクセスします。
  2. コマンド ラインで Schema Executor を実行します(この実行可能プログラムがデフォルトでインストールされる場所は、表 196 を参照してください)。
    必須オプションの XMLfilename および databasename と、必要な任意のオプションを指定します。Schema Executor コマンドの形式を参照してください。
    XML コンテンツの処理中にエラーが発生した場合は、Schema Executor ログ ファイルに報告されているエラーを検討します。ログ メッセージを参照してください。処理でエラーが発生しなくなるまで、繰り返し XML を修正してユーティリティを再実行します。

Schema Executor コマンドの形式

cobolschemaexec XMLfilename databasename [-s servername] [-u login_id] [-p password] [-i svr_loginid] [-c svr_password] [-l log_file] [ -h | -? ]

表 197 Schema Executor ユーティリティのオプション
オプション
説明
XMLfilename
データのレイアウトを定義する XML スキーマのファイル名。必須オプションです。手順 1:サンプル XML テンプレートの変更を参照してください。
databasename
アプリケーションがアクセスする Pervasive PSQL データベースの名前。必須オプションです。指定したデータベースが存在しない場合は、ユーティリティからパスとファイル名の入力を求められます。
-s servername
Pervasive PSQL データベース エンジンが実行されているサーバーの名前、または IP アドレス。データベース エンジンと同じマシン上で SchemaExec を実行している場合は、名前として "localhost" を使用できます。servername が指定されていない場合は、ローカル マシンがサーバーであると見なします。
-u login_id
セキュリティで保護されたデータベースへのアクセスに必要なユーザー名。Pervasive PSQL セキュリティ モデルの解説については、『Advanced Operations Guide』の 「Pervasive PSQL セキュリティ」を参照してください。
-p password
セキュリティで保護されたデータベースへのアクセスに必要なパスワード。Pervasive PSQL セキュリティ モデルの解説については、『Advanced Operations Guide』の 「Pervasive PSQL セキュリティ」を参照してください。
-i svr_loginid
リモート マシンのオペレーティング システムへのアクセスに必要なログイン名。SchemaExec がリモート サーバー上にある XML ファイルを処理している場合には、このオプションは必須です。
-c svr_password
リモート マシンのオペレーティング システムへのアクセスに必要なパスワード。SchemaExec がリモート サーバー上にある XML ファイルを処理している場合には、このオプションは必須です。
-l log_file
XML ファイルの処理中に生成されるメッセージの記録に使用するログ ファイル。
Pervasive PSQL データベース エンジンが実行されているマシンで SchemaExec を実行する場合は、自動的にデフォルト ログが作成されます。-l log_file オプションを使用する必要はありません。デフォルト ログの名前は cobolschemaexec.log です。
クライアント マシン(Pervasive PSQL データベース エンジンが実行されていないマシン)で SchemaExec を実行する場合は、クライアント マシン用のログ ファイルを指定できます。
ログ メッセージを参照してください。
-h または -?
コマンドの使い方を表示します。その他すべてのオプションは無視されます。


メモ

必須オプションの XMLfilenamedatabasename は位置決めされており、この順序で指定する必要があります。


使い方の例

次の例は、Schema Executor の使い方を示しています。

Pervasive PSQL ファイルのデフォルトの保存場所については、『Getting Started with Pervasive PSQL』の 「Pervasive PSQL ファイルはどこにインストールされますか?」を参照してください。

ユーティリティは次のようなプロンプトを表示します。

CB103 :mytest に接続できません 
データベースを作成しますか(y/n)?  

"y" を押すと、ユーティリティはデータベース パスを入力するプロンプトを表示します。

データベース パスを入力してください。 

既存のパスを入力します。そうしないと、エラーが返されます。必ず、XML ファイルで使用されているデータベース ファイル(たとえば .MKD ファイル)がそのパスで使用可能であるようにしてください。

この例では、管理者権限を持つユーザー "testuser"(パスワード "testuser")がリモート マシン(TestMachine)に存在し、XML ファイルで使用されるデータベース ファイルは、リモート マシン上のデータベースのデータ ファイル ディレクトリにあるものとします。

この例では、ユーザー "testuser"(パスワード "testuser")はリモート マシン(TestMachine)に存在し、管理者権限を持っているものとします。

ユーティリティは次のようなプロンプトを表示します。

CB103 :mytest に接続できません 
データベースを作成しますか(y/n)?  

"y" を押すと、ユーティリティはデータベース パスを入力するプロンプトを表示します。

データベース パスを入力してください。 

既存のパスを入力します。そうしないと、エラーが返されます。必ず、XML ファイルで使用されているデータベース ファイル(たとえば .MKD ファイル)がそのパスで使用可能であるようにしてください。

Schema Executor による新規データベースの作成

ユーティリティ オプション databasename に存在しないデータベースを指定すると、Schema Executor は新しいデータベースを作成するかどうかを尋ねます。"yes" と答えると、新しいデータベースの場所を入力するプロンプトが表示されます。Schema Executor がデータベースを作成する場所(パスとフォルダー名)は既存でなければなりません。

また、Schema Executor は、デフォルト フォルダーに databasename のデータ ファイルがあることを期待するので注意してください。データ ファイルが見つからない場合は、その旨が通知されます。データ ファイルを自分でデフォルト フォルダーへコピーしてから、Schema Executor を再実行して XML を処理します。

ログ メッセージ

このセクションは、Schema Executor による XML ファイルの処理後、ログ ファイルに記載されている可能性のあるコードの一覧を示します。

成功を表すコードは、「CB100:Schemaexec は正常に完了しました」です。

次の表は、エラー コードの一覧を示します。

表 198 CobolSchemaExec ログ ファイルに記載される可能性のあるエラー コード
エラー コード
説明
CB001
不明なエラーです
CB002
プロパティ名属性がありません
CB003
MAINTABLE および VARIANTRECORDTABLES はサポートされていません
CB004
指定された Occurs テーブル名が不正です
CB005
指定された Occurs Count が不正です
CB006
指定された Occurs マッピング インデックスは親テーブルのインデックスではありません
CB007
TableName - TableName が重複しています
CB008
FieldName - FieldName が重複しています
CB009
IndexName - IndexName が重複しています
CB010
テーブル名パラメーターが指定されていません
CB012
Identifier - 不正な文字が含まれています
CB013
オフセットは負でない整数でなければなりません
CB014
識別子の長さは 20 文字を超えてはいけません
CB016
精度はゼロより大きくなければなりません
CB017
指定された精度が不正です - FieldName
CB018
小数位を精度よりも大きくすることはできません - FieldName
CB019
ログ ファイルと XML ファイルは別にしなければなりません
CB022
TableFilter - テーブル フィルターは 255 文字を超えてはいけません
CB023
FieldName は TableName のフィールドではありません
CB024
TableFilter は、すべての REDEFINES テーブルに対して、または NONE に対して定義する必要があります
CB025
親要素が正しくありません
CB028
識別子名 identifiername は英文字で始まっている必要があります
CB029
識別子名 identifiername にキーワードは使用できません
CB050
DataFile - DatabasePath に存在しません
CB051
OCCURS/REDEFINES の長さは負でない整数でなければなりません
CB052
Btrievefilename の長さが 64 文字を超えてはいけません
CB057
親テーブルにインデックスが指定されていません - ParentTableName
CB099
パーサー エラー
CB100
Schemaexec は正常に完了しました
CB101
コマンド ライン引数 argument の値が不正です
CB102
Login を指定しないで、Password の値を指定することはできません
CB103
DatabaseName に接続できません
CB105
ディレクトリ パス Databasepath にデータベース DatabaseName を作成できませんでした
CB106
指定された DSN を作成できませんでした
CB108
データベース databasename を閉じられませんでした
CB109
XML ファイルからデータを読み取れませんでした
CB110
データベースを削除できませんでした

手順 4:システム テーブルの配布(任意)

COBOL アプリケーションの開発者である場合は、作成したアプリケーションと共にすべてのシステム アプリケーションを配布するようにしてください。配布自体に違いはありませんが、追加するシステム テーブルが生じる可能性があるので、ここで述べています。たとえば、Pervasive PSQL v11 SP3 より前のバージョンの Pervasive PSQL で作成されたデータベースに対して Schema Executor を実行した場合は、追加のシステム テーブルが作成され配置されます。その結果、配布するシステム テーブル(DDF ファイル)がいくつか追加されることになります。


コンポーネント

サンプル XML ファイルの実行例