別のテーブルonnewRecordに挿入します
質問
onnewRecordイベントがある養食器を手に入れました。
この手順では、別のテーブルにデータを自動的に追加しようとします。データは、キャンセルの場合に必要ないくつかの行です。クライアントダタセットで処理されます。
locで
otheradoquery.insert;
添えられた肥料がヌルを非ヌルフィールドに挿入できなかったというエラーが発生しました。私は挿入モードですが、Delphiに投稿するように頼んだことはありません!なぜそれが投稿するのかわかりません。
編集:この問題に関するヒントを見つけるのを手伝ってもらえますか?
いくつかの明確化:
で
adoquery.onnewRecord();
始める
Clienddataset.insert; //ここにAdqueryPostの投稿に行きます。 ClientDatasetが閲覧状態にあった場所
終わり;
編集:
このバグは意味がありません!スタックトレースを見てください:
- postの前
- 新記録
- myfunc
myfuncが挿入物でnewRecordを引き起こします。
解決 2
答えは、テーブル間の接続からのものでした。
Adquery.DataSourceは、clientDatasetのデータセットに設定されました。
これは非常に多くのダメージを与え、デルファイによるヒントはありません。
他のヒント
私はタドキュリーにあまり精通していませんが、このようなエラーを追跡する方法を知っています。まず、まだ設定していない場合は、プロジェクトオプションに移動して、コンパイルタブの下のデバッグDCUを使用してから、完全なビルドを実行して実行します。デバッガーでその例外レポートを取得したら、Breakをヒットすると、タドキュレーまたはサブオブジェクトの1つのコードの内側になってしまうはずです。コールスタックを調べてみてください。いくつかの電話を調べると、おそらくあなたがしたことを見つけることは、ポストを呼んでいる他の何かを呼ぶことです。コードに到達するまでスタックトレースを返し、何が起こっているのかを知ることができます。少し分析すると、問題を防ぐための何らかの方法が見つかるはずです。
そうは言っても、問題の原因について簡単に推測しましょう:データセットで挿入を呼び出すとき、以前に挿入または追加されたためにデータセットが既にアプリ内モードである場合、投稿をフォローアップしなかった場合、それはあなたが取り組むために新しい行を設定する前に、それ自体を呼び出します。多分これはあなたに何が起こっているのですか?