200分!!!BDE tquery的缓存更新(200分)

  • 主题发起人 toby_lee
  • 开始时间
T

toby_lee

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]
Dears:
我的开发环境:
delphi 6.0 + MS SQL(tquery+updatesql)


TQuery的几个属性值为:
cachedupdated:=true;
requstlive:=ture;

tupdatesql的sql中都写有相应语句。

TQuery的Onupdaterecord事件中写到
emp_query.UpdateObject:=emp_updatesql;
emp_updatesql.SetParams(updatekind);
emp_updatesql.ExecSQL(updatekind);
updateaction:=uaapplied;

buttonclick中写到:
dm_form.emp_query.ApplyUpdates;

为什么在向后台提交时出错为:Update Failed。数据也没有写回数据库。
 
给点分我吧!我帮你up
query的updateobject接上没有?
 
1。为什么不把updatesql固定接好!
2。requestlive可以设为false
3. TQuery的Onupdaterecord事件中不要写东西!直接写在控件里不就得了!
 
Dear vmao:

只要你给我搞定200分就是你的了。你也知道我是贫穷了点,
还是比较有信用的。上次图片的问题我很是感谢你。来吧。。。。。。
 
我正在测试,请稍后。。。。
 
你为什么喜欢写在事件里啊?
这样不安全!比如:在query open的时候是不是可以给updateobject赋值啊?
而且updatesql语句是否存在问题!可能的原因很多!

我一直用bde+updatesql的!
直接写在控件里不就行了!什么代码也不用写啊!
只要applyupdates;commitupdates就可以了啊!
 
能再说详细点吗?我还是不行!
 
你在界面上把query的updateobject设为tupdatesql
query中写好sql语句
然后双击updatesql控件从弹出窗口中点击select primary key
在左边选择key字段后点击generate sql 生成更新语句(自动的),
就可以和正常query一样使用了!
 
谢谢你,看来你又要得到我的积分了,
我还想问一下,在updatesql控件从弹出窗口中点击select primary key后,再选一个
key是可以成功。但为什么选dataset defaultes(选中全部)后就不行呢。我也看了,选了
全部后。sql语句中(where)会多一些and的条件。

能讲一下选select primary和dataset defaultes/Get table fields的区别吗?为什么
我用后者就会得到update failed呢?

 
也不会不成功的!
get table fields就是把字段读进updatesql
dataset defaluts就是默认选取所有字段!
select primary就是选取几个值去做where 条件!

解释一下:
主要就是在生成语句的where条件上!
当我们用提交修改的时候query做了什么?
它使用了update sql 语句条件根据where 去修改改记录!当两个用户同时修改一条记录的
时候另一个用户就很可能提交不过去!因为where 条件的语句可能定位不到!--被其它人修改了!
所以条件越多定位越严格!如果两个用户修改了同一字段!但该字段不在where里则两人都
能保存进去!后提交的覆盖先提交的、如果在where 里后提交的不能存进去了!
但是要注意的是bde有一个bug! 你可以注意一下update sql 语句的where 全是 aa=:eek:ld_aa
的样子!所以当有空值的时候就过不去了!空的sql 是 where aa is null 而不是=
所以要求不高的话就通过key去定位!这样容易成功!
 
我有点明白了。
谢谢你了。你真历害。能给我你的email吗?以后我穷得不行了,可不可以直接问你啊!
也算了交个朋友啊!我还是会给你200分,信用是我的第一守则。
Toby Lee

 
vmao@163.com
 
谢谢你:
Vmao,下次我还找你!管用。。。。。。?哈。。。。。。。。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
556
import
I
S
回复
0
查看
828
SUNSTONE的Delphi笔记
S
顶部