|
Stat Extended オペレーション(B_EXTENDED_STAT)にはいくつかのサブファンクションがあります。これを使って、アプリケーションは開いているファイルについての情報を収集することができます。
対象となるファイルが開いていることが必要です。
入力ポジション ブロックで指定されたファイルの場合、このサブファンクションは、指定データ ファイルと関連付けられたエクステンション ファイルについての情報を返します。返される情報には、存在するエクステンション ファイルの数、関数によって返された番号、および返されたファイルの名前が含まれます。
エクステンション ファイルに関する情報を取得するには、データ バッファーに拡張ファイル ディスクリプターを次のとおりに作成する必要があります。
拡張ファイル サブファンクションの場合、トランザクショナル インターフェイスではデータ バッファー長パラメーターの値が更新され、表 31 で説明されているような拡張ファイル構造体がデータ バッファーに返されます。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
ファイル数
|
4
|
拡張ファイルを構成するオペレーティング システム ファイルの数。
|
エクステンション ファイル数
|
4
|
返されたエクステンション ファイルの数。
|
ファイル名部分(返された各ファイル名について繰り返される)
|
||
ファイル名の長さ
|
4
|
エクステンション ファイル名の長さ。
|
ファイル名
|
n
|
エクステンション ファイル名。
|
入力ポジション ブロックで指定されたファイルの場合、このサブファンクションは、ファイルに定義されたシステム キーがあるかどうか、また、そのファイルはログ可能(トランザクション一貫性保守が可能)であるかどうかに関する情報を返します。
ファイルでのシステム データの使用に関する情報を取得するには、データ バッファーにシステム データ ディスクリプターを次のとおりに作成する必要があります。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
識別バイト
|
4
|
Extended Stat 呼び出しのための一意な識別子。ExSt を指定します。表 30 を参照してください。
|
サブファンクション
|
4
|
Stat Extended 呼び出しのタイプ。0x00000002 を指定します。
|
システム データ サブファンクションの場合、トランザクショナル インターフェイスでは次のようなシステム データ構造体がデータ バッファーに返されます。
入力ポジション ブロックで指定されたファイルの場合、このサブファンクションは、指定データ ファイルと関連付けられたエクステンション ファイルについての情報を返します。返される情報には、直前の失敗した挿入または更新操作でステータス コード 5(重複キー)の発生原因となった、レコード アドレスおよびキー番号が含まれます。
一番最近ステータス コード 5(重複キー)を発生させたレコード アドレスおよびキー番号に関する情報を取得するには、データ バッファーに重複レコード情報ディスクリプターを次のとおりに作成する必要があります。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
識別バイト
|
4
|
Extended Stat 呼び出しのための一意な識別子。ExSt を指定します。表 30 を参照してください。
|
サブファンクション
|
4
|
Stat Extended 呼び出しのタイプ。0x00000003 を指定します。
|
システム データ サブファンクションの場合、トランザクショナル インターフェイスでは次のようなシステム データ構造体がデータ バッファーに返されます。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
重複レコード アドレス
|
4
|
重複するキー値を含んでいるレコードの物理アドレス。
|
キー番号
|
4
|
重複する値を含んでいるキーのキー番号。
|
入力ポジション ブロックで指定されたファイルの場合、このサブファンクションは、指定データ ファイルと関連付けられたエクステンション ファイルについての情報を返します。返される情報には次のものが含まれます。トランザクショナル インターフェイスがファイルの識別に使用する内部ファイル ID、現在開いているファイル ハンドル数、ファイルが前回開かれたときのタイムスタンプ、およびファイル プロパティを示すさまざまなフラグがあります。
開いているファイルに関する情報を取得するには、データ バッファーにファイル情報ディスクリプターを次のとおりに作成する必要があります。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
識別バイト
|
4
|
Extended Stat 呼び出しのための一意な識別子。ExSt を指定します。表 30 を参照してください。
|
サブファンクション
|
4
|
Stat Extended 呼び出しのタイプ。0x00000004 を指定します。
|
バッファー スペース
|
12
|
戻り情報に必要な追加バイト。出力データ バッファー構造体を参照してください。ファイル情報サブファンクションの場合、トランザクショナル インターフェイスではデータ バッファーにファイル情報構造体が返されます。
|
ファイル情報サブファンクションの場合、トランザクショナル インターフェイスでは次のようなファイル情報構造体がデータ バッファーに返されます。
Flags
フィールドに使用できる値については、次の表で説明します。
入力ポジション ブロックで指定されたファイルの場合、このサブファンクションは、ファイルの制御を行うゲートウェイ エンジンについての情報を返します。
指定されたファイルの処理を行うゲートウェイ エンジンに関する情報を取得するには、データ バッファーにゲートウェイ情報ディスクリプターを次のとおりに作成する必要があります。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
識別バイト
|
4
|
Extended Stat 呼び出しのための一意な識別子。ExSt を指定します。表 30 を参照してください。
|
サブファンクション
|
4
|
Stat Extended 呼び出しのタイプ。0x00000005 を指定します。
|
バッファー スペース
|
最低でも 80
|
戻り情報に必要な追加バイト。詳細については出力データ バッファー構造体を参照してください。
|
ゲートウェイ情報サブファンクションの場合、トランザクショナル インターフェイスではデータ バッファー長パラメーターが更新され、次のようなゲートウェイ情報構造体がデータ バッファーに返されます。
入力ポジション ブロックで指定されたファイルの場合、このサブファンクションは、一番最近ファイルのアクセス時にステータス コード 84 または 85 を発生させた原因に関する情報を返します。
ステータス 84 または 85 の原因に関する情報を取得するには、データ バッファーにロック オーナー情報ディスクリプターを次のとおりに作成する必要があります。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
識別バイト
|
4
|
Extended Stat 呼び出しのための一意な識別子。ExSt を指定します。表 30 を参照してください。
|
サブファンクション
|
4
|
Stat Extended 呼び出しのタイプ。0x00000006 を指定します。
|
バッファー スペース
|
最低でも 96
|
戻り情報に必要な追加バイト。詳細についてはサブファンクション 7:セキュリティ情報を参照してください。
|
ロック オーナー情報サブファンクションの場合、トランザクショナル インターフェイスではデータ バッファー長パラメーターが更新され、次のようなロック オーナー情報構造体がデータ バッファーに返されます。
以前にブロックしていたクライアントの記録がトランザクショナル インターフェイスにない場合、出力データ バッファー長はゼロに設定されます。
フラグ
フィールドに使用できる値については、次の表で説明します。
このサブファンクションは、クライアントが現在のファイルにアクセスするために、どのように認証および許可されたかについての情報を返します。セキュリティに使用されている現在のデータベースに関する情報も示します。
このハンドルが持っているどのアクセス権がどのように認証されたかについてセキュリティ情報を取得するには、データ バッファーにセキュリティ情報ディスクリプターを次のとおりに作成する必要があります。
セキュリティ情報サブファンクションの場合、MicroKernel ではデータ バッファー長パラメーターが更新され、次のようなセキュリティ情報構造体がデータ バッファーに返されます。
要素
|
長さ(バイト単位)
|
説明
|
---|---|---|
ハンドルのフラグ
|
4
|
このハンドルのセキュリティに使用されているメソッドを示すフラグを含む 4 バイトのビットマップ。各フラグの値の説明については、次の表を参照してください。
|
ハンドルのフラグ
|
4
|
このクライアントの、現在のデフォルト データベースのセキュリティに使用されているメソッドを示すフラグを含む 4 バイトのビットマップ。各フラグの値の説明については、次の表を参照してください。
|
アクセス権
|
4
|
これらは、このハンドルを使用するクライアントに与えられているアクセス権です。各フラグの値の説明については、アクセス権の表を参照してください。
|
ハンドル データベース名のバッファー サイズ
|
2
|
ヌルで終わるハンドル データベース名文字列の格納に使用されるバッファーの長さ。
|
ハンドル テーブル名のバッファー サイズ
|
2
|
ヌルで終わるハンドル テーブル名文字列の格納に使用されるバッファーの長さ。メモ:テーブル名は、ファイルがデータベースにバインドされない限りわかりません(たとえば参照制約)。つまり、ファイルは、ファイルのテーブル名で参照される URI 接続文字列を使用して開かれています。URI 接続文字列の詳細については、『Pervasive PSQL Programmer's Guide』のデータベース URI を参照してください。
|
ハンドル ユーザー名のバッファー サイズ
|
2
|
ヌルで終わるハンドル ユーザー名文字列の格納に使用されるバッファーの長さ。
|
現在のデータベース名のバッファー サイズ
|
2
|
ヌルで終わる現在のデータベース名文字列の格納に使用されるバッファーの長さ。
|
現在のユーザー名のバッファー サイズ
|
2
|
ヌルで終わる現在のユーザー名文字列の格納に使用されるバッファーの長さ。
|
ハンドル データベース名
|
可変
|
このハンドルのセキュリティを確立するために使用されるデータベース名。
|
ハンドル テーブル名
|
可変
|
このハンドルと関連付けられているテーブル名。
|
ハンドル ユーザー名
|
可変
|
このハンドルのセキュリティを確立するために使用されるユーザー名。
|
現在のデータベース名
|
可変
|
このクライアントの、現在のデフォルトのデータベース名。
|
現在のユーザー名
|
可変
|
このクライアントの、現在のデフォルト データベースに関連付けられているユーザー名。
|
2 つの Flags
フィールドで使用できる値については、以下の表で説明します。
Stat Extended オペレーションが正常に実行されなかった場合は、トランザクショナル インターフェイスから次のステータス コードのいずれかが返されます。
|