 |
Status Codes and Messages (v11) |
 |
|
1 ~ 199
MicroKernel Database エンジンのステータス コード
このセクションでは、MicroKernel が返すステータス コードについて説明します。
1:オペレーション パラメーターが不正です。
指定されたオペレーションは存在しないか、有効ではありません。
プレリリース版の V8 データベース エンジンに対して一般リリース版の V8 クライアント ソフトウェアを実行していると、このエラーを受け取る場合があります。このような場合には、データベース エンジンをアンインストールし、一般リリース版をインストールする必要があります。
2:アプリケーションで I/O エラーが発生しました。
このステータス コードは、通常ファイルが破損していることを示し、ディスクの読み取りまたは書き込みでエラーが起こります。発生したエラーは次のいずれかです。
- ファイルが破損しており、ファイルを修復する必要があります。破損ファイルの回復については、『Advanced Operations Guide』を参照してください。
- v6.0 より前のデータ ファイルの場合、トランザクション内に大きなプリイメージ ファイルがあり、そのプリイメージ ファイルへ書き込むための十分なディスク容量がありません。
- v6.0 より前のデータ ファイルの場合、複数のデータ ファイルに対して 1 つのプリイメージ ファイルがあります。たとえば、データ ファイルに CUSTOMER.ONE と CUSTOMER.TWO という名前を付けた場合、2 つのファイルがそれぞれ CUSTOMER.PRE という名前のプリイメージ ファイルを持ちます。
- 768 MB を超える v6.0 より前のデータ ファイルの場合、ロック機能で矛盾が発生しています。ただし、ファイルは破損していません。アプリケーションは、矛盾が解決するまで(実行中のアプリケーションが必要とするロックを、競合するアプリケーションが解除するまで)オペレーションを再試行することができます。
- v6.0 より前の Btrieve エンジンが、v6.x 以降の MicroKernel ファイルを開こうとしました。
- Btrieve for Windows NT Server Edition v6.15.445 を使用している場合、32 ビット Windows アプリケーションでは、アプリケーションを長時間実行した後、ステータス コード 2 または「サービス特有のエラー 0 により MKDE が終了されました」というメッセージを返すことがあります。
3:ファイルが開いていません。
ファイルが開かれていないためオペレーションを実行できません。MicroKernel が何らかのオペレーションを処理する前に、アプリケーションは Open オペレーションを正常に実行しておく必要があります。また、アプリケーションがファイルの無効なポジション ブロックを渡した場合や、ファイルを開くのに使用したクライアント ID 以外のクライアント ID でアプリケーションがポジション ブロックを渡した場合にも、MicroKernel はこのステータス コードを返します。
4:アプリケーションがキー値を見つけられません。
MicroKernel は、指定されたキー値をインデックス パス内で見つけることができません。
- Update または Delete のいずれかのオペレーションでこのステータス コードを受け取った場合、通常はファイルの破損を示しているため、ファイルを作成し直す必要があります。また、破損したキーが原因でこのステータス コードが返されることもあります。この場合、キーを削除してから追加し直してください。
- MicroKernel は、アプリケーションが CHAR 型のフィールドを検索するために GetEqual オペレーションを実行したときに、このステータス コードを返します。これは、CHAR レベルで 2 つのフィールドが一致しないことによって起こります。これを解決するには、KeyBuffer にフィールドと同じ型の文字を埋め込みます。
5:レコードのキー フィールドに重複するキー値があります。
重複値を許可しないインデックスに対して、重複したキー値を含んだキー フィールドがレコードに存在するため、MicroKernel はこのレコードの追加または更新を行うことができません。また、重複したキー値が既に存在するために、キーの重複が認められないインデックスを作成できない場合にも、MicroKernel はこのステータス コードを返します。
6:キー番号パラメーターが不正です。
キー番号パラメーターに格納されている値は、アクセスしているファイルに対して有効ではありません。キー番号は、そのファイルに対して定義されているキーのうちのいずれか 1 つと一致している必要があります。有効なキー番号は 0 ~ 118 です。
7:キー番号が変更されました。
Get Next、Get Next Extended、Get Previous、または Get Previous Extended オペレーションを実行する前に、キー番号パラメーターが変更されました。MicroKernel は前のキー番号のポジショニング情報を使用するため、これらのオペレーションでは前のオペレーションと同じキー番号パラメーターが必要です。
関連した状況として、アプリケーションが Get オペレーションの直後に Delete または Update オペレーションを実行した場合にも、MicroKernel はこのステータス コードを返します。アプリケーションが、Delete または Update オペレーションで、キー番号の値を直前の Get オペレーションで使用した値から別の値に変更した場合、MicroKernel はレコードの削除または変更を要求どおりに行いますが、少なくともこの時点でこのステータス コードは返しません。ただし、削除または更新の直後に実行した Get Next、Get Next Extended、Get Previous、または Get Previous Extended のいずれかのオペレーションでこのステータス コードを返します。アプリケーションが Delete オペレーションまたは Update オペレーションに渡したものと同じキー値をその Get オペレーションが使用したとしても、このステータス コードは返されます。
連続した Get Next、Get Next Extended、Get Previous、または Get Previous Extended オペレーション(あるいは、前述した Delete または Update オペレーションで)の途中でキー番号を変更する必要がある場合は、Get Position オペレーション、続いて Get Direct/Record オペレーションを使用して、新しいインデックス パスのポジショニングを再度確立します。
8:現在のポジションが不正です。
レコードの更新または削除を行うには、現在の位置を確立する必要があります。Get オペレーションまたは Step オペレーションを実行して現在の位置を確立してください。アプリケーションがファイルに無効なポジション ブロックを渡した場合にも、MicroKernel がこのステータス コードを返します。
9:オペレーションが EOF(end-of-file)を検出しました。
MicroKernel は、次の状況でこのステータス コードを返します。
- オペレーションがファイルの終わりを検出したか、ファイルの境界(ファイルの終わりまたはファイルの始め)を超えて読み込みを行おうとしました。
- Get Next Extended、Get Previous Extended、Step Next Extended、または Step Previous Extended のいずれかのオペレーションで、フィルター条件を満たすレコード数が、指定された取得レコード数より少なく、かつリジェクト カウントまたはフィルター制限にまだ達していません。
- インデックス パスに従って昇順でファイルを読み込む場合、MicroKernel がそのインデックス パス内の最後のレコードを既に返しています。また、インデックス パスに従って降順でファイルを読み込む場合、MicroKernel がそのインデックス パス内の最初のレコードを既に返しています。
- Get By Percentage オペレーションを使用している場合に、パーセンテージとして指定された値が大きすぎるか(10 進の 10,000(0x2710)を超えている)、またはファイルにレコードがありません。
- ActiveX Data Control で Get オペレーションを使用している場合、このエラーはアプリケーションをコンパイルして配布した後にのみ起こります。このエラーは開発中のデザイン時には起こりません。配布先のマシンに MSDADC.DLL がないことによってこのエラーが起こります。インストール スクリプトに、このファイル(MSDADC.DLL)を必ず含めてください。このファイルは Microsoft MDAC(Microsoft Data Access Component)ファイルです。
10:キー フィールドは変更できません。
Update オペレーション中に、変更不可として定義されているキー フィールドをアプリケーションが変更しようとしました。
11:指定されたファイル名が不正です。
MicroKernel は、次の状況でこのステータス コードを返します。
- 指定されたファイル名がファイル命名規則に従っていないか、またはパス名が無効です。ファイル名またはパス名がお使いの環境で有効であるかどうかを確認してください。
- クライアント/サーバー環境で実行中の場合:
- アプリケーションが「.^^^」という拡張子を持つファイルを開こうとしました。この拡張子は、MicroKernel が Continuous オペレーション実行時に使用するために予約されています(Continuous オペレーションを使用できるのはサーバー エンジンだけです)。
- Begin Continuous オペレーションまたは End Continuous オペレーション用のデータ バッファーが正しく設定されていません。
- リモート ファイルを読み込もうとしましたが、クライアント設定の[ローカル MicroKernel エンジンの使用]および[リモート MicroKernel エンジンの使用]の設定が、誤ってそれぞれオンとオフに設定されています。この状況を解決するには、クライアント ワークステーションで Pervasive PSQL Control Center を開きます(『Pervasive PSQL User's Guide』のWindows での PCC の起動を参照してください)。MicroKernel ルーター 用の[アクセス]カテゴリのプロパティで、[リモート MicroKernel エンジンの使用]の設定をオンにします(オプションをクリックします)。『Advanced Operations Guide』のPCC でローカル クライアントの設定にアクセスするにはを参照してください。
- ローカル ファイルを、そのファイルの指定ゲートウェイ エンジンでないワークグループ エンジンを使って開こうとしました。開こうとしたファイルが格納されているディレクトリに移動します。このディレクトリ内の
~pvsw~.loc
にリード オンリー フラグが設定されているかどうかを確認します。リード オンリー フラグが設定されている場合は、読み取り/書き込みに変更します。
- ワークグループ エンジンで動的ロケーター ファイルを使用している場合:
- 第 1 レベルのロケーター ファイル内で指定された第 2 レベルのロケーター ファイルの名前が、既存ディレクトリと同じ名前を持っていないことを確認します。また、これらすべてのファイルが同じドライブ上にあることを確認します。
- 第 1 レベルのロケーター ファイル内で指定された第 2 レベルのロケーター ファイルに、エンジンがアクセスできることを確認します。
- 動的ロケーター機能を共有するすべてのワークグループ エンジンが、データ ファイルが存在するサーバーの場所に対してまったく同じドライブ マッピングを行っていることを確認します。
- DOS クライアント環境でファイルにアクセスしている場合:
- Windows for Workgroups ワークステーションで、DOS ブート時に NET START FULL が使用されていません。DOS クライアント モードでフル リダイレクターを得るには、NET START FULL を使用してください。BREQNT.EXE はフル リダイレクションを必要とします。DOS プロンプトで
net ver
と入力して Enter キーを押します。DOS ワークステーションが Windows サーバーに接続するのに必要なコンポーネントのリストが表示されます。
LSL.COM LAN Card Driver
IPXODI.COM
IFSHLP.SYS
NET START FULL
これらは emm386 を使って loadhigh することができます。NET START FULL はアッパー メモリにロードされます。
- NSS ボリュームで長いファイル名を使ってファイルを開こうとしました。MicroKernel は OS 呼び出しを使ってボリュームに問い合わせ、それからそのボリューム用に見つかった関連する名前空間の適切なドライバーをロードします。この場合、MicroKernel はボリュームがマウントされる前にロードされているので、NSS ボリュームによる長いファイル名のサポートを見つけられません。
- ボリュームをロードした後に MGRstart または Bstart コマンドを発行します。たとえば、次のようにします。
LOAD NSS
MOUNT ALL
SYS:ETC¥INITSYS.NCF
MGRSTART または BSTART
- [スペースを含むファイル/ディレクトリ名]設定はオンになっています。Pervasive PSQL v9 ではオンがデフォルトです。お使いのアプリケーションで、スペースを含んでいるファイル名を使用できない場合は、設定をオフに変更してください。
- Microsoft Terminal Server 環境で実行している場合:
- プライマリ Windows サーバーに接続している 2 つの異なる Terminal Service 上の Windows アプリケーションで、およそ 5 人のユーザーが作業できます。この上限を超えて実行しようとした場合、ステータス 11 および 35 が返されます。この場合の回復方法については、Microsoft 技術情報の文書番号 190162「Terminal Server and the 2048 Open File Limitation」を参照してください。
12:MicroKernel は指定されたファイルを見つけられません。
- ファイルが存在することと、正しいファイルを指定したかどうかを確認します。
- キー バッファー パラメーターを調べて、パス名が空白またはバイナリの 0 で終わっていることを確認します。
- サーバー上のファイルにアクセスしている場合は、そのファイルが存在するディレクトリに対してファイル スキャン権を持っているかを確認してください。また、破損したキーが原因でこのステータス コードが返されることもあります。この場合、キーを削除してから追加し直してください。
- このエラー コードは、DBNames.CFG ファイルが削除され(たとえば、Pervasive PSQL の Cleanup ユーティリティなどによって)、そのファイルを参照する古いデータ ソース名(DSN)が ODBC 設定から削除されていない場合にも返されます。
- ローカル ファイルを、そのファイルの指定ゲートウェイ エンジンでないワークグループ エンジンを使って開こうとしました。開こうとしたファイルが格納されているディレクトリに移動します。このディレクトリ内の
~pvsw~.loc
にリード オンリー フラグが設定されているかどうかを確認します。リード オンリー フラグが設定されている場合は、読み取り/書き込みに変更します。
- ステータス 12 が返されたら、X$FILE.DDF という名前の DDF ファイルを調べます。
- Btrieve ユーティリティで file.ddf を調べると、辞書ファイルのロケーション名は、標準の file.ddf、field.ddf 、index.ddf ではなく、x$file.ddf、x$field.ddf、x$index.ddf になっています。その DDF は、サポートされていない DDL Services(DDLSVCS.DLL)と呼ばれる DDF 作成ユーティリティで作成されています。DDL Services には不具合があることがわかっており、システム テーブルに不正なデータを作成します。.
- Windows 32 ビット プラットフォームでファイルまたはパスに空白の埋め込まれたファイルを開くと、ステータス 12 が返されることがあります。Btrieve データ ファイルのアクセスには長いファイル名を使用することができますが、その他のファイルには使用できません。
- Pervasive.SQL 2000i 以降で[スペースを含むファイル/ディレクトリ名]を有効にするには、次のようにします。
- Pervasive PSQL Control Center を起動します(『Pervasive PSQL User's Guide』の Windows での PCC の起動を参照してください)。
- プラス(+)記号をクリックして、Pervasive PSQL のノードを展開します。
- [ローカル クライアント]ノードを展開します。
- [MicroKernel ルーター]を右クリックして[プロパティー]を選択します。要求があった場合はログインします。
- プロパティ ツリーで[アプリケーションの特性]をクリックします。
- [スペースを含むファイル/ディレクトリ名]をオンにします(チェック マークは当該オプションが有効であることを示します)。
13:MicroKernel は拡張ファイルのエクステンション ファイルを開けませんでした。
MicroKernel は、アプリケーションが開こうとしている拡張ファイルのエクステンション ファイルを開くことができませんでした。拡張ファイルは 1 つのベース ファイルと最大 31 個のエクステンション ファイルで構成されます。エクステンション ファイルは、ベース ファイルと同じボリュームおよびディレクトリ内に存在する必要があります。MicroKernel は、エクステンション ファイルの削除、移動、または名前変更を行った場合に、このステータス コードを返します。
14:MicroKernel はプリイメージ ファイルを作成できないか、または開けません。
MicroKernel は、v6.0 より前のデータ ファイルにのみプリイメージ ファイルを使用します。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- ディスクのディレクトリがいっぱいであるため、MicroKernel は新しいプリイメージ ファイルを作成できません。MicroKernel がプリイメージ ファイルを作成できるようにする必要があります。
- MicroKernel がファイル整合性を復元するためのプリイメージ ファイルを開くことができません。プリイメージ ファイルが消去されていたり破損したりしている場合は、MicroKernel はファイルの整合性を復元できません。破損ファイルの回復については、『Advanced Operations Guide』を参照してください。
- MicroKernel がプリイメージ ファイルへのアクセス権を持つユーザーによって起動されていないため、ワークグループの MicroKernel はプリイメージ ファイルにハンドルを割り当てることができません。
- この MicroKernel が作成したプリイメージ ファイルのファイル構造は、v5.x の MicroKernel が作成したプリイメージ ファイルのファイル構造とは異なります。v5.x 形式の .PRE ファイルが存在する環境では、その .PRE ファイルが属するデータ ファイルを開こうとしたときに、MicroKernel はこのステータス コードを返します。
15:プリイメージ中にアプリケーションで I/O エラーが発生しました。
MicroKernel は、v6.0 より前のデータ ファイルにのみプリイメージ ファイルを使用します。
- プリイメージ ファイルが破損しているため、データ ファイルの整合性は保証されません。破損ファイルの回復については、『Advanced Operations Guide』を参照してください。
- ディスクがいっぱいです。不要なファイルを消去してください。
16:アプリケーションで拡張エラーが発生しました。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
MicroKernel で、拡張ファイルのパーティションを作成する前にディレクトリ構造をディスクに書き込んでいる間にエラーが発生しました。MicroKernel がファイルを閉じることができないか、もしくは新しいページはファイルに追加されたが、MicroKernel がそのファイルを閉じて再び開き、ディレクトリ構造を更新することができません。ディスクにハードウェア障害がないか調べてください。
18:ディスクがいっぱいです。
MicroKernel は、次の状況でこのステータス コードを返します。
- ディスクがいっぱいのため、MicroKernel はファイルを拡張して追加のレコードを収容することができません。不要なファイルを消去してください。
- 新しいページをデータ ファイルに追加するのに必要な空き領域がありません。
- プリイメージ ファイルが使用可能なディスク領域を使い切ってしまいました。v6.0 より前の形式のファイルを使用してトランザクションを実行している場合、プリイメージ ファイルのサイズはトランザクションの実行中に増加し続けます。このステータス コードを受け取った場合は、トランザクション内のオペレーション数を減らすか、またはディスク領域を増やしてください。
- 環境によっては、各ユーザーが使用できるディスク領域の大きさを制限することができます。このステータス コードは、ファイルのオーナーに割り当てられたディスク領域の大きさを超えてアプリケーションがデータ ファイルを拡張しようとしたことを示しています。
- ディスク領域不足エラーが発生した後に、正常に閉じられなかったファイルの読み取りや変更を行おうとしました。ディスク領域不足エラーが発生した時点でファイルを使用していた各アプリケーションがファイルを正常に閉じたかどうかを確認してください。
- Pervasive PSQL のサーバーに接続しているクライアントがこのステータス コードを受け取った場合は、同じディスクからリードオンリー オペレーションを実行しているその他のクライアントも 0 以外のステータス コードを受け取ります。
19:アプリケーションで修復不能なエラーが発生しました。
ファイルの整合性を確実にするには、『Pervasive PSQL User's Guide』の説明に従ってファイルを修復してください。
20:MicroKernel または Btrieve リクエスターが非アクティブです。
- アプリケーションをクライアント/サーバー環境で実行している場合:
- Btrieve リクエスターがロードされていることを確認してください。
- IPX/SPX プロトコルまたは TCP/IP プロトコルがクライアント マシンに正しくインストールされ、ネットワーク上のマシン間で同じ内部ネットワーク番号を共有していないことを確認してください。
- クライアント設定オプションの、[アクセス|ローカル MicroKernel エンジンの使用]と[アクセス|リモート MicroKernel エンジンの使用]のうち、少なくとも 1 つが有効になっていることを確認してください。お使いの環境にサーバー エンジンとワークグループ エンジンの両方が入っている場合は、どちらの設定も有効にする必要があります。
- アプリケーションをクライアント/サーバー環境で実行している場合は、MicroKernel がロードされていることを確認してください。
- アプリケーションをクライアント/サーバー環境で実行しており、ローカル ドライブに格納されたファイルにアクセスする必要がある場合:
- Btrieve リクエスターがロードされていることを確認してください。
- クライアント設定オプションの、[アクセス|ローカル MicroKernel エンジンの使用]と[アクセス|リモート MicroKernel エンジンの使用]の両方が有効になっていることを確認してください。
- ローカルの MicroKernel が使用でき、ロードされていることを確認してください。
- DOS サーバー環境で実行している場合:
- Pervasive PSQL v11 SP2 は、デフォルトで BTRBOX95 をインストールします。BTRBOX95 がインストールされている限り、その他のリクエスターは使用できません。
- Setup ユーティリティを実行します。これによって、Windows 32 ビット オペレーション システムが動作しているクライアント用の適切なファイルがロードされます。
- インストールが終了したら、クライアントを再起動します。
- Windows 32 ビット プラットフォーム ユーザーの場合:コマンド プロンプトを開き、DOS Btrieve アプリケーションを実行します。
- Windows サーバー環境で実行している場合:
- MicroKernel を起動してからリクエストを生成します。
- PATH 環境変数で指定されたパスに Windows DLL があることを確認します。
- 適切な通信モジュールがサーバーにロードされていることを確認します。
21:キー バッファー パラメーターが短すぎます。
キー バッファー パラメーターは、リクエストされたインデックス パスのキー フィールドを収容するのに必要な長さがありません。キー バッファー長が、キー番号パラメーターで定義されているキーの長さと等しいことを確認してください。
22:データ バッファー パラメーターが短すぎます。
- アプリケーションによって指定されたデータ バッファー パラメーターの長さが十分でないため、Insert オペレーションまたは Update オペレーションの対象となる可変長レコードの最も短いレコードの長さ、あるいは Get オペレーションまたは Step オペレーションの対象となるレコード全体の長さを格納できません。また、データ バッファーの長さが、Create、Create Index、Stat、Get By Percentage、Find Percentage、または Version などのオペレーションに必要なデータ長を格納するのに十分ではなかった可能性もあります。
- Get オペレーションまたは Step オペレーションの場合、MicroKernel は可能な限り多くのデータを返し、レコード全体を返せないことを示すこのステータス コードを返します。
- Insert オペレーションの場合、データ バッファーが固定長部分より短いと、レコードは挿入されません。
- Update オペレーションの場合、データ バッファーが短すぎて固定長部分のレコードを格納できない場合、レコードは更新されません。
- Create、Stat、Create Index オペレーションの場合、データ バッファーはすべてのファイル仕様、キー仕様、オルタネート コレーティング シーケンス(ACS)定義(指定されている場合)を格納するだけの十分な長さがありません。
- Get by Percentage オペレーションまたは Find Percentage オペレーションの場合、データ バッファー長が 4 バイト未満になっています。
- Version オペレーションの場合、データ バッファー長が 5 バイト未満になっています。
- ActiveX を使って 60 を超えるフィールドを持つテーブルにアクセスする場合に、データ バッファー パラメーターが短すぎます。最新の ActiveX コントロールを入手してください。
- 可変長レコードを使用できるファイルで Get オペレーションまたは Step オペレーションを実行したときに、このステータス コードを受け取った場合、ファイルが破損している可能性があります。ファイルが破損している場合、Get オペレーションまたは Step オペレーションを使用して他のレコードを読み込むと、ステータス コード 54 が返されます。『Pervasive PSQL User's Guide』の操作説明に従ってファイルを修復してください。
23:ポジション ブロック パラメーターの長さが 128 バイトではありません。
このステータス コードは、バージョン 6.0 以降の Btrieve 言語インターフェイスでは使用されていません。
ポジション ブロック パラメーターの長さは、正確に 128 バイトである必要があります。
24:ページ サイズまたはデータ バッファー サイズが不正です。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- ファイルの作成時に指定したページ サイズが無効です。ページ サイズは 512 バイトの倍数で、4096 バイト(8.x 以前のファイル形式)、8192 バイト(9.0 ファイル形式)あるいは 16384 バイト(9.5 ファイル形式)以下でなければなりません。
- ページ サイズは、MicroKernel が Create オペレーション時に最初にチェックするファイル仕様です。この時点でステータス コードを受け取った場合、データ バッファー パラメーターが無効である可能性を示しています。
25:アプリケーションが指定されたファイルを作成できません。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- アプリケーションがデータ ファイルを作成しようとした場合は、ディスク ディレクトリまたはディスク自体がいっぱいである可能性があります。
- アプリケーションが既存のファイルを上書きしてファイルを作成しようとしている場合、既存のファイルが開いているか、オペレーティング システムが何らかの理由でそのオペレーションを許可しません。
- 既存の Btrieve ファイルに上書きして Btrieve ファイルを作成しようとすると、このステータス コードが返されます。既存のファイルに上書きしてファイルを作成するには、Btrieve の Create オペレーション API(opcode 14)のキー バッファーを適切に設定する必要があります。
- この問題はウィルス対策ソフトウェア(Innoculan など)によって起きることがあります。
メモ
この問題はオペレーティング システムが通常返さないステータス コードをエンジンに返したときに起こります。通常、エンジンはオペレーションが成功したか、ファイルが既に存在しているかのどちらかを予測しています。状況によって、エンジンが使用していたハンドルが機能しないためにこのエラー コードが返されます。しかし、エンジンが行った OS 呼び出しはファイル ハンドルが返されたと見なされます。
1 つの解決策はウィルス対策ソフトウェアを無効にすることです。特定のデータ ファイルのスキャンを省くための、ウィルス対策ソフトウェアの設定の詳細については、サード パーティ ベンダーに問い合わせてください。
26:指定されたキーの数が不正です。
ページ サイズに対して指定されたキーの数が無効です。キー の数は、すべてのファイル バージョンにおいて最大 119 個までです。
キー セグメントの数は、ファイル バージョンによって異なりますが、次の表に示す制限値の範囲内でなければなりません。
ページ サイズ(バイト数)
|
ファイル バージョンによる最大キー セグメント数
|
8.x 以前
|
9.0
|
9.5
|
512
|
8
|
8
|
切り上げ2
|
1,024
|
23
|
23
|
97
|
1,536
|
24
|
24
|
切り上げ2
|
2,048
|
54
|
54
|
97
|
2,560
|
54
|
54
|
切り上げ2
|
3,072
|
54
|
54
|
切り上げ2
|
3,584
|
54
|
54
|
切り上げ2
|
4,096
|
119
|
119
|
119 または 2043
|
8,192
|
N/A1
|
119
|
119 または 4203
|
16,384
|
N/A1
|
N/A1
|
119 または 4203
|
1 N/A は「適用外」を意味します。
2 「切り上げ」は、ページ サイズを、ファイル バージョンでサポートされる次のサイズへ切り上げることを意味します。たとえば、512 は 1,024 に切り上げられ、2,560 は 4,096 に切り上げるということです。
3 リレーショナル インターフェイスで使用できるインデックス セグメントの最大数は 119 です。 トランザクショナル インターフェイスの場合、最大数は、ページ サイズ 4,096 では 204、ページ サイズ 8,192 および 16,384 では 420 です。
|
ステータス コード 26 が返される条件
以下の条件は Btrieve Create API オペレーションに対して適用されます。『Btrieve API Guide』の Create(14)を参照してください。このマニュアルは、Pervasive PSQL 開発者用ドキュメントに含まれています。
- キーまたはセグメントの数が、指定のファイル形式およびページ サイズに対して許容される制限数を超えている。キーの最大数は、すべてのファイル形式およびページ サイズにおいて 119 個です。セグメントの数については上の表に示しています。
- キーオンリー ファイルが作成され、1 個以上のキーがデータ バッファーに提供された。
- キーオンリー ファイルが作成され、[予約重複ポインター]フラグがオン、[予約する重複ポインター数]フィールドの値が 1 以上である。
- データ バッファーに指定されているセグメント数が最大セグメント数の制限を超えている。
- [予約する重複ポインター数]フィールドの値が、最大キー数の制限を超えている。
以下の条件は Btrieve Create Index API オペレーションに対して適用されます。『Btrieve API Guide』の Create Index(31)を参照してください。このマニュアルは、Pervasive PSQL 開発者用ドキュメントに含まれています。
- データ バッファーに指定されているセグメント数が最大セグメント数の制限を超えている。
ヌル値を許可する列
ヌル値を許可する列には考慮も必要です。たとえば、ページ サイズが 4096 バイトのデータ ファイルでは、1 ファイル当たりのインデックス セグメント数は 119 に制限されます。真のヌルがサポートされるインデックス付きのヌル値を許可する列には 2 つのセグメントから成るインデックスが必要なため、1 つのテーブルではインデックス付きのヌル値を許可する列(Btrieve ファイルでは、インデックス付きでヌル値を許可する真のヌル フィールド)は 59 個までしか持てません。ページ サイズが小さくなると、この制限も小さくなります。
ファイル バージョンを 7.x 以降に設定し、TRUENULLCREATE をデフォルト値のオンに設定して作成されたファイルはすべて、真のヌルをサポートします。以前のファイル形式で作成されたファイル、あるいは Pervasive.SQL 7 を使用するか TRUENULLCREATE をオフに設定して作成されたファイルは、真のヌルをサポートせず、この制限を受けません。
27:キー ポジションが不正です。
指定されたキー フィールドの位置が 1 未満であるか、またはファイルに定義されたレコード長を超えています。キー ポジションがレコード長の値より大きいか、キー ポジションとキー長の合計値がレコード長を超えているかのいずれかです。
28:レコード長が不正です。
物理レコード長(ファイルの作成時に指定された論理レコード長に、重複キー、予約済みの重複ポインター、可変長レコード ポインターおよびブランク トランケーション情報のオーバーヘッドを加算した長さ)は、ページ サイズから 10 バイト(バージョン 5 ファイル形式でファイルが作成された場合は 8 バイト)を引いた値以下で、かつ 4 バイト以上である必要があります。
キー オンリー ファイルの場合、最大レコード長は 253 バイト(v5.0 ファイルでファイルを作成した場合は 255 バイト)です。
物理レコード長の計算に関する詳細については、『Pervasive PSQL Programmer's Guide』を参照してください。
29:キー長が不正です。
MicroKernel は、Btrieve の Create また Create Index API オペレーションに関して以下の条件の場合にこのステータス コードを返しますCreate(14)および Create Index(31)については、Pervasive PSQL 開発者用ドキュメントに含まれる『Btrieve API Guide』を参照してください。
- キー全体の長さ(全セグメント)が 255 を超えている。
- キー全体の長さ(全セグメント)が大き過ぎて、1 キー ページ当たりに入るキーが 4 個よりも少ない。たとえば、512 バイトのページに対して 200 バイトのキーなど。
- キー セグメントの長さが 0、または 255 バイトよりも長い。キー タイプが長さを表している場合、キー セグメント長はキー タイプに一致している必要があります(たとえば、整数値のキーの長さは偶数である必要があります)。ファイルのキー ページは少なくとも 4 つのキーを保持できる大きさでなければなりません。ページ サイズが小さいため指定したキー長(オーバーヘッドを含む)を 4 つ格納できない場合は、ファイルのページ サイズを大きくするか、キー長を短くします。
- 列のヌル インジケーター格納用に、1 バイトの追加スペースが必要です。インデックスまたはキーが、ヌル値を許可する 255 文字の CHAR 型列(または 254 文字の VARCHAR 型列)を参照する場合に、SQL の CREATE INDEX ステートメント実行時や、SQL の PRIMARY KEY または FOREIGN KEY の実行時に、このエラーが発生します。実際のインデックス長は、この追加バイトによって 1 バイト長くなり、計 256 バイトとなります。このエラーを解消するには、列のサイズを小さくするか、列を NOT NULL として作成し、再試行してください。外部キーの場合、列のサイズを小さくする場合は、参照する列と参照される列の両方を小さくする必要があります。
- キー セグメントの長さが 4 よりも長く、そのキー セグメントのデータ型が AUTOINCREMENT である。
- キー セグメントのデータ型が DATE、TIME、BFLOAT または AUTOINCREMENT で、その長さが奇数である。
- キー セグメントのデータ型が NUMERICSTS で、その長さが 2 未満である。
- キー セグメントのデータ型が CURRENCY または TIMESTAMP で、その長さが 8 以外である。
- キー セグメントのデータ型が DATE、TIME、BFLOAT または AUTOINCREMENT で、その長さが奇数である。
- キー セグメントのデータ型が NULL INDICATOR SEGMENT で、その長さが 1 以外である。
- キー セグメントのデータ型が GUID で、その長さが 16 以外である。
- キー セグメントのデータ型が BINARY([旧形式の BINARY データ型を使用]フラグがオン)で、その長さが奇数である。
30:指定されたファイルは MicroKernel ファイルではありません。
このステータス コードは次のいずれかの状況で返されます。
- このファイルは MicroKernel が作成したものではないか、v3.x より前の MicroKernel が作成しました。
- 古いバージョンの Btrieve を使用しているときに、古いバージョンとは互換性のない形式を持つ新しいバージョンによって作成されたファイルを開きました。
- ファイルの先頭ページが破損しています。この場合は、データ ファイルのバックアップ コピーを使用してください。このステータス コードを受け取ったとき、ソース ファイルのヘッダ ページが破損している可能性がある場合は、『Advanced Operations Guide』の説明に従ってファイルを回復してください。
- 有効な Btrieve ファイルにアクセスしようとしました。このステータス コードは、旧バージョンのエンジンが新しいファイル形式にアクセスしたときに返されます。予想される状況は、新しいサーバー エンジンで作成したデータが、その後以前のバージョンのワークグループ エンジンで使用される場合です。ファイル形式が、そのファイルを開こうとした MicroKernel エンジンよりも新しい場合にステータス 30 が返されます。特に、6.x エンジンで 7.x ファイルにアクセスするとこのエラーが発生します。
- メモ: 5.x エンジンで 6.x ファイルにアクセスした場合、以前はステータス 2 「アプリケーションで I/O エラーが発生しました」が返されました。
31:ファイルは既に拡張されています。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
アプリケーションは既に拡張されているファイルを拡張しようとしました。ファイルの拡張を行えるのは 1 回だけです。
32:ファイルを拡張できません。
MicroKernel は、オペレーティング システムのファイル サイズ制限を超えようとしているファイルを収容するための、エクステンション ファイルを作成する必要があります。しかし、新しいエクステンション ファイルを作成して開こうとすると、オペレーティング システムからエラーが出されます。このステータス コードの原因として、ディレクトリがいっぱいである、ディスクがいっぱいである、または MicroKernel がオペレーティング システムから十分な権限を与えられていない、などが考えられます。
33:MicroKernel をアンロードできません。
DOS 環境の場合、MicroKernel は、以下の原因でこのステータス コードを返します。
- MicroKernel をロードした後で別の常駐終了型(TSR)プログラムをロードしているときに、MicroKernel をアンロードしようとしました。MicroKernel をアンロードする前に、他の TSR プログラムをアンロードしてください。
- DOS/4G エクステンダーと BSTUB インターフェイスを使用する 32 ビット アプリケーションから MicroKernel をアンロードしようとしました。
34:指定された拡張名が不正です。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
アプリケーションが拡張パーティションに無効なファイル名を指定しました。ファイル名が有効かどうか確認してください。
35:アプリケーションでディレクトリ エラーが発生しました。
Get Directory オペレーションが存在しないドライブを指定したか、Set Directory オペレーションが無効なパス名を指定したかのいずれかです。ドライブとパス名が有効かどうか確認してください。
37:別のトランザクションが実行中です。
同じユーザーまたはタスクによって別のトランザクションが実行されているときに、アプリケーションが Begin Transaction(19 または 1019)オペレーションを発行しました。アクティブなトランザクションがネストされているかどうかは問題になりません。このステータス コードは、アプリケーション内でネストされたトランザクションに問題があることを示している場合もあります。
38:MicroKernel で、トランザクション制御ファイルの I/O エラーが発生しました。
このステータス コードは MicroKernel バージョン 7.0 以降では使用されていません。
MicroKernel がトランザクション制御ファイルに書き込みを行おうとしました。このステータス コードを受け取った原因として、ディスクがいっぱいである、ディスクの書き込みが禁止されている、MicroKernel のロード時に作成されるトランザクション制御ファイル(BTRIEVE.TRN)が削除されている、トランザクション制御ファイルに読み取り専用フラグが設定されている、トランザクション制御ファイルが破損している、などが考えられます。
39:End Transaction または Abort Transaction オペレーションを実行する前に、Begin Transaction オペレーションを実行する必要があります。
アプリケーションは End Transaction(20)または Abort Transaction(21)オペレーションを発行しましたが、対応する Begin Transaction(19 または 1019)オペレーションが実行されていません。プログラム内の End Transaction オペレーションまたは Abort Transaction オペレーションは、Begin Transaction オペレーションの完了後に実行するようにしてください。
40:ファイル アクセス要求が許容されるファイルの最大数を超えました。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
アプリケーションは、トランザクション内で許可される最大数を超えるファイルにアクセスしようとしました。MicroKernel の構成時に、論理トランザクション中にアクセスできるファイルの最大数を設定します。
41:実行しようとした操作は MicroKernel では許可されていません。
アプリケーションが、これらの操作状況では許可されていないオペレーションを実行しようとしました。たとえば、次のような例です。
- アプリケーションが、キー オンリー ファイルで Step オペレーションを実行しようとしました。
- サーバー エンジンを使用している場合、MicroKernel が呼び出した Continuous オペレーションのキー番号パラメーターが無効です。
- MicroKernel は、ファイルやパフォーマンスに多大な影響を与えるという理由で、いくつかのオペレーションについてトランザクション中の実行を禁止しています。この特定のオペレーションとは、Set Owner、Clear Owner、Create Index、Drop Index です。
- 9.x 以降のエンジンで実行されているアプリケーションが、6.x(0600)より前の形式のファイルを作成しようとしました。
42:以前にアクセラレイティド モードで開いたファイルが閉じられていませんでした。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- v5.x MicroKernel がアクセラレイティド モードでアクセスし、正常に閉じられていない v5.x データ ファイルをアプリケーションが開こうとしたか、v6.0 以降の MicroKernel が Set/Clear Owner オペレーション中に修復不能なエラーを検出したファイルを開こうとしました。ファイルの整合性は保証されません。破損ファイルの回復については、『Advanced Operations Guide』を参照してください。
- アプリケーションは、MicroKernel v5.x 形式のファイルを、v5.x MicroKernel を使用して開こうとしましたが、そのファイルは以前に v6.0 以降の MicroKernel がアクセスし、その後正常に閉じられなかったため、ディスク上にプリイメージ ファイルが残っています。バージョン 5.x の MicroKernel は、v6.0 以降の形式で作成されたプリイメージ ファイルを読み込むことはできません。
43:指定されたレコード アドレスが不正です。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- Get Direct オペレーションに指定されたレコード アドレスが不正です。アドレスがファイル境界の外にあるか、アドレスがデータ ページ内またはデータ ページ上のレコード境界上にありません。あるいは、指定されたアドレスのレコードが削除されています。Get Direct オペレーションの場合、Get Position オペレーションが取得した 4 バイトのアドレスを使用してください。
- このステータス コードは、レコードのファイルが v5.x 形式である場合、ファイル アクセスに矛盾が発生していることを示す場合があります。たとえば、タスク 1 がファイルを排他トランザクション内でロックしているとします。タスク 2 は同じファイルからレコードを読み込んで、トランザクションが挿入したレコードを更新するものとします。タスク 2 がレコードを読み込んだ後にタスク 1 がトランザクションを中止した場合、タスク 2 は Update オペレーションの発行時にこのステータス コードを受け取ります。
- レコードの物理ロケーションに基づいてパーセンテージをシークする Find Percentage オペレーションの場合、指定されたレコード アドレスが不正です。
- ファイルが破損している可能性があるため、ファイルを回復する必要があります。破損ファイルの回復については、『Advanced Operations Guide』を参照してください。
44:指定されたキー パスが不正です。
アプリケーションは、Get Direct/Record オペレーションを使用して、対応するレコード内で値がヌルになっているキーのインデックス パスに位置を設定しようとしました。MicroKernel は、ヌル キー値に基づいて位置を設定することはできません。
45:指定されたキー フラグが不正です。
Create オペレーションでのキー フラグの指定に矛盾があります。キーに複数のセグメントがある場合、キー内の各セグメントの重複属性、変更可能属性、ヌル属性は同じである必要があります。また、キー オンリー ファイルでヌル キー属性またはマニュアル キー属性を使用することはできません。アプリケーションが、セグメント キーの 2 つ以上のセグメントに対して異なるオルタネート コレーティング シーケンス(ACS)を指定しようとした場合も、MicroKernel はこのステータス コードを返します。
46:要求したファイルへのアクセスは拒否されました。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- アプリケーションがリードオンリー モードでファイルを開き、そのファイルに対して書き込み操作を実行しようとしました。
- アプリケーションが、オペレーティング システムによってリードオンリーのフラグが設定されたファイルに対して書き込み操作を実行しようとしました。
- アプリケーションがファイルを開くときに、更新に必要な正しいオーナー ネームを指定しませんでした。
- (ワークグループ エンジンのみ)あるクライアント マシンが既にサーバー MicroKernel を使って開いているファイルを、ワークグループ エンジン ユーザーまたはタスクが開いた場合、ワークグループ エンジン ユーザーがファイルへの書き込みを行おうとすると、このステータス コードが返されます。
- (9.x 以降のエンジンのみ)アプリケーションが 5.x 形式のファイルに対して書き込み操作を実行しようとしました。9.x 以降のエンジンを使用しているとき、5.x 形式のファイルに対して Insert や Delete などの書き込み操作は実行できません。
47:開いているファイルの数が許容される最大数を超えています。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
48:オルタネート コレーティング シーケンスの定義が不正です。
MicroKernel は、次の理由によりこのステータス コードを返します。
- オルタネート コレーティング シーケンス(ACS)定義の先頭バイト(識別バイト)に、16 進の AC(ユーザー定義の ACS)、AD(ロケール固有 ACS)、または AE(インターナショナル ソート規則のサポート)が含まれていません。最初のバイトには適切な値を入れてください。
49:拡張キー タイプが不正です。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- 不正な拡張キー タイプを持つファイルまたはインデックスを作成しようとしました。
- BINARY キーまたはキー セグメントにオルタネート コレーティング シーケンス(ACS)を割り当てようとしました。ACS を割り当てることができるのは、STRING、LSTRING、WSTRING、WZSTRING、ZSTRING キー タイプのみです。
- ACS が必要なインデックスを定義しましたが、ファイルおよびデータ バッファー内に渡されたキー定義のいずれにも ACS 定義が存在しません。
- MicroKernel が v5.x 形式でファイルを作成するよう設定されている場合に、大小文字区別フラグと ACS フラグの両方が設定されたキー セグメントを作成しようとしました。この組み合わせは、v5.x ファイルでは無効です。
- [作成ファイルのバージョン]の値に v6.x を設定して、Pervasive.SQL V7 の新しいデータ型である CURRENCY または TIMESTAMP を使ってファイルを作成しようとしました。v7.x より前のファイルは、これらのキー タイプをサポートしていません。このコンポーネントの設定を上げてください。
- [作成ファイルのバージョン]の値に v9.0 を設定して、Pervasive PSQL v11 SP2 の新しいデータ型 GUID などを使ってファイルを作成しようとしました。Pervasive PSQL v11 SP2 より前のファイル バージョンでは GUID データ型をサポートしません。
[作成ファイルのバージョン]の設定を変更するには
- Pervasive PSQL Control Center を起動します(『Pervasive PSQL User's Guide』の Windows での PCC の起動を参照してください)。
- [エンジン]ノードを展開し、目的のエンジン名を探します。
- エンジン名を右クリックして[プロパティー]を選択します。
- [ファイル互換性]をクリックします。
- 右側のフレーム内で、[作成ファイルのバージョン]を調整します。
50:ファイルのオーナーは既に設定されています。
アプリケーションは、既にオーナーを持つファイルに Set Owner オペレーションを実行しようとしました。Clear Owner オペレーションを使用して、前のオーナーを削除してから新しいオーナーを指定してください。
51:オーナー ネームが不正です。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- アプリケーションが Set Owner オペレーションからこのステータス コードを受け取った場合、キー バッファーに指定されているオーナー ネームとデータ バッファーに指定されているオーナー ネームが矛盾しています。
- Open オペレーションまたは DROP TABLE ステートメントの実行中にこのステータス コードが発生した場合、アプリケーションはオーナー ネームが割り当てられているファイルを開こうとしました。アプリケーションはデータ バッファーに正しいオーナー ネームを指定する必要があります。データ バッファーのオーナー ネームがヌルで終了していること、およびデータ バッファー長がオーナー ネームと最後のヌルを収容するのに十分な長さに設定されていることを確認してください。
52:キャッシュへの書き込み中にエラーが発生しました。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
キャッシュ バッファーを使用可能にしようとしたときに、MicroKernel は以前にアクセラレイティド モードで開かれたファイルのデータをディスクに書き込もうとしました。書き込み中にオペレーティング システムが I/O エラーを返しました。通常、このステータス コードはハードウェア メモリの障害を示しています。Btrieve をいったんアンロードし、再ロードしてから操作を継続してください。
53:言語インターフェイスのバージョンが不正です。
アプリケーションは、Btrieve v3.15 以前の言語インターフェイスで可変長レコードを含むファイルにアクセスしようとしました。
54:レコードの可変長部分が破損しています。
Get オペレーションまたは Step オペレーション中に、MicroKernel がレコードの可変長部分の全体または一部を読み込むことができませんでした。MicroKernel は可能な限り多くのデータをアプリケーションに返します。通常、このステータス コードは、可変長レコードを格納するのに使用される 1 つまたは複数のページが破損していることを示します。MicroKernel が返すデータ バッファー長を調べ、返されたレコードの量を確認してください。破損ファイルの回復については、『Pervasive PSQL User's Guide』を参照してください。
55:アプリケーションが AUTOINCREMENT キーに不正な属性を設定しました。
AUTOINCREMENT キーによってインデックス設定されたデータ フィールドは、AUTOINCREMENT キーのキー番号が新しいセグメント キーのキー番号より小さく、フィールドを参照している新しいデータ型フラグが AUTOINCREMENT でない場合に限り、異なるセグメントキーに属することができます。
56:インデックスが不完全です。
Create Index オペレーション(31)または Drop Index オペレーション(32)の実行が完了する前に中断された場合は、インデックスが破損している可能性があります。Drop Index オペレーションを実行して、破損したインデックスをファイルから完全に削除し、必要な場合は Create Index オペレーションでインデックスを作成し直します。
57:拡張メモリ エラーが発生しました。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
Btrieve for DOS は、拡張メモリ マネージャーからエラーを受け取った場合に、このステータス コードを返します。通常、このステータス コードは、MicroKernel がメモリ マッピング レジスタ コンテキストを保存または回復することができなかったことを示しています。これは、拡張メモリを使用する他のアプリケーションと互換性がないことを意味します。
58:圧縮バッファー長が短すぎます。
このステータス コードは Pervasive.SQL 2000i 以降のバージョンでは使用されていません。
59:指定されたファイルは既に存在します。
Create オペレーション実行時に、アプリケーションがキー番号パラメーターに -1 を指定し、キー バッファー パラメーターに既存のファイル名を指定しました。既存のファイルを上書きする場合は、キー番号パラメーターから -1 は取り除いてください。既存のファイルをそのまま残す場合は、キー バッファー パラメーターに指定されているファイル名を変更します。
60:指定されたリジェクト カウントに達しました。
Get Next Extended、Get Previous Extended、Step Next Extended、Step Previous Extended のいずれかのオペレーションが、フィルター条件を満たすレコードを要求された数だけ検出する前に、MicroKernel がリジェクト カウントとして指定されたレコード数を拒否しました。データ バッファーに返された最初の 2 バイトを調べて、取得されたレコード数を確認してください。
61:作業領域が小さすぎます。
Get Next Extended、Get Previous Extended、Step Next Extended、Step Previous Extended オペレーションは、バッファーを作業領域として使用します。このステータス コードは、作業領域(デフォルト設定は 16 KB)のサイズが十分でないため、フィルターされるデータ バッファー構造と取得された最長のレコードを格納できないことを示しています。作業領域がフィルター条件または抽出指定を格納するのに十分なサイズで、選択または抽出されるすべてのフィールドを格納するのに十分なサイズであれば、ステータス コード 0 が返されます。
62:ディスクリプターが不正です。
このステータス コードは以下の状況で返されます。
- Get Next Extended、Get Previous Extended、Step Next Extended、Step Previous Extended のいずれかのオペレーションで渡されるディスクリプター(データ バッファー構造)が不正です。Extended オペレーション呼び出しに使用するディスクリプターの長さ(データ バッファーの最初の 2 バイト)は、ディスクリプターの長さと正確に一致していなければなりません。この条件は、必要以上の長さを宣言できるデータ バッファー長のオプションには適用されません。
- Stat Extended オペレーションで、データ バッファー内の識別バイト フィールドが 0x74537845 に設定されていないか、サブファンクション フィールドが 0x00000001 に設定されていません。または、Pervasive PSQL エクスプローラー フィールドが 0x00000000 に設定されていません。
- Get Direct/Chunk オペレーションまたは Update Chunk オペレーションで、データ バッファー内のディスクリプター構造が正しくないか、内部的な矛盾またはデータ バッファー長の矛盾により、ディスクリプター構造が矛盾しています。
- ActiveX コントロールのバッファーが、クリアも再割り当てもされていません。コードで Extended オペレーションを使用する前に、Init メソッドを使ってコントロールのバッファーをクリアおよび再割り当てしてください。さらに、AutoMode を使用している場合は、Init を呼び出す前に論理位置を確立しておく(GetLast、GetFirst、GetEqual など)必要があります。
63:Insert Extended オペレーションで指定されたデータ バッファー パラメーターが不正です。
Insert Extended オペレーションで不正なバッファーが指定されました。バッファー長が 5 バイト未満であるか、指定されたレコード数が 0 であるかのいずれかです。バッファー長またはレコード数を修正してください。
64:フィルター制限に達しました。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- Get Next Extended、Get Previous Extended、 Step Next Extended、Step Previous Extended のいずれかのオペレーション中に、リジェクト レコードに到達しました。オペレーションで指定された方向には、これ以上フィルター条件を満たすレコードがありません。これは、キー番号が指定するキーの最初のセグメントが、フィルター フィールドの最初の条件としても使用される場合にのみ適用されます。
- 取得するレコードの数が、フィルター条件を満たすファイル内のレコードよりも多くなっています。このオプションは Extended オペレーションのデータ バッファー内で指定されます。
65:フィールド オフセットが不正です。
Get Next Extended、Get Previous Extended、Step Next Extended、Step Previous Extended オペレーションのエクストラクタのフィールド オフセットが、取得されたレコードの長さに対して無効です。フィールド オフセットを正しい値にしてください(0 ~ レコード長から 1 を引いた値)。
66:オープンできるデータベースの最大数を超えました。
このステータス コードは Pervasive.SQL 2000i 以降のバージョンでは使用されていません。
MicroKernel が開こうとしたファイルにバインドされている MicroKernel データベースが多すぎます。このステータス コードを受け取らないようにするには、MicroKernel がオープンできるデータベース数により大きな値を設定する必要があります。
バウンド ファイルの詳細については、『Advanced Operations Guide』を参照してください。
67:MicroKernel が、SQL データ辞書ファイルを開けません。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- アプリケーションが MicroKernel データベースにバインドされているデータ ファイルを使用しようとしましたが、MicroKernel はいずれかの MicroKernel データ辞書ファイル(FILE.DDF、あるいはファイルに RI 定義がある場合は RELATE.DDF)、または設定ファイル(DBNAMES.CFG)を開けませんでした。
- [置換]オプションを使用してファイルを作成しようとしましたが、ファイル名とロケーションが同じバウンド MicroKernel データ ファイルが既に存在します。ただし、MicroKernel は MicroKernel データ辞書ファイル(FILE.DDF)または設定ファイル(DBNAMES.CFG)を開けませんでした。
データ ファイルに RI 定義がある場合、DBNAMES.CFG ファイルは、サーバー設定の[DBNames 設定ファイルのディレクトリ]オプションで指定されたロケーションにある必要があります。また、FILE.DDF と RELATE.DDF(ファイルに RI 定義がある場合)が、サーバー設定の[作業ディレクトリ]オプションで指定されたロケーションにあることを確認してください。
68:MicroKernel は、RI のカスケード削除オペレーションを実行できません。
アプリケーションが削除しようとしたレコードは 16 を超える階層レベルを持つため、MicroKernel は RI 制御が実行されているファイルに対してカスケードの削除規則を実施することができません。下位レベルからレコードを削除し、それからアプリケーションが最初に削除しようとしたレコードをもう一度削除してください。RI の詳細については、『Advanced Operations Guide』を参照してください。
69:Delete オペレーションが、破損したファイルに対して指定されました。
MicroKernel が Delete オペレーションに応答してカスケードの削除規則を実施しようとしたときに、アプリケーションでエラーが発生しました。このステータス コードは、関連ファイルが破損しており、そのファイルを再作成する必要があることを示しています。RI およびカスケードの削除規則については、『Advanced Operations Guide』を参照してください。
71:RI 定義に違反があります。
- RI 制御下のファイルに Insert オペレーションを実行しようとした場合は、挿入するレコード内の外部キー値に対応する主キーが参照ファイル内にありません。
- Update オペレーションを実行している場合、このステータス コードの原因として次の 2 つが考えられます。
- 主キーの値を変更しようとしました。
- 外部キーの値を、定義されている主キーには存在しない値に変更しようとしました。
- Delete オペレーションを実行しようとした場合は、制限規則が実施されていて、削除しようとしているレコードに含まれる主キー値が参照ファイルの外部キーを参照しています。RI の詳細については、『Advanced Operations Guide』を参照してください。
72:MicroKernel は、RI 参照ファイルを開けません。
FILE.DDF および DBNAMES.CFG が指定するロケーションに参照ファイルがありません。DBNAMES.CFG ファイルが名前付きデータベースに対して指定しているデータ ファイルのロケーションのうちのいずれかに参照ファイルがあることを確認してください。
- DBNAMES.CFG ファイルがサーバー上に定義されている場合は、ファイルのロケーションがドライブ名を含んでいないことを確認してください。
- DBNAMES.CFG ファイルがワークグループ エンジン用に定義されている場合は、ドライブ名が DBNAMES.CFG で指定されているものと同じである(そして同じロケーションにマップされている)ことを確認してください。
RI の詳細については、『Advanced Operations Guide』を参照してください。
73:RI 定義は同期が取れていません。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- MicroKernel データベースにバインドされているデータ ファイルを開こうとしましたが、そのファイルがバインドされているデータベースが DBNAMES.CFG ファイル内にありません。
- MicroKernel データベースにバインドされている RI 定義を持つデータ ファイルを開こうとしましたが、そのファイルのバインド先のテーブルがデータベースの FILE.DDF ファイルに見つかりません。あるいは、テーブルのロケーションおよびファイル名が、DBNAMES.CFG ファイルまたは FILE.DDF ファイルに設定されているファイルのロケーションおよびファイル名と矛盾しています。
- バウンド ファイルを変更しようとしましたが、そのファイルの RI 定義が RELATE.DDF ファイルの定義と矛盾しています。
- このファイルに関連付けられたファイルが同期していない場合に、Insert オペレーション、Delete オペレーション、または外部キーを変更する Update オペレーションを実行しようとしました(関連ファイルを開こうとした場合や変更しようとした場合も、このステータス コードが返されます)。
- [置換]オプションを使用してファイルを作成しようとしましたが、ファイル名とロケーションが同じバウンド MicroKernel データ ファイルが既に存在します。ただし、MicroKernel はその既存バウンド ファイルが同期していないことを検出しました(つまり、既存のファイルを開こうとしたときにも、このステータス コードが返されます)。
メモ
同一ネットワーク上の 2 つのサーバーに同一の名前付きデータベースは存在できません。したがって、同一ネットワークの別のサーバーへ辞書を移動することが目的の場合、1 つの方法は、新しいサーバーで名前付きデータベースを作成する前に、元のサーバーの名前付きデータベースを削除することです。
データベースの RI 制約を調べてください。RI 制約のチェック方法については、『Pervasive PSQL User's Guide』を参照してください。
76:参照ファイルに矛盾があります。
アプリケーションは、他のファイルを参照する RI 制御のファイルに対して Update、Insert、Delete のいずれかのオペレーションを実行しようとしました。この参照ファイルは既にエクスクルーシブ モードでオープンされているため、アプリケーションでは RI チェックのためにこのファイルを開くことができません。参照ファイルが閉じられるか、エクスクルーシブ以外のモードで開かれてから、もう一度オペレーションを実行してください。RI の詳細については、『Advanced Operations Guide』を参照してください。
77:アプリケーションでウェイト エラーが発生しました。
このステータス コードは MicroKernel バージョン 7.0 以降では使用されていません。
これは、情報を提供するステータス コードです。オペレーションをもう一度実行してください。MicroKernel はオペレーションを自動的に再試行しません。クライアント/サーバー MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- アプリケーションがオペレーションにウェイト ロック バイアスを指定しましたが、要求されたリソースは他のユーザーによってロックされています。
- アプリケーションは現在ウェイト トランザクションを処理中で、他のユーザーによってロックされているファイルにアクセスしようとしました。
Btrieve リクエスターを使用して MicroKernel にアクセスしている場合は、リクエストしたリソースがロックされていると、Btrieve リクエスターはしばらく待機した後、オペレーションを再試行します。サーバー ベースのアプリケーションが MicroKernel にアクセスして、リクエストしたリソースがロックされている場合は、ウェイトが必要です。この場合、MicroKernel がウェイトを実行することになります。しかし、このウェイトは MicroKernel を占有し、要求したリソースを解放しようとする他のユーザーを排除するため、MicroKernel はウェイトを実行しません。代わりに、MicroKernel はこのステータス コードを返します。サーバーベース アプリケーションは後で再試行する必要があります。
78:MicroKernel がデッドロック状態を検出しました。
アプリケーションは処理を継続する前に、トランザクションを中止または終了したり、すべてのレコード ロックを解除したりすることによって、すべてのリソースをクリアする必要があります。これによりデッドロックが解消され、他のアプリケーションでは待機しているリソースへのアクセスが可能になります。
79:プログラミング エラーが発生しました。
このステータス コードは MicroKernel バージョン 7.0 以降では使用されていません。
MicroKernel が明確に特定できない誤動作または MicroKernel が回復できない誤動作が発生しました。操作を再試行してもエラーが再現する場合は、システムの破損が考えられます。再起動してシステムをクリアしてから、もう一度オペレーションを実行してください。
80:MicroKernel でレコード レベルの矛盾が発生しました。
レコード レベルの矛盾があるため、MicroKernel は Update オペレーションまたは Delete オペレーションを実行しませんでした。たとえば、ステーション A がレコードを読み込んでいるときに、ステーション B が同じレコードを読み込んでそれを更新し、その後にステーション A がそのレコードを更新しようとしています。アプリケーションは、Update オペレーションまたは Delete オペレーションを再実行する前に、レコードを再度読み込む必要があります。また、矛盾を防止するため、アプリケーションはレコード ロックを使用することができます。
キー オンリー ファイルでは、レコードの読み込みの後、あるいは更新または削除を行う前に、レコードがファイルの B ツリー内で移動されると、このステータス コードが返されます。他のレコードを挿入、更新、または削除した結果、レコードが移動することもあります。
81:MicroKernel でロック エラーが発生しました。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- アプリケーションが複数のレコード ロック状態にあるレコードをアンロックしようとしましたが、データ バッファーに格納されているレコードの位置が、関連するファイル内でロックされているレコードと対応しなくなりました。
- アプリケーションが複数レコード ロック(単一レコード ロック)を使って単一レコード ロック(複数レコード ロック)を解除しようとしました。
82:MicroKernel がポジショニングを失いました。
重複属性のキーで Get Next オペレーションまたは Get Previous オペレーションを実行しているときに、アプリケーションが、削除されたレコードまたは他のアプリケーションによってキー値が変更されたレコードを取得しようとしました。Get Equal オペレーション、または Get Direct/Record オペレーションを使用して位置を再確立してください(関連するポジション エラーについては、ステータス コード 44:指定されたキー パスが不正です。を参照してください)。
83:MicroKernel は、トランザクション外で読み込まれたレコードを更新または削除しようとしました。
このステータス コードは MicroKernel バージョン 7.0 以降では使用されていません。
アプリケーションが、トランザクション内で読み込んでいないレコードを更新または削除しようとしました。アプリケーションは、データを変更する前にトランザクション内でそのレコードを読み込んでおく必要があります。
84:レコードまたはページはロックされています。
- Insert、Update、または Delete のいずれかのオペレーションで、インデックス ページをロックして、キー値を挿入または削除しようとしました。アプリケーションを使って確認を行い、このステータス コードが返されていたらオペレーションをもう一度実行してください。
- アプリケーションは次のいずれかの操作を行おうとしました。
- 現在他のアプリケーションがロックしているレコードにノーウェイト ロックを適用しようとした。
- 他のアプリケーションが 1 つ以上のアクティブなレコード ロックをファイル内に保持している場合に、ノーウェイト トランザクションでそのファイルにアクセスしようとした。
- 他のアプリケーションによってロックされているレコードを更新または削除しようとした。
- アプリケーションでは、次のいずれかの対策をとることができます。
- 正常に終了するまでオペレーションを再試行します。これは、ネットワークのトラフィックが比較的低い場合には最も単純かつ迅速な解決方法といえます。
メモ
並行トランザクション内でステータス 84 を受け取った場合、アプリケーションで再試行する回数を制限するようにしてください。再試行の回数を制限しないと、アプリケーションが別のトランザクションでデッドロック状態に陥ります。再試行を何回か行った後にまだステータス 84 が返される場合は、トランザクションを一旦中止し、再度そのトランザクションを試行してください。
- ウェイト オプションをサポートしているバージョンの場合、ノーウェイト オプションの代わりにウェイト オプション(+100/+300)を使用します。
85:ファイルはロックされています。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- あるユーザーが排他トランザクションでファイルをロックしている場合に、他のユーザーがそのファイルの全体または一部をロックしようとしています。
- ワークグループ MicroKernel が既にファイルを開いているときに、リクエスターがロードされているクライアント マシンがサーバー MicroKernel を介して同じファイルを開こうとしました。サーバー MicroKernel は、排他アクセスが実行できないため、そのファイルを開くことができません。リクエスターがロードされているクライアント マシンはこのステータス コードを受け取ります。
- MicroKernel でファイルを開いている場合に、ファイル名が同じで拡張子が異なる 2 つのファイルが存在します(たとえば、INVOICE.HDR と INVOICE.DET)。一方のファイルが Continuous オペレーション モードで開かれると、その結果、MicroKernel がデルタ ファイル(INVOICE.^^^ など)を生成します。そして、もう一方のファイルを開こうとしたときに、MicroKernel はこのステータス コードを返します。この理由により、ファイルに名前を付けるときは、拡張子を変えるだけでなく、まったく異なる名前を付けることをお勧めします。
- 出現のパターンはありませんが、ウィルス対策ソフトウェアがファイルをスキャンするためにファイルを開いてロックすることが原因で、ファイルを閉じるときにステータス 85 を受け取り、次のデータベース オペレーションが失敗することがあります。これを解決するには、ウィルス対策ソフトウェアが Pervasive PSQL データ ファイルをスキャンしないように設定します。ファイルを除外する方法については、ウィルス対策ソフトウェアのマニュアルを参照してください。
- Continuous オペレーションが設定されているデータ ファイルに対して削除操作を試行しました。Continuous オペレーションが設定されているデータ ファイルは、リレーショナル インターフェイスおよびトランザクショナルインターフェイスから削除が行えません。さらに、このファイルはキーの変更などファイル構造の変更も受け付けません。
86:ファイル テーブルがいっぱいです。
データベース エンジンが Btrieve データ ファイルを示すメモリを割り当てられなかった場合、アプリケーションでこのステータス コードを受け取る可能性があります。また、このデータベース エンジンは、同時に処理できるファイル数が 65,535 個までという制限もあります。その制限に達した場合にもこのステータス コードが返ります。
このステータス コードが返る 1 つの要因として考えられるのは、既に開いたデータ ファイルを閉じないまま、ファイルをさらに開き続けるアプリケーションです。Monitor ユーティリティでアクティブなファイルを見て、この現象が発生していないかどうかを調べてください。『Advanced Operations Guide』のアクティブ ファイルの表示を参照してください。
また、ステータス コード 87:ハンドル テーブルがいっぱいです。 についても考慮してください。ステータス コード 86 はファイル用で、ステータス コード 87 はハンドル用です。1 個の指定ファイルに対して複数のハンドルを開くことができます。データベース エンジンが Btrieve ハンドル用のメモリを割り当てることができない場合、アプリケーションはステータス 87 を受け取ります。クライアント アプリケーションに割り当てられるハンドル数はメモリによって制限されます(DOS リクエスターを使用して DOS アプリケーションへ割り当てるような古いタイプのハンドルは、65,535 個の制限があります)。
87:ハンドル テーブルがいっぱいです。
このステータス コードは Pervasive.SQL 2000i 以降のバージョンでは使用されていません。ハンドル テーブルはエンジンが動的に管理します。
MicroKernel に設定されている数を超えるハンドルを開こうとしたか、オペレーティング システムが許可する数を超えるファイルを MicroKernel が開こうとしたかのいずれかです。
- オペレーティング システムでハンドル数を増やす構成については、オペレーティング システムのマニュアルを参照してください。
なお、次に説明する、MicroKernel がオペレーティング システムからハンドルを取得するときのプロセスを理解しておくと役に立ちます。同じファイルを何度も開いても、MicroKernel はオペレーティング システム のハンドルを 1 つしか使用しません。ただし、そのファイルが v6.x 以降の形式で、MEFS モードで共有されている場合、MicroKernel は関連する .LCK ファイルのためにもう 1 つのハンドルを開きます。
ファイルが v5.x 形式の場合、MicroKernel は .PRE ファイルのためにもう 1 つハンドルを要求します。また、形式に関わらずファイルが Continuous オペレーション モードにある場合も、MicroKernel はデルタ ファイル用にもう 1 つのハンドルを要求します。ファイルが拡張されている場合、MicroKernel は各エクステンション ファイルのためにオペレーティング システム ハンドルを要求します。
88:アプリケーションでモードの不一致エラーが発生しました。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- アプリケーションがエクスクルーシブ モードでファイルを開いている場合、その他のすべてのアプリケーションが同じファイルを任意のモードで開こうとしたときに、このステータス コードが返されます。
- アプリケーションがエクスクルーシブ以外のモードでファイルを開いている場合、その他のすべてのアプリケーションが同じファイルをエクスクルーシブ モードで開こうとしたときに、このステータス コードが返されます。
- MicroKernel Continuous オペレーション モードを使用している場合:
- Continuous オペレーションからファイルを削除しようとしましたが、そのファイルは Continuous オペレーション モードに置かれていません。
- Continuous オペレーションからファイルを削除しようとしましたが、他のクライアントがそのファイルを Continuous オペレーションに置いていました。
- ファイル名が同じで拡張子が異なる 2 つのファイルを Continuous オペレーションに含めようとしました。
- ファイルを Continuous オペレーションに含めようとしましたが、そのファイルは既に Continuous オペレーションに置かれています。
- ファイルは以前 Continuous オペレーションに置かれていましたが、サーバーがクラッシュしました。これらのファイルを Continuous オペレーションから削除しようとすると、ステータス コード 88 が返されます。
上記の最後のケースでは、一度サーバーがダウンすると、Btrieve エンジンはファイルが Continuous オペレーションに置かれていたかどうかがわからなくなります。このような状況から、ステータス コード 88 が返されます。
ファイルを Continuous オペレーションから削除するには、Continuous オペレーション モードを終了する前にファイルを開く必要があります。ファイルが再度開かれると、Btrieve エンジンは Continuous オペレーション フラグが設定されていることを検出し、デルタ ファイルを探します。その時点で、デルタ ファイルのロール インが発生します。
既存のデルタ ファイルのロール インを開始するには、関連するデータ ファイルを開いておく必要があります。ファイルは、Function Executor などのユーティリティや、そのファイルを使用するアプリケーションによって開くことができます。ファイルを繰り返し開いたり閉じたりして使用するようなアプリケーションの場合は、Function Executor を使ってファイルを開くことをお勧めします。これをお勧めするのは、デルタのロール インは優先順位の低いタスクだからです。ロール インがこのように設計されたのは、ロール インが発生している間でもファイルを使用できるようにするためです。ロール インが完了していないのにアプリケーションがファイルを閉じた場合は、そのファイルが再オープンされたときに再度ロール インが開始されます。優先順位の低いタスクなので、ロール イン処理にはかなり時間がかかることがあります。エンジンはロール インを完了すると、デルタ ファイルを削除します。
89:名前エラーが発生しました。
このステータス コードは MicroKernel バージョン 5.0 以降では使用されていません。
デバイスのリダイレクト先のショート ネームを指定する前に BSERVER がロードされました。BSERVER を起動する前に、共有するすべてのショート ネームを NET SHARE コマンドを使って指定する必要があります。
90:リダイレクト デバイス テーブルがいっぱいです。
このステータス コードは MicroKernel バージョン 6.0 以降では使用されていません。
91:アプリケーションでサーバー エラーが発生しました。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- リクエスターがサーバーとのセッションを確立できません。クライアントまたはサーバー MicroKernel がロードされていないか、サーバーがアクティブになっていないかのいずれかです。
- SPX ドライバーがインストールされていないか、または古いバージョンです。
- MicroKernel が同時に開くことのできるセッションの最大数に達しました。このステータス コードを受け取らないようにするには、[セッション数]設定オプションの値を大きくします。Pervasive.SQL V8 を開始している場合は、MicroKernel がセッション数を動的に管理するため、セッション数を手動で増減させることはできません。
- アプリケーションがファイルにパスを指定しましたが、そのパスにボリューム名が含まれていません。
- MicroKernel ルーターがロードされていません。また、次の状況が発生しています。リモート呼び出しを行うために MicroKernel ルーターと MicroKernel の両方を使っているアプリケーション(したがって、Open オペレーションを実行するときにサーバー名とボリューム名を指定します)がリモート ファイルを開こうとしました。MicroKernel ルーターはサーバー名を解釈しないため、MicroKernel がサーバー名を解釈しようとしましたができませんでした。
- ネットワーク環境に通信またはネットワーク アドレスの問題があるため、MicroKernel のリクエストは送信先のサーバー アドレスに到達しませんでした。クライアントとサーバーのネットワーク コンポーネントが最新のものであり、現在のネットワーク環境での動作が保証されていることを確認してください。
受信パケット サイズを調整するには
- PCC でサーバーのプロパティにアクセスします(『Advanced Operations Guide』の PCC でローカル クライアントの設定にアクセスするにはを参照してください)。
- プロパティ ツリーで[通信バッファー サイズ]をクリックします。
- [受信パケット サイズ]の値が環境に適していることを確認してください。
92:トランザクション テーブルがいっぱいです。
このステータス コードは MicroKernel バージョン 7.0 以降では使用されていません。
アプリケーションがアクティブなトランザクションの最大数を超えました。設定プロパティを使用して、[トランザクション数]環境設定オプションの値を増やしてください。
93:レコードのロック タイプが一致していません。
アプリケーションは、単一レコード ロック(+100/+200)と複数レコード ロック(+300/+400)を同時に同じファイル内に設定しようとしました。一方のタイプのロックをすべて解除しなければ、もう一方のタイプのロックは実行できません。
94:アプリケーションでアクセス権のエラーが発生しました。
MicroKernel は、次の状況でこのステータス コードを返します。
- アプリケーションが、適切な権限なしでディレクトリ内のファイルを開こうとしたか、あるいは作成しようとしました。MicroKernel がユーザーに割り当てられているネットワーク権限を無効にすることはありません。
- 指定されたサーバーはルーティング テーブル内にありますが、クライアントはそのサーバーにログインしていません。
- サーバー上のシステム DSN(データ ソース名)で、データ ファイルへのパス名にエラーがあります。
95:セッションは既に無効になっています。
サーバー MicroKernel は次のいずれかの理由でこのステータス コードを返します。
- 既に確立されていたセッションが、クライアント マシン、サーバー、またはネットワークでのエラーが原因でアクティブではなくなりました。クライアント マシンがサーバーに接続されていることを確認してから、Btrieve リクエスターをいったんアンロードし、再ロードしてください。
SPX プロトコルを使用している場合:
- サーバー MicroKernel は SPX セッションの最大数に達しました。Monitor ユーティリティを使用してセッション数の情報を調べます。このステータス コードを受け取らないようにするには、メモリを追加します。セッション数は、使用可能なメモリの限度まで動的に管理されます。
- クライアント マシンが適切な時間内あるいは適切な回数の再試行後にサーバーから応答を得られない場合、このステータス コードは時間遅延の問題があることを示す場合があります。タイムアウトおよび再試行のパラメーターを大きくする方法については、ネットワークの設定に関するマニュアルを参照してください。多量のネットワーク トラフィックを扱う WAN 環境や LAN 構成では、多くの場合、この操作が必要になります。
受信パケット サイズを調整するには
- PCC でサーバーのプロパティにアクセスします(『Advanced Operations Guide』の PCC でローカル クライアントの設定にアクセスするにはを参照してください)。
- プロパティ ツリーで[通信バッファー サイズ]をクリックします。
- [受信パケット サイズ]の値が環境に適していることを確認してください。
- SPX タイムアウト パラメーターが、クライアント マシンの NET.CFG ファイルとサーバーの SPXCONFG.NLM ファイルの両方で次のように設定されていることを確認してください。
-
SPX VERIFY TIMEOUT=54
SPX LISTEN TIMEOUT=108
SPX ABORT TIMEOUT=540
-
この 3 つの値は、1:2:10 の比率になっている必要があります。これらの値は、最大でデフォルト値の 3 倍まで増やすことができます。値を増やした後で再度このステータス コードを受け取った場合、問題の原因はこれらの設定ではないと思われます。
- Windows サーバーの場合、レジストリの[受信パケット サイズ]設定の値が 10 進の 576、つまり 240h であることを確認してください。レジストリの MaxPktSize 設定へのパスは、
HKEY_LOCAL_MACHINE¥System¥currentControlSet¥Services¥NwInkIPX¥NetConfig¥MaxPktSize です。
- ネットワーク タイムアウト パラメーターの値を増やした後で、再度このステータス コードを受け取った場合、通常はネットワーク通信に問題があることを示しています。新しいバージョンのネットワーク カードおよびドライバーを使用していることを確認してください。また、互換性のない LAN カード ドライバーが原因でこのステータス コードが返されることもあります。ネットワーク通信のトラブルシューティングについては、LAN 管理者に問い合わせてください。
- [スタート|ファイル名を指定して実行]を選択します。
- 「Regedit」と入力して[OK]をクリックします。レジストリ エディターが開きます。
- Regedit を使ってサーバーのレジストリに次の変更を行います。
- HKEY_Local_Machine|System|CurrentControlSet|Services|NwLnkIpx|<Network Card>|MaxPktSize = 240 Hex
- HKEY_Local_Machine|System|CurrentControlSet|Services|NwLnkIpx|<Network Card>|NetworkNumber = <ゼロでない値>
- 次のレジストリ エントリを追加します。
- HKEY_Local_Machine|System|CurrentControlSet|Services|LanManServer|Parameters|MinClientBufferSize regdword = 500
96:通信環境エラーが発生しました。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- サーバー上の MicroKernel に接続しようとしましたが、SPX 接続テーブルまたは MicroKernel のクライアント テーブルがいっぱいです。このエラーを受け取らないようにするには、メモリを追加します。これらのリソースは両方とも、使用可能なメモリの限度まで動的に管理されます。
- DBNAMES.CFG ファイルに異なるサーバー上のデータ ロケーションを指定している名前付きデータベースの定義が含まれている場合、MicroKernel を呼び出すアプリケーションはこのステータス コードを返すことがあります。
97:データ バッファーが小さすぎます。
アプリケーションは、MicroKernel または Btrieve リクエスターの現在の許容値より長いレコードを読み込みまたは書き込みしようとしました。次のような場合があります。
- Update、Insert、Create のいずれかのオペレーションの場合、アプリケーションが指定したレコードのデータ バッファー長がメッセージ バッファー長より長い場合にこのステータス コードが返されます。
- Get、Step、Stat のいずれかのオペレーションの場合、アプリケーションで指定されているデータ バッファー長に関係なく、MicroKernel が返すデータの長さよりメッセージ バッファーが短い場合に、アプリケーションはこのステータス コードを受け取ります。
- Get Chunk オペレーションまたは Update Chunk オペレーションの場合、取得または更新されたチャンクの合計サイズがメッセージ バッファー長を超えています。
- DOS リクエスターのみ:Btrieve リクエスターを再ロードして、メッセージ バッファー サイズの値を大きくします。これは、 /D パラメーターを使って行います。このパラメーターの説明は『Getting Started with Pervasive PSQL』に記載されています。
- Windows サーバーの場合、レジストリの[受信パケット サイズ]設定の値が 10 進の 576、つまり 240h であることを確認してください。レジストリの MaxPktSize 設定へのパスは、HKEY_LOCAL_MACHINE¥System¥currentControlSet¥Services¥NwInkIPX¥NetConfig¥MaxPktSize です。
100:使用可能なキャッシュ バッファーがありません。
これは、MicroKernel がロード時に割り当てたキャッシュ バッファーをすべて使用してしまったことを示しています。
アプリケーションがユーザー トランザクション内で大量の書き込み操作(Insert、Update、および Delete)を使用する場合に、このステータス コードが返されることがあります。現在実装されている MKDE では、トランザクションが完了するまで、変更ページはすべてキャッシュ内に存在する必要があります。
メモ:使用可能なメモリが制限されているマシンでは、数千もの書き込み操作を含む非常に大きなトランザクションは正常に終了できない可能性があります。
開発者の方は、もっと頻繁にトランザクションをコミットするようにアプリケーションを修正することで、キャッシュ内にとどまる変更ページを少なくすることができます。この問題を解決するもっと一般的な方法は、設定オプションの[キャッシュ割当サイズ]を増やして MicroKernel を再ロードすることです。
Windows では、データベースを初めて起動したときに、物理メモリ量の 20% をキャッシュ割当サイズとして設定し、その値を Windows レジストリに書き込みます。その後は、エンジンが起動するたびにレジストリからその値を読み取ります。この設定値は再計算されません。システムにメモリを追加したり取り除いたりした場合には、新しく使用可能になったメモリを最大限活かせるようにこのキャッシュ割当サイズの設定を変更する必要があります。
キャッシュ割り当てを増やすには次のようにします。
- Pervasive PSQL Control Center を起動します(『Pervasive PSQL User's Guide』の Windows での PCC の起動を参照してください)。
- [エンジン]ノードを展開し、目的のエンジン名を探します。
- エンジン名を右クリックして[プロパティー]を選択します。
- [パフォーマンス チューニング]をクリックします。
- 右側のフレーム内で、[キャッシュ割当サイズ]にキャッシュに割り当てるメモリ量を入力して、値を調整します。『Advanced Operations Guide』のキャッシュ割当サイズを参照してください。
- 新しい設定を有効にするためエンジンを再起動します。
101:オペレーティング システムのメモリが不十分です。
これは、使用可能なオペレーティング システム メモリが足りないため、要求されたオペレーションを実行できないことを示しています。この問題を解決するには次のいずれかを実行します。
- サーバー設定の[パフォーマンス チューニング]で[キャッシュ割当サイズ]設定オプションの値を小さくします。
- サーバーにメモリを追加します。
102:スタック領域が不十分です。
これは、MicroKernel のスタック領域が不足していることを示しています。アプリケーションで使用できるスタック領域を大きくするには、アプリケーションをリンクし直して、スタック サイズの値を大きくします。MicroKernel は、WBTRCALL.DLL を呼び出す Windows ベースのアプリケーションか、ローカル サーバー上の Btrieve インターフェイスを呼び出すアプリケーションに対してのみこのステータス コードを返します。
103:チャンク オフセットが大きすぎます。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- Get Direct/Chunk オペレーションが、明示的に、またはサブファンクション値に対してネクストインレコード バイアスを使用することで、レコードの終端を超えるオフセットを指定しました。最初のチャンクを処理している間に MicroKernel からこのステータス コードが返されない限り、オペレーションは部分的に成功しています。呼び出しの直後にデータ バッファー長パラメーターを調べて、取得されたデータ量(チャンク数)を確認してください。
- Update Chunk オペレーションが、レコードの終端を 2 バイト以上超えるオフセットを指定しました。このステータス コードは、MicroKernel がレコードに対して変更をまったく加えていないことを示しています。
- 追加サブファンクション バイアスを使用する Update Chunk オペレーションによって、レコード長がオペレーティング システムのファイル サイズ制限を超えました。MicroKernel はレコードに対して変更を加えていません。
104:MicroKernel がロケールを認識しません。
Create オペレーションまたは Create Index オペレーションの実行中、オペレーティング システムは、指定されたカントリ ID とコード ページのコレーション テーブルを返せませんでした。アプリケーションがロケールのカントリ ID とコード ページを正しく指定していること、またオペレーティング システムがそのカントリ ID とコード ページをサポートするように設定されていることを確認してください。
105:このファイルは、可変長部割り当てテーブル (VAT)付きで作成することはできません。
アプリケーションが、可変長部割り当てテーブル(VAT)を使用してファイルを作成しようとしましたが、可変長レコード(ファイルが VAT を使用するための前提条件)が含まれていません。このステータス コードは、通常のデータ ファイルのほかに、キー オンリー ファイルにも適用されます。
106:MicroKernel は Get Next Chunk オペレーションを実行できません。
アプリケーションが Get Direct/Chunk オペレーションを呼び出してレコードからチャンクを取得するとき、ディスクリプターのサブファンクションにネクストインレコード バイアスを使用しました。しかし、アプリケーションがレコード内にその位置を確立した後で(この呼び出しの前に)ターゲット レコードが削除されました。
107:アプリケーションが、v6.0 より前のファイルで Chunk オペレーションを実行しようとしました。
アプリケーションが v6.0 より前の形式のファイルに対して Get Direct/Chunk または Update Chunk オペレーションを実行しようとしました。
109:セマフォの作成時またはアクセス時に不明なエラーが発生しました。
Windows プラットフォームのワークグループ MicroKernel が、互換性のないバージョンの DLL を使用してオペレーションを実行しようとしました。MicroKernel をシャットダウンして、最新バージョンの DLL を使用するようにしてください。
110:アーカイブ ログ設定ファイルにアクセスできません。
アーカイブ ログ設定ファイル(BLOG.CFG)には、アーカイブ ログを実行するドライブ上のデータ ファイルのエントリが含まれています。MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- MicroKernel が BLOG.CFG を見つけられません。このファイルが、ログの対象となるデータ ファイルを含む物理ドライブの、実際のルート ディレクトリの ¥BLOG ディレクトリに格納されていることを確認してください(マップされたルート ディレクトリは使用しないでください)。ファイルが複数のボリュームに分散している場合は、それぞれのボリュームに ¥BLOG ディレクトリを作成する必要があります。
- MicroKernel が BLOG.CFG ファイルを開けません。ファイルがロックされているか、存在しないかのいずれかです。
- MicroKernel が BLOG.CFG ファイルを読み取れません。ファイルが正しい形式でないか、破損しているかのいずれかです。BLOG.CFG ファイルの形式については、『Advanced Operations Guide』を参照してください。
111:指定されたファイル名は、アーカイブ ログ設定ファイル内に見つかりませんでした。
MicroKernel は指定されたファイルを BLOG.CFG ファイル内で見つけることができません。ファイルは、同じ物理ドライブ上にある BLOG.CFG ファイル内に指定する必要があります。デフォルトでは、MicroKernel は、アーカイブ ログ ファイルに、ログ対象のファイルと同じ名前に拡張子.LOG を付けた名前を付けます。ただし、BLOG.CFG ファイルで、別のファイル名をアーカイブ ログ ファイルに指定することもできます。BLOG.CFG ファイルがアーカイブ ログ ファイルの正しいファイル名を指定していることと、アーカイブ ログ ファイルが存在することを確認してください。
112:指定されたファイルはほかのクライアントが使用しています。
ファイルが最後にバックアップしたときと同じ状態になければ、MicroKernel はロール フォワードを実行することはできません。他のクライアントがファイルを変更した場合は、ファイルを再度復元してからロール フォワードを実行する必要があります。
113:MicroKernel は、指定されたファイルのアーカイブ ログ ファイルを開けません。
このステータス コードはさまざまな状況が原因で返される可能性があります。一例を挙げると、データベース エンジンは、指定されたファイルに関連付けられたアーカイブ ログ ファイルを見つけることができません。デフォルトでは、MicroKernel は、アーカイブ ログ ファイルに、ログ対象のファイルと同じ名前に拡張子.LOG を付けた名前を付けます。ただし、BLOG.CFG ファイルで、別のファイル名をアーカイブ ログ ファイルに指定することもできます。BLOG.CFG ファイルがアーカイブ ログ ファイルの正しいファイル名を指定していることと、アーカイブ ログ ファイルが存在することを確認してください。
もう 1 つの原因としては、ファイルに対してアーカイブ ロギングを行っている状態で、そのアーカイブ ログと同じ名前のログ ファイルをロール フォワードしようとしました。データベース エンジンはログ ファイルにロギングを行っている状態であるため、それを使用してロール フォワードすることはできません。
114:指定されたファイルのアーカイブ ログが不正です。
指定されたファイルに関連付けられているアーカイブ ログは有効なアーカイブ ログ ファイルではありません。デフォルトでは、MicroKernel は、アーカイブ ログ ファイルに、ログ対象のファイルと同じ名前に拡張子.LOG を付けた名前を付けます。ただし、BLOG.CFG ファイルで、別のファイル名をアーカイブ ログ ファイルに指定することもできます。BLOG.CFG ファイルがアーカイブ ログ ファイルの正しいファイル名を指定していることと、アーカイブ ログ ファイルが存在することを確認してください。
115:アーカイブ ログ ダンプ ファイルにアクセスできません。
MicroKernel は、次のいずれかの理由でアーカイブ ログ ダンプ ファイルにアクセスできません。
- アーカイブ ログに含まれるエントリをダンプするために指定されたファイル名が不正です。このファイル名にボリューム指定が含まれていないことを確認してください。ダンプ ファイルはログ ファイルと同じボリューム上に作成されます。
- 呼び出し元に、ダンプ ファイルへのアクセス権がありません。
- MicroKernel はファイルをオープンできません。別のユーザーがオペレーティング システムの排他ロックを使用してこのファイルを開いています。
116:このファイルは、ゲートウェイとして機能している別の MicroKernel エンジンが所有しています。
MicroKernel は、ロケーター ファイルを読み込むことができても、ゲートウェイ コンピューター上で実行しているエンジンと通信できません。これは次のような理由が原因で起こります。
- ゲートウェイ コンピューターの名前を解決できません。この問題を解決するには、次のいずれかを試してみてください。
- ゲートウェイ コンピューターが、DNS などの名前解決サービスを使って登録されていることを確認してください。
- 名前解決サービスを使っていない場合は、名前解決を手動で提供する必要があります。現在のマシンに HOSTS という名前のファイルを置いてください。このファイルに、ゲートウェイ コンピューターのネットワーク名と TCP/IP アドレスを関連付ける 1 行を追加します。たとえば、ゲートウェイ コンピューターの名前が "mycomp" で IP アドレスが 125.1.4.245 の場合は、次のような行をファイルに追加します。
- 2 台のコンピューターがサーバーを認識できるようにルーターによって分離されていますが、お互いを認識できません。次の操作を実行します。
- Gateway Locator ユーティリティを使用して、ゲートウェイのオーナーを識別します。
- Pervasive System Analyser(PSA)を使用して、そのコンピューターへのネットワーク接続をテストします。
- 異なる共有名を使ってマップされたファイルを 2 つの異なるワークグループ エンジンで開こうとしました。MicroKernel は訂正を試みますが、すべての場合に訂正できるわけではありません。各コンピュータが同じ共有名でマップするようにしてください。
120:B-Tree インデックス レベルの最大数に達しました。
このステータス コードは、インデックスに大きなキー サイズを指定し、小さなページ サイズを使用する場合に生じます。B ツリーが完全にいっぱいでなくても、インデックス キーが B ツリーの許容する深さを満たしてしまうことがあります。
このステータス コードを回避するには、以下のいずれかまたは両方を試してください。
- より大きなページ サイズでデータ ファイルをリビルドし、ページごとに格納されるキー数を増やす。
- インデックス キーのよりよい配分を維持していくために、インデックス バランスの設定をオンにする(インデックス バランスをオンにするとパフォーマンスが若干落ちます)。『Advanced Operations Guide』のインデックス バランスの実行を参照してください。
130:使用可能なシステム ロックがありません。
このステータス コードは MicroKernel バージョン 6.15 以降では使用されていません。
このステータス コードは、現在使用可能なシステム ロックがないという一時的な状態を表しています。たとえば、次のような場合があります。
- あるクライアントが非常に大きなトランザクションを実行中で、その中で何千ものレコードを更新している場合。
- 多くのクライアントが大きなトランザクションを並行して実行している場合。
クライアントはトランザクションの実行に関係なくこのステータス コードを受け取る可能性があります。このため場合によっては、クライアントは正常に終了しなかったオペレーションを単純に再試行することができます。その間に他のクライアントがシステム ロックを解除していれば、再試行したオペレーションが正常に実行されることもあります。トランザクション中のクライアントにこのステータス コードが返された場合、トランザクションを終了または中断してください。トランザクションが非常に大きい場合は、複数の小さいトランザクションに分割することも検討してください。設定ユーティリティを使用して、明示的なロックとして機能するシステム ロック数を減らすこともできます。システム ロック数を減らすには、[ロック数]オプションおよび[セッション数]オプションのいずれか、または両方に割り当てられている値をより小さい値に変更します。
132:ファイルがサイズの制限に達しました。
MicroKernel は、次のいずれかの状況でこのステータス コードを返します。
- ファイル サイズが制限に達しました。この制限はファイル バージョンやページ サイズ、および 1 ページあたりのレコード数によって異なります。詳しい説明については、『Advanced Operations Guide』のファイル サイズを参照してください。
- オペレーションにより、許容される最大ページ数を超えるページをデータ ファイルに割り当てようとしました。
- データ ファイルが長い間 Continuous オペレーションの状態にあることにより、そのデルタ ファイルのサイズが 4 GB を超えました。
- 1 つのデータ ファイル セグメントが、オペレーティング システムのファイル サイズ制限に達しました。
4,096 バイトより小さいページ サイズを使用しているファイルの場合は、Rebuild ユーティリティを使ってページ サイズを 4,096 バイトに設定してファイルを再構築し、より大きなファイル サイズ制限を利用するようにできます。
133:同じデータ ファイルに 6 人以上のユーザーが同時にアクセスしようとしました。
このステータス コードは Pervasive.SQL 7 以降のバージョンでは使用されていません。
134:MicroKernel がインターナショナル ソート規則(ISR)を読み取れません。
MicroKernel は、次のいずれかの理由でこのステータス コードを返します。
- ISR が COLLATE.CFG ファイルにありません。
- COLLATE.CFG ファイルが見つからないか、または破損しています。
- MicroKernel は COLLATE.CFG ファイルから ISR を読み込めません。
135:指定されたインターナショナル ソート規則(ISR)テーブルは破損しているか、または不正です。
MicroKernel は、読み込み可能な COLLATE.CFG ファイルを見つけましたが、指定されたインターナショナル ソート規則(ISR)テーブルが無効です。
136:MicroKernel は、指定されたオルタネート コレーティング シーケンスをファイル内に見つけられません。
MicroKernel は、次の状況でこのステータス コードを返します。
- オルタネート コレーティング シーケンス(ACS)を使用するインデックスを作成しようとしましたが、MicroKernel は指定された名前の ACS をファイル内に見つけられませんでした。
- Step Next Extended、Get Next Extended、Step Previous Extended、または Get Previous Extended オペレーションを呼び出し、ACS 名を指定しましたが、MicroKernel は指定された名前の ACS をファイルに見つけられませんでした。
138:ヌル インジケーターの位置が不正です。
- Pervasive PSQL のすべてのアクセス方法によるデータ アクセスを確実にするため、ヌル インジケーター セグメント(NIS)は、NIS が示すデータ セグメントの直前にある必要があります。
- NIS は別の NIS によって示すことはできません。
139:MicroKernel が、キー番号で受け付けられない値を検出しました。
オペレーションの中には、オペレーションに使うファイルのインデックスを指定するためではなく、サブファンクション番号としてキー番号のパラメーターを使用するものがあります。(メモ:これは Get Equal オペレーションでも行われます。)アプリケーションがこれらのオペレーションのいずれかに有効なサブファンクション番号(キー番号パラメーターを介して)を指定しない場合に、このステータス コードが返されます。
- 不正なキー番号を使って Begin Transaction オペレーションを発行しました。
- 不正なキー番号を使って End Transaction オペレーションを発行しました。
- 不正なキー番号を使って Abort Transaction オペレーションを発行しました。
- 不正なキー番号を使って Stat Extended オペレーションを発行しました。
143:MicroKernel は、セキュリティ設定された MicroKernel データベース内のファイルに権限なしでアクセスすることを許可しません。
- セキュリティが有効になっている MicroKernel データベースにバインドされたデータ ファイルを開こうとしました。MicroKernel は、MicroKernel を使用しない限り、このようなファイルへのアクセスは許可しません。
- MicroKernel は、MicroKernel を使用していないときに、次の条件すべてに当てはまる場合にも、このステータス コードを返します。
- [置換]オプションを使用してファイルを作成しようとした。
- 同じロケーションに、同じ名前のバウンド MicroKernel データ ファイルが既に存在する。
- 既存のファイルがバインドされているデータベースのセキュリティが有効になっている。
146:重複システム キー。
システム キーを生成する 2 つの異なるスレッドによって同じキー番号が生成されました。
147:ログ セグメントが見つかりません。
MicroKernel は、少なくとも 1 つのファイルをロール フォワードするのに必要なログ セグメントを見つけられません。
148:ロール フォワード エラーが発生しました。
MicroKernel は、ファイルをロール フォワード中にエラーを検出しました。レポートされるエラー メッセージは、オペレーティング システムによって異なります。
- Windows ワークステーションの MicroKernel はコンソールにメッセージを表示し、Windows システム ディレクトリにある Pervasive イベント ログ(PVSW.LOG)に同じ内容のメッセージを書き込みます。
- Windows サーバーの MicroKernel はメッセージの表示は行いませんが、Windows システム ディレクトリにある Pervasive イベント ログ(PVSW.LOG)にメッセージを書き込みます。
149:SQL トリガー。
Btrieve API を使用してデータベース テーブルまたはエントリを変更しているとき、SQL レイヤーによってデータベース上に設定された SQL 制約を検出しました。
151:チャンク オフセットが小さすぎます。
レコードの固定部分に対してチャンクを挿入したり削除したりすることはできません。
160:MicroKernel に不正なパラメーターが渡されました。
MicroKernel は、SRB(Service Reply Block)が次のいずれかが原因で破損したパラメーターを使用していることを検出しました。
- ネットワークを経由した SRB の転送処理中に発生したネットワークの不具合によって、SRB 内のパラメーターが壊れました。
- このエラーはほとんどの場合、システムにある古い Scalable SQL コンポーネントと Pervasive PSQL コンポーネントとの不適切な組み合わせが原因で発生します。
この問題を解決するには、インストールされているコンポーネント間の矛盾を修復するために、Pervasive PSQL を再インストールします。再インストールして再起動した後もこの問題が発生する場合は、テクニカル サポートまでご連絡ください。
161:キーがユーザー数、セッション数、使用データの最大制限に達したか、もしくはキーの状態が "期限切れ" または "無効" に変更されました。
いくつかのシナリオによってこのステータス コードが返されます。
- このステータス コードは、一時ライセンスの有効期限が切れた後にも返されます。 ライセンス 管理ユーティリティで検証されるキーの状態は "期限切れ" になります。一時ライセンスの有効期限が切れると、すべてのユーザーはこのステータス コードを受け取り、データベース エンジンにアクセスできなくなります。 これを解決するには、期限なしライセンス キーを適用します。 アプリケーション ベンダーまたは Pervasive Software にお問い合わせの上、期限なしライセンス キーをご購入ください。
- ユーザー数、セッション数または使用データが、使用許諾契約書で許可された最大値に達しました。 1 つ以上のセッションまたはファイルを閉じることで、ユーザー数、セッション数または使用データの値が制限値を下回るようにすることができます (「セッション」とは、トランザクショナル エンジン インターフェイスによって使用されるクライアント ID、またはリレーショナル エンジン インターフェイスへの接続と定義されます)。 このほか、ユーザー数、セッション数または使用データに対し追加キーを適用するという解決策があります。
- ユーザー数、セッション数および使用データの現在値、ピーク値および最大値の測定についての詳細は、『Advanced Operations Guide』のデータベース リソースの監視を参照してください。
- Pervasive PSQL 製品を認証した後でマシン構成を変更した場合にも、このステータス コードを受け取ります。製品認証はお使いのマシンのハードウェア構成と関係しています。マシン上の製品キーを認証した後に、そのマシンのある特定のハードウェア構成アイテムが変更されると、キーは無効になります。 ライセンス管理ユーティリティで検証されるキーの状態は "無効" になります。
- ハードウェア構成の変更を行う必要がある場合は、まず License Administrator ユーティリティを使用してキーを削除しておいてください。キーの削除は、製品キーと固有のハードウェア構成との関連付けを切り離します。 ハードウェア構成の変更が完了したら、License Administrator ユーティリティを使用して再び製品キーを適用することができます。
162:クライアント テーブルがいっぱいです。
このステータス コードは Pervasive.SQL 2000i 以降のバージョンでは使用されていません。関連する設定はエンジンが動的に管理します。
このステータス コードは次のいずれかの状況で返されます。
- メモリが不足しています。
- アクティブ クライアント数が 64K を超えています。
163:ヌル インジケーターを最終セグメントにすることはできません。
ヌル インジケーター セグメント(NIS)をキー ディスクリプターの最後のセグメントにすることはできません。
169:クライアント キャッシュとリモート エンジンのプロトコルが一致しません。
このステータス コードは、クライアント ソフトウェアが、お使いのリモート データベース エンジンに付属する最新のものではないことを示します。V8 の一般リリース版のリモート エンジンに対して V8 のプレリリース版のクライアント ソフトウェアを実行している場合にのみ、このステータス コードを受け取ります。
この問題を解決するには、クライアント ソフトウェアをアンインストールし、最新の V8 クライアントをインストールします。
170:データベース ログインが必要です。
ユーザー名が不正であるか見つからないため、データベースへの認証に失敗しました。
171:データベース ログインに失敗しました。
パスワードが不正であるか見つからないため、データベースへの認証に失敗しました。
172:データベース名が見つかりません。
マシンの有効なデータベース名を指定してください。
173:既にログインしています。
Btrieve のログイン要求は、クライアントが指定されたデータベースに既にログインしているため失敗しました。
174:ログアウトに失敗しました。
データベースにログインしていない場合、あるいはログアウトしようとした際に開いたままのデータベースのファイル ハンドルがある場合は、ログアウトが失敗することがあります。
175:データベース URI の形式が間違っています。
URI 接続文字列が正しく構成されていませんでした。最初の 5 バイトは "btrv:" である必要があります。
176:ファイルまたはテーブルが URI に指定されていません。
Open または Create オペレーションの発行に使用した URI 接続文字列には、ファイル名もテーブル名も含まれていませんでした。
177:データベースに存在しないテーブルです。
Open オペレーションの発行に使用した URI 接続文字列には、ファイル名が含まれておらず、FILE.DDF に存在しないテーブル名が含まれていました。
178:データベースに存在しないディレクトリです。
Open オペレーションの発行に使用した URI 接続文字列にはフル パスのファイル名が含まれていましたが、これは、データベースのデータ ディレクトリの 1 つとして存在していないディレクトリを参照していました。
Pervasive PSQL Control Center のデータベース プロパティ ダイアログ ボックス(Windows)または dbmaint
ユーティリティ(Linux)を使って、データベースにディレクトリを追加してください。
 0 |
 1000 ~ 1999 |
|