DL6pro,xp,Interbase6の環境です。
paradoxよりinterbaseへデータベースを変更する作業をしています。
データモジュールにdatasource,IBQuery,IBdatabase,IBTransaction,IBUpdateSQLを貼り付けてあります。
以下のコードでエラーが発生します。
エラーメセージ
'更新失敗’
’ユーザーによる中断’
FrmShohiyoには、DBGridを貼り付け、DM009.IBQueryShohiyo 等を正しく関連付けています。
以下、コード
procedure TFrmShohiyo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
with DM009.IBQueryShohiyo do
If MessageDlg('変更を保存して終了しますか?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
begin
DM009.IBQueryShohiyo.Edit;
DM009.IBQueryShohiyo.post; //ここまでは、上手く動作し、DBGridの値も変更されます。
DM009.IBQueryShohiyo.ApplyUpdates ; // ここでエラー
Close;
Open;
FrmShohiyo.Close;
end
else
Cancel;
FrmShohiyo.Close;
end;
DM009.IBQueryShohiyoのChashedUpdatesプロパティは、Trueになっていますか?
HOTAさんいつも有難うございます。
DM009.IBQueryShohiyoのChashedUpdatesプロパティは、Trueになっていますか
一番最初に確認しました。trueです
エラーメッセージは何がでていますか?
プロジェクトOnine09.exeがEIBClientErrorクラスの例外を生成しました。
’更新失敗’
プロセスは・・・・
となっています。
更にステップ実行を行うと
プロジェクトOnine09.exeがEIBClientErrorクラスの例外を生成しました。
’ユーザーによる中断’
という警告が発生されます
キーに入る値は、文字の長さ等はきちんとしていますか?重複は有りませんか?NotNull項目には、データーが入っていますか?
文字列などで、CharSet に2バイト文字を指定していて、1バイト文字を入れた場合は、1文字に2バイト使います。
登録する文字列を短くしてみて、登録できるかも調べてみてください。
HOTAさん有難うございました。
私なりに、色々コードを調べたりして検討しました。時間がかかってしまいましたが、何とか質問の件については解決できました。解決法を上手く表現できないので、とりあえず結果だけを報告します。
又よろしくお願いします。
ツイート | ![]() |