1

ここで小さな状況が発生しました。最近までTClientDataSetを使用していませんでした(midas.dllが必要です)。そのため、説明的ではなく、非常に厄介なエラーに直面しています。

デバッガー障害通知

プロジェクトE:\ Work \ XXX \ binary \ XXX.exeに次のメッセージが表示されます:'0x00678827でのアクセス違反:アドレス0x00030a38の書き込み'。プロセスが停止しました。ステップまたは実行を使用して続行します。

これは、clientdataset(メモリ内データセットとして使用している)のフィールドの値を次のように設定しようとするたびに発生します。

with ADataModule do begin
  cdsTest.Append;
  cdsTestAField.AsString := ATableField.AsString;
  // ...
end;

両方のフィールドはTStringFieldであり、cdsTestAFieldのサイズは64、ATableFieldのサイズは32です。

注:私は何よりもまずCreateDataSetメソッドを呼び出しています。これは文字列フィールドでのみ発生しますので、助けていただければ幸いです。

お時間をいただきありがとうございます。

4

1 に答える 1

3

そして、ATableFieldはどこから来たのですか?すでに解放されているオブジェクトへの無効な参照である可能性がありますか?

また、プロジェクトにmidaslib.pasを含めて、外部のmidaslib.dllを使用しないようにすることもできます。ただし、基本的にexeファイルでdllをコンパイルしているため、プロジェクトは少し大きくなります。

于 2011-01-21T22:51:43.067 に答える