始めまして・・・Delphi5を始めて1年の初級者です。データーベースはParadoxを使っているのですが少し重いバッチプログラムを作ってフリーズした場合Windowsのタスクマネージャーでプログラム終了させるると追加されていたはずのデーターが消えてしまっています。下記みたいにごく一般的なプログラムなのですが・・・何か良い回避方法は無いでしょうか。ちなみにCopyFileTO()やBatchMoveを使っても駄目でした。
Table1.Open;
Table1.Append;
Table1.FieldByName('code').AsString :='aaa';
Table1.Post;
Table1.Close;
BDEの設定で LOCAL SHARE を True にするのは、どうですか?
フリーズすることが問題でしょう。
TableはQueryにしたほうが汎用性が出ます。
>Table1.Open;
>Table1.Append;
>Table1.FieldByName('code').AsString :='aaa';
>Table1.Post;
Table1.UpdateRecord; '<--これをいれたらどうでしょうか?
>Table1.Close;
私は10年以上前、paradoxの時は良くありました。今は使っていないけど。
Post後に
DbiSaveChanges(Table1.Handle)
usesにBDEが必要
DbiSaveChangesは検索かBDEのマニュアルを見て下さい。
なんせ、Delphi2の頃なので、現在はわかりませんがね。
interbase/firebirdなどのDBMSでは、あまり起きない事ですが
paradox(BDE)では、テーブルをオープン状態でPCが落ちたりすると(停電、フリーズ)
殆ど一発でエラー状態になります。
もしそうなってしまった場合は、以下のアドレスにも情報がありますが
> https://www.petitmonte.com/bbs/answers?question_id=4803
「DTUTIL32.EXE」と言うツールで簡単に修復ができます。
paradox(BDE)で使う場合は、取敢えずこまめに「close」処理を入れる事でしょうか。
(気軽な反面、信頼性は低いです)
..と、投稿した後に「tutility」でググッてみたら、元?本家(borland)にも
まだ、残っていました・・・
ご存知の方もいらっしゃるかも知れませんが、一応参考までに..
> http://info.borland.com/devsupport/bde/utilities.html
消し忘れているのか、一応最後の奉仕?
他のツール等も(ソース含む)あるようですので
必要な方は、今のうちにDLされた方が良いかと...
データベースのクローズでセーブできないですかね?
みなさん、短い時間に色んな情報ありがとうございます、全部トライしてみます。感謝です(涙)
ツイート | ![]() |