坏索引(200分)

  • 主题发起人 主题发起人 songll
  • 开始时间 开始时间
S

songll

Unregistered / Unconfirmed
GUEST, unregistred user!
我用PARDOX作为数据库,用DBE5.01,用Delphi3.0做了一个多用户的C/S程序,经常性的会出索引出错,造成数据丢失.以上问题如果程序在NT上运行会很平凡,
如改用NETWEAR则就会比较少.
 
paradox 如何做 c/s???
 
很频繁?
用interbase 试下。
可以直接在desktop 里把paradox表倒入到interbase 里。
 
Paradox是有这个问题;可以改用Acceses。

如果实在想用,那么:
1 尽量少用第二索引,或将主键改为Integer;
2 客户机应该加上Cache;提交数据前先锁表。
3 服务器上再做一个程序,每隔一定时间就Pack数据库。
4 如果索引已经坏掉(包括主键),则只有自己重新建立索引,先删掉所有
索引文件。

如果要求较高,最好该选数据库。
 
如何对表进行PACK
 
If you have used Paradox tables in your development, you may have
run into the problem with data not getting posted, or indexes getting
corrupted.

The way to fix this is to put "DbiProcs" in the USES clause of the
Form or DataModule containing your TTable, and then calling
"dbiSaveChanges" in the AfterPost event.

unit MBTable;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, dbiProcs;

type
TMBTable = class(TTable)
private
{ Private declarations }
protected
{ Protected declarations }
procedure DoAfterPost; override;
public
{ Public declarations }
published
{ Published declarations }
end;

procedure Register;

implementation

procedure TMBTable.DoAfterPost;
begin
inherited DoAfterPost;
dbiSaveChanges(Self.Handle);
end;

procedure Register;
begin
RegisterComponents('CSA', [TMBTable]);
end;

end.
 
我是这样做的,用户要经常备份数据,如果一坏,就把数据覆盖就行了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部