Paradoxのデーターが消える?? 安全なセーブ方法はありませんか?


サッチン  2008-07-28 21:51:35  No: 31387  IP: 192.*.*.*

始めまして・・・Delphi5を始めて1年の初級者です。データーベースはParadoxを使っているのですが少し重いバッチプログラムを作ってフリーズした場合Windowsのタスクマネージャーでプログラム終了させるると追加されていたはずのデーターが消えてしまっています。下記みたいにごく一般的なプログラムなのですが・・・何か良い回避方法は無いでしょうか。ちなみにCopyFileTO()やBatchMoveを使っても駄目でした。


Table1.Open;
Table1.Append;
Table1.FieldByName('code').AsString :='aaa';
Table1.Post;
Table1.Close;

編集 削除
igy  2008-07-29 01:18:54  No: 31388  IP: 192.*.*.*

BDEの設定で LOCAL SHARE を True にするのは、どうですか?

編集 削除
HOta  2008-07-29 10:24:16  No: 31389  IP: 192.*.*.*

フリーズすることが問題でしょう。
TableはQueryにしたほうが汎用性が出ます。

>Table1.Open;
>Table1.Append;
>Table1.FieldByName('code').AsString :='aaa';
>Table1.Post;
Table1.UpdateRecord;   '<--これをいれたらどうでしょうか?
>Table1.Close;

編集 削除
cocomo  2008-07-29 10:57:23  No: 31390  IP: 192.*.*.*

私は10年以上前、paradoxの時は良くありました。今は使っていないけど。
Post後に
DbiSaveChanges(Table1.Handle)
usesにBDEが必要
DbiSaveChangesは検索かBDEのマニュアルを見て下さい。
なんせ、Delphi2の頃なので、現在はわかりませんがね。

編集 削除
通りがかり  2008-07-29 13:28:37  No: 31391  IP: 192.*.*.*

interbase/firebirdなどのDBMSでは、あまり起きない事ですが
paradox(BDE)では、テーブルをオープン状態でPCが落ちたりすると(停電、フリーズ)
殆ど一発でエラー状態になります。

もしそうなってしまった場合は、以下のアドレスにも情報がありますが
https://www.petitmonte.com/bbs/answers?question_id=4803
「DTUTIL32.EXE」と言うツールで簡単に修復ができます。

paradox(BDE)で使う場合は、取敢えずこまめに「close」処理を入れる事でしょうか。
(気軽な反面、信頼性は低いです)

編集 削除
通りがかり  2008-07-29 13:46:41  No: 31392  IP: 192.*.*.*

..と、投稿した後に「tutility」でググッてみたら、元?本家(borland)にも
まだ、残っていました・・・

ご存知の方もいらっしゃるかも知れませんが、一応参考までに..
http://info.borland.com/devsupport/bde/utilities.html

消し忘れているのか、一応最後の奉仕?
他のツール等も(ソース含む)あるようですので
必要な方は、今のうちにDLされた方が良いかと...

編集 削除
まじっかぁ  2008-07-29 13:56:05  No: 31393  IP: 192.*.*.*

データベースのクローズでセーブできないですかね?

編集 削除
サッチン  2008-07-29 16:31:31  No: 31394  IP: 192.*.*.*

みなさん、短い時間に色んな情報ありがとうございます、全部トライしてみます。感謝です(涙)

編集 削除