将Query的UpdateObject连接到UpdateSQL上。双击UpdateSQL,设定相应的SQL语句,就可以了。
解决方案 »
- fastreport一页可以用两个footer框吗
- Delphi 创建项目中那么多选项,那个是干什么用的!
- 现在想做版本控制,可是VSS不支持,StarTeam又不会
- 辛辛苦苦写的软件在繁体操作系统下显示乱码,如何解决?
- 用DELPHI写ACTIVEX,放到IE浏览器中,为什么方向键和TAB键不好用了??
- ocx如何单步调试?
- 在MDI的工程中,如何判断打开的多个窗体中哪个是当前的活动窗体
- 我们公司现在接到个业务,如何报价?
- 有关检查sql server的服务状态跟检查映射的硬盘空间的问题,急……
- Delphi里有没有那个控件能够实现这样的功能,类似于DbGridEh,首先显示明细记录,然后在底部增加一条汇总记录,但是汇总的结果是两个字段
- 请问怎样使桌面图标文字背景编程透明?
- 用ADOQuery打开数据库,在DBGrid中修改最后一条记录时,保存时提示"缺少必要的键值或关键字,影响到过多的纪录行",修改非最后一条的记录时,保存则没问题。
单击select primary keys后,在左侧字段名中选择您的主键,在右侧字段名中选择非主键字段,单击generate sql后,出现三种模式的sql语句,分别查看后单击ok键,好拉,现在一切ok
拉,开始送分吧??:)
updatesql当然需要requestlive为True了,否则怎么修改数据啊?而且往往是requestlive无法设为True时,加一个UpdateSQL就可以设为True了。
关于上述问题的第一问:
请问有什么情况下使用query和updatesql。如向上面各位的方案中设置好了以后。
怎样实现数据的录入、编辑、查询、删除及对数据表的一些操作。谢了。
qhdsfh(飞翔的鹰)老兄:问题完全解决后。一定给分。我有大把的分。
望以后大家多看一看关于我的贴子。一起探讨DELPHI中奥秘。
在此祝大家:事业有成。天天发财! 礼
缺少什么样。但据说此功能有很强的功能。
我刚才试过:RequestLive设为False,无论是否有UpdateSQL均不能修改。
而且只要RequestLive是True,无论CacheUpdate是什么,数据都可以提交。我觉得你的设置可能有问题。
To dargon949(森林):
UpdateSQL是在隐式的工作,所以利的代码不用修改。如果CacheUpdate是False,那么Post的时候,Delphi自动调用UpdateSQL中相应的SQL修改数据库。如果CacheUpdate是True的时候,那么ApplyUpdates的时候,Delphi自动调用UpdateSQL中相应的SQL修改数据库。你不需要做任何多余的工作。
这就是Delphi的强大功能所在。
我刚才试过:RequestLive设为False,无论是否有UpdateSQL均不能修改。
而且只要RequestLive是True,无论CacheUpdate是什么,数据都可以提交。我觉得你的设置可能有问题。
To dargon949(森林):
UpdateSQL是在隐式的工作,所以利的代码不用修改。如果CacheUpdate是False,那么Post的时候,Delphi自动调用UpdateSQL中相应的SQL修改数据库。如果CacheUpdate是True的时候,那么ApplyUpdates的时候,Delphi自动调用UpdateSQL中相应的SQL修改数据库。你不需要做任何多余的工作。
这就是Delphi的强大功能所在。
我刚才试过:RequestLive设为False,无论是否有UpdateSQL均不能修改。
而且只要RequestLive是True,无论CacheUpdate是什么,数据都可以提交。我觉得你的设置可能有问题。
To dargon949(森林):
UpdateSQL是在隐式的工作,所以利的代码不用修改。如果CacheUpdate是False,那么Post的时候,Delphi自动调用UpdateSQL中相应的SQL修改数据库。如果CacheUpdate是True的时候,那么ApplyUpdates的时候,Delphi自动调用UpdateSQL中相应的SQL修改数据库。你不需要做任何多余的工作。
这就是Delphi的强大功能所在。
对数据库的增删改操作,可能我表达不清楚,简单的说,增加就是在置为query.insert后
将数据从edit框或其他送入字段,fieldbyname('字段名').asstring :=edit.text;
然后,分别applyupdates、commitupdates就算是完成了!修改和增加差不多,只是置为
query.edit。删除更简单,只是delete后,applyupdates和commitupdates即可。你试试
吧。我的方法可能麻烦,但是有效,因为我现在在这样写!
我知道您是高手,但是在我这里我用您的方法试过后发现,当requestlive为true时,不能修改,当两项同时为true时,可以修改但是报错,错误还是没有在cacheupdates mode下,当requestlive为false时,没有updatesql当然不能修改,但是有updatesql时,只要cacheupdate为true则可以修改!您能帮我想想我的设置错在那里吗?我知道增加和删除方面好象与您的意见没有什么出入,只在修改!
而且requestlive为true对表是独占的,不理想。
我是把updatesql和事务处理一起使用,从没有设置过requestlive
不知chechy(chechy)兄是怎样的看法。
我们终于有了答案!我并不是因为我的答案是正确的,而是,我们搞清楚了一个问题!我估计可能是因为您的分组条件导致修改分组,而索引没有改变(在cacheupdatesql模式下),所以出错?您觉得呢?
我认为您的观点并没有错,主要是cacheupdatesql和requestlive是近似作用的,二者
任选其一,不能同时调用。因为他们的提交方式和模式是完全不同的!
但我不用UpdateSQL只用Query就不会出错误。原因如何?
吩回音!!
礼
使用TQuery组件实现数据编辑,有两种方法:
1。将RequestAlive属性True
这种方法对表进行加锁处理,和Table的使用类似(如果Table的CacheUpdate为False的话)
2。将CacheUpdate属性设为True,RequestAlive设为False
这种方法将在本地创建所选记录的本地副本(你可以看到在工作路径或可执行文件的路径下有*.md类似文件创建)在此基础上修改。这种方法最好使用Database.ApplyUpdate([Datasets])进行数据修改的提交。。我现在有一个问题想请高手们帮忙。请看
http://www.csdn.net/expert/topic/393/393839.shtm