更改Access数据库表的记录时出现的怪问题!(另赠送200分) (50分)

  • 主题发起人 主题发起人 coolqiang
  • 开始时间 开始时间
C

coolqiang

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]为什么对数据库中的某一个表进行编辑时出现下面错误?但同样的设置和操作对其它表由
不会出现这个问题?用的是Access数据库,用了Database、Table、DataSource和DBEdit。
[red]Could't perform the edit because another user changed the record.[/red]
 
是不是有其他的操作还没有结素呢?请贴代码。
 
你开一个新的Project再试试。可能是设置的问题。
 
CJF:我已经用一个新的Project专门测试了一下,一样会出现此错误。这个数据库是从一
个软件里面拷出来的,在那个软件下面不会出现这个问题,在我这就出错。真是太奇怪了!
 
用它(TTable)可能以獨佔方式打開,最好用TQuery,
我想是這樣了,沒試
 
你看看还有什么东西在用这个数据库,把其他的连接都断掉,然后重新运行你的程序
 
数据库里的其它表或查询什么的,会使用某个表的记录吗?
我这样怀疑的原因,是我将这个表的记录用Access全删了,在程序中就可以添加,不过添加
一个后马上就不能再编辑和添加了。
 
今天我又把这个数据库里的其它表全部删除,只剩下这一个表,再在程序中table1.edit,
居然还报错,我真是服了它。现在我把这个数据库压缩成ZIP文件了,只有10K多一点,请
哪位高手下载去分析一下,为何会老是出现“有另一个用户在改变记录”呢?如能帮忙解
决,另赠送200分。
下载地址:http://coolqiang.myrice.com/private/testmdb.zip
由于服务器原因,有时下载很慢,可以直接给我来信coolqiang@163.net,我发给你。
 
dmPublic是数据模块,tblClass是TTable,frmClass是窗体,上面有DBEdit,运行后能窗
体上能显示出数据,但一按键进行更改立即报错:

dmPublic.tblClass.Active := True;
if frmClass.ShowModal = mrOK then
begin
dmPublic.tblClass.Edit;
dmPublic.tblClass.Post;
end;
dmPublic.tblClass.Active := False;
我简化成如下还是报错[:(]
dmPublic.tblClass.Active := True;
dmPublic.tblClass.Edit;
 
估计是你程序的事,发给我,我以前遇到过.
 
我用ADO连你的数据库没事!正常!
 
数据库别名怎么建的?
 
我已经测过了,用ADO连的时候没有任何问题,用BDE连ODBC再两MDB时有问题,好象是你的
MDB文件内部丢失了类似于索引的东西,解决方法:用ACCESS打开该数据库,在表TIMETABLE
上点右键,选择“导出”,导出到一个新的MDB文件中,导完后,发现比原来的文件大了
2K,也就是说已经把丢失的信息补全了,然后再用,没有问题了,我已经测过了。
 
左右手:
我按你的方法试过了,还是不行啊!我导出后比原来还小了2-3K。
还有,现在不是找什么方法避免它,那样我还不如另做个表,我是想知道为什么会出问
题!
 
不会吧,我这里试了,没问题的
我以前也碰到过这样的问题,好象是ACCESS内部丢了一些东西,或者是内部索引乱了,
所以重新导出后就没事了,具体的原因因为没对ACCESS做过深入的研究,所以不敢说
到底是什么毛病,也可能跟BDE有关系,因为ADO连接后修改没有问题。
 
左右手:能不能将你导出的数据库发给我,我试试看!
 
好的,发到哪
 
谢谢,请发到coolqiang@163.net
 
哎呀,老兄,在给你发之前,我又测了一下,结果发现有问题,你那个表里一共有三条记录
只有最后一条可以修改,其他两条还是不能修改,而我最开始测试的时候改的正好是第三
条,所以以为没有问题了,真是不好意思。:-)我看你是得重新建表了,估计是表机构
内部出问题了,不过也不排除跟数据库引擎有关,我用ADO直接连接,然后就都可以修改,
但是用BDE连ODBC,还有用ADO连ODBC都不能修改,所以也可能是跟ODBC有关系,我不知道
你是怎么连的数据库,可能也是ODBC吧,建议你跳过它,直接连数据库。
 
LiWD、左右手请去拿分!
http://211.101.4.25/delphibbs/dispq.asp?lid=649292
 

Similar threads

后退
顶部