为什么设置表的状态为edittext可编辑状态,实际上的状态确是Insert呢?

2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
本帖子已过去太久远了,不再提供回复功能。紧急求助!用insert into 表1 select * from 表2后,表1居然无法置为Edit和Insert状态,老提示说另一个用户在用!
Description of your first forum.
15 篇帖子 & 分页:1 / 2
由 coolqiang & 星期五, 日 16:37
我用的Access数据库,BDE:
具体错误信息如下:
&[red]Could't perform the edit becase another user changed the record[/red]
而且这样过后,即便将程序改为简单的对此表Edit,都一样出错;但如果用EmptyTable将
表清空之后再Insert和Edit,却又OK。这个问题困扰了我好几天了,手头的项目因此被停
住了,这是我做的第一个数据库的项目啊!老板又频繁地询问进度,我都实在不好意思再
拖了,本来想这个星期能完成,谁知遇到这样的怪问题。拜托各位高手,一定要帮帮忙
由 coonlee & 星期五, 日 18:30
你在INSERT完成后POST了吗?
由 gale & 星期五, 日 19:22
由 zhangkan & 星期五, 日 21:48
你insert数据后有没有post,以及有没有commit?你是用的同一个表,还是另外一个表,能否将
源码贴上来?
由 coonlee & 星期五, 日 22:10
对,你把代码弄上来吧。要不大家怎么帮你查啊?
Refresh?有用吗?如果不POST,REFRESH也没用啊;另一方面,如果POST了,不RESRESH也
由 coolqiang & 星期六, 日 09:37
coonlee,zhangkan:你们指的insert是insert into 表1 select * from 表2这里的吗?
还是后面置为Edit或Insert状态这里的?如果是后面的,程序到这里就出错了,后面的
post、refresh根本没机会执行啊!
由 coolqiang & 星期六, 日 09:44
代码如下,为方便阅读,略作简化,但关键代码没变,请大家指点!
&//清空temp表
&with tblTemp do
& &Active := F
&//从表1获取和temp相关的字段
&with qryTemp do
& &SQL.Add('insert into temp select *from 表1');
& &ExecSQL;
&//检查temp每条记录,根据结果填写Memo字段
&with tblTemp do
& &Active := T
& &while not eof do
& & &......... & & & & //检查
& & &FieldByName('Memo').AsString := 'xxx';
& &Active := F
由 skylove & 星期六, 日 10:03
这个。。。是用独占方式打开数据库的???操作这步的时候还在进行其他操作吗??
要保证数据库的指针已经是指向当前记录。
由 一剑封喉 & 星期六, 日 10:10
我也遇到过这样的问题,关注
由 coolqiang & 星期六, 日 10:11
是独占方式,如果我将数据库清空,手动添加几条记录,然后将上面的代码前两段注释掉,
运行是没问题的。应该是前面的程序有影响。
由 zhangkan & 星期六, 日 10:38
那么请问,你后面那个TABLE打开之后,你能不能看到你刚才Insert的资料?
首先,你清空表,有没有commit?好像这个不用commit,但你要确认你表的当前状态,是修改还
接着,你用一个query插入数据,你有没有commit,若你没有,这还是在另一个事条,所以你必须
最后,你修改数据,你可以用断点查看当前状态是什么.
修改一下,如下:
if DataBase.InT
DataBase.StartT
&with tblTemp do
& &Active := F
& DataBase.
&//从表1获取和temp相关的字段
if DataBase.InT
DataBase.StartT
&with qryTemp do
& &SQL.Add('insert into temp select *from 表1');
& &ExecSQL;
& DataBase.
&//检查temp每条记录,根据结果填写Memo字段
&with tblTemp do
& &Active := T
& &while not eof do
& & &......... & & & & //检查
& & &FieldByName('Memo').AsString := 'xxx';
& &Active := F
这下子,应该没问题了.上面的事务处理只是让你程序能够运行,你还需要优化,只用一个事务
处理就行.实际上,你应该就用一个Query来处理不是更好,你同时用到了TQuery和TTable,另外,
你有没有设TDataBase,有几个?上面的Table和TQuery是不是设的同一个DataBase?
由 skylove & 星期六, 日 10:42
那大概就是指针还停留在某处了。。。没有转到你要的这条记录来,所以无法进行inster
由 coolqiang & 星期六, 日 17:28
zhangkan:后面那个Table打开后能看到记录,你说的方法我没用过,等我试试!
skylove:不会吧?我都First了,还没有转过来?如果我不用程序,用DBNavigator,先
随便定位到一个记录,在点击Edit或Insert按钮,也是一样!所以应该不是你说的那样!
由 coolqiang & 星期一, 日 09:52
呵呵,问题终于解决了!
因为用的数据库是直接从别的软件里复制过来的,曾经有几个小问题也是因它而起。这次
本来已经怀疑到数据库,并作了尝试,将有问题的表重新建了一个,但没有解决。后来,
万般无奈之下,将整个数据库重建,这些问题居然全部解决了!?
感谢大家的热心帮助!
由 coolqiang & 星期一, 日 09:54
多人接受***了。
15 篇帖子 & 分页:1 / 2 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
第二章 Visual FoxPro 表的基本操作
下载积分:2000
内容提示:第二章 Visual FoxPro 表的基本操作,表的,基础,基本,Visual,FoxPro,章Visual,表的基本操作,第二章,Foxpro,第2章,基本操作,表的方法,操作表,表的操作,表操作,visual,foxpro
文档格式:DOC|
浏览次数:45|
上传日期: 04:07:32|
文档星级:
该用户还上传了这些文档
第二章 Visual FoxPro 表的基本操作
官方公共微信

参考资料

 

随机推荐