2

どういうわけか破損したデルファイプロジェクトがあります。(XEを使用して)Advantage 11.1コンポーネントにアップグレードしましたが、プロジェクトを開くと次のエラーメッセージが表示されます。

acctTbl:エラー5018:指定されたハンドルがAdvantageによって認識されませんでした。指定されたハンドルが開いている/アクティブであることを確認します。指定されたハンドルは、有効なAdvantageClientEngineとして認識されません

エラーが発生したため、データモジュールDFMが構築されていないため、設定を「調整」できません。

acctTblはDFMの最初のテーブルであるため、次のテーブルでエラーが発生する可能性がありますが、わかりません。

サーバーは使用せず、「ローカルサーバー」のみを使用します。

コンポーネントのバージョン10に戻ろうとしましたが、それでもエラーが続きます。

また、すべてのプロジェクトオブジェクトコードを削除し、PASファイルとDFMファイルのみを開いてみました(SVNから元に戻すことにより)。

どんな助けでも大歓迎です。

4

1 に答える 1

2

.dfmテキスト エディタ (メモ帳など) で開き、AdsConnection.Connectedプロパティをfalseに変更し、いずれAdsTableかまたはADSQueryコンポーネントのActiveフラグを に変更することもできfalseます。(最初に IDE を閉じて、参照がキャッシュされないようにすることをお勧めします。) これにより、少なくともプロジェクトを開いて、新しいバージョンの ADS でコンパイルするために必要な変更を加えることができます。

XE より前の多くの古いバージョンの Delphi でファイルが更新されている場合は、バイナリ形式のファイルが残っている可能性があり.dfmます(つまり、ファイルを開くと、メモ帳にあらゆる種類の奇妙な記号が表示され.dfmます)。その場合、Delphi には変換ユーティリティ(convert.exe$(DELPHI)\Binフォルダにあります)が含まれており、次の手順を使用してテキスト形式に変換し、変更を加えることができます(後で元に戻す必要はありません - デフォルトでは新しいフォームが作成されるときにテキスト.dfmファイルを作成し、Delphi はそれらをテキストとして非常によく使用します)。

.DFMまず、データモジュールのバックアップ コピーを安全な場所に作成してください。

バックアップ コピーを作成したら、プロジェクト フォルダーでコマンド ウィンドウを開き、次のコマンドを実行します。

Convert.exe -1 YourDataModule.dfm

このコマンドは、その場で変換することを示しています ( -i)。これは、既存のバイナリ.dfmが新しいテキスト .dfm によって上書きされることを意味します (そして、最初にバックアップ コピーを作成することを強調した理由です)。上書きしたくない場合は、-iスイッチを省略できYourDataModule.txtます。代わりに、フォルダーにファイルが作成されます。その後、手動でYourDataModule.dfm別の名前に変更YourDataModule.txtしてから、YourDataModule.dfm.

于 2013-01-28T22:01:12.040 に答える