0

会計システムを実行していますが、特定のデータベースを開くときにトランザクション エラーが発生します。問題は、一部のインデックス ファイル (CDX) が破損していることです。テーブル ファイル (DBF) は完璧なようです。Excelでも開いて全部読めます。これらの cdx ファイルを Visual fox pro で再構築するにはどうすればよいですか?

私はしようとしています:

Use mydatabase.DBF exclusive

Reindex

Close all

しかし、それは FXP ファイルを生成しています。これが機能するかどうか、または何を使用すればよいかわかりません。

また、私がこれで何か完全に間違ったことをしているなら、私を許してください。この問題を解決する必要があるため、現時点では VFP を学習しようとしています。

前もって感謝します。

4

4 に答える 4

4

それらのコマンドをどこで試していますか? コマンド ウィンドウからの場合は、うまくいくはずです (ただし、REINDEX は壊れたインデックスを修正するための最良の方法ではありません)。それらをプログラムに入れると、そのプログラムを実行すると、コンパイルされたプログラムである FXP が生成されます。

破損したタグを伝播する可能性のある REINDEX を使用するよりも、CDX 内のすべてのタグのリストを取得してから、次を発行する方が適切です。

タグをすべて削除

次に、INDEX コマンドを使用してすべてのタグを再作成します。(そうは言っても、それが良い考えではない状況もあります。テーブルがデータベース (DBC) に属し、永続的な関係に関与している場合、DELETE TAG ALL はそれらを壊す可能性があります。)

タマル

于 2014-06-12T20:56:41.893 に答える
1

Reindex コマンドで生成された FXP ファイルを取得する唯一の方法は、インデックス (cdx ファイル) に関数呼び出しが含まれている場合です。FXP ファイルは、コンパイルされた PRG (プログラム ファイル) です。これらは通常、インデックスの一部ではありませんが、使用できます。

これらのインデックス タグのいずれかがあるかどうかを調べるには、USE MYDATABASE.DBF EXCLUSIVE コマンドを発行した後、コマンド ウィンドウに DISPLAY STATUS と入力します。このコマンドは、構造 CDX ファイル内のすべてのインデックス タグを一覧表示します。

例:

  Structural CDX file:   C:\PRO60\ARDATA\ARCUST02.CDX
        Index tag:   ADDRESS1     Collate: Machine    Key: UPPER(ADDRESS1)
        Index tag:   ADDRESS2     Collate: Machine    Key: UPPER(ADDRESS2)
        Index tag:   CURRENCY     Collate: Machine    Key: CURRENCY
        Index tag:   COMPANY1     Collate: Machine    Key: "G_RETSDX(COMPANY)"

最後のタグには関数呼び出しが含まれています。上記の例では、再インデックスには G_RETSDX() 関数へのアクセスが必要です。

それはあなたのFXPの問題を説明しています. ただし、これでは「トランザクション エラー」に対処できない場合があります。何が問題なのかを理解するには、正確なエラー メッセージをもう少し具体的に説明する必要があります。

于 2014-06-12T04:16:45.750 に答える
0

Oracle データベースのこのソリューションは、dbf ファイルを扱うために他の製品を使用する場合、このガイドは役に立ちません!

ファイル、すべてのデータベース ファイル (制御ファイル、REDO ログ、データ、構成ファイルなど) を、可能であれば新しい hardisk の同じ場所 (ディレクトリ) にコピーします。次に、oradim を使用してサービスを作成します。 oradim -new -startmode manual サービスがまだ開始されていない場合は開始します。sqlplus "/ as sysdba" を実行し、起動を試みます。すべてのファイルが同じ場所にコピーされている場合、これは機能するはずです。

于 2014-10-31T22:03:35.340 に答える