问题说明:
adoquery多表查询,select a.c1, a.c2, a.c3, b.c4, b.c5 from table1 a, table2 b where a.t1=b.t2
adoquery.open;
修改了数据集中c1, c2, c3, c4, c5字段数据后保存我想只将table1表的c1, c2字段更新到数据, c3, c4, c5修改忽略。不知道如何实现,查过以前的一些帖子,设置properties['unique table'].value='table1' 也没用,只对删除操作有用。这问题困扰一个星期了,查来找去,一直没解决,希望CSDN高手们帮帮忙,非常感谢。
adoquery多表查询,select a.c1, a.c2, a.c3, b.c4, b.c5 from table1 a, table2 b where a.t1=b.t2
adoquery.open;
修改了数据集中c1, c2, c3, c4, c5字段数据后保存我想只将table1表的c1, c2字段更新到数据, c3, c4, c5修改忽略。不知道如何实现,查过以前的一些帖子,设置properties['unique table'].value='table1' 也没用,只对删除操作有用。这问题困扰一个星期了,查来找去,一直没解决,希望CSDN高手们帮帮忙,非常感谢。
解决方案 »
- 抛砖引玉:两个ComboBox(或DBComboBox)实现拼音快速带出汉字
- (急)在程序中分析Html中代码,如何见区位码字符串如何转换成为正常字符??
- 怎么设置dataset得date判断filter???
- 极菜的问题(望星星们不吝赐教)
- 如何实现Delphi的属性编辑器???
- 问高手个拦截API的东西
- 程序奇怪的问题~~~
- 真急呀!各位兄台帮忙看看这个TClientSocket问题!!!
- c/s结构的程序能跨网段用吗?
- 我用isapi作的程序为什么换一台机子,同一个目录下却不能用了?
- adoquery1 dataset not in edit or insert mode,不知道什么原因……
- delphi运行外部程序并等待外部程序运行完毕,并不是结束
SDAC(SQL Server Data Access Components),没用过,它可以指定更新表与更新的字段吗?
要操作的话可以用update语句更新
还是自己update最保险
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update Table1 set c1=:c1,c2=:c2 where t1=:t1'); //关键是如何确定这条记录的关键字,
//建议在ADOQuery1中加入关键值字段
ADOQuery2.Parameters.ParamValues['c1'] := DataSet.FieldValues['c1'];
ADOQuery2.Parameters.ParamValues['c2'] := DataSet.FieldValues['c2'];
//...
ADOQuery2.ExecSQL;
Abort;
end;
谢谢,您这是个方法,但通用性不强,我们项目中到处都需要用到它修改删除数据这类操作,需要通用性更强一些,还是得想想别的好办法才性,谢谢Oraclers兄,有时间一起研究吧。
谢谢 case5166,上午体验了SDAC一下,问题解决了,感觉很不错,读数据速度比ADOQUERY更快。还有个问题想问一下就是,SDAC只能兼容SQL SERVER数据库,有没有能兼容SQL SERVER ,ORACLE的版本?
我的意思是一个版本能 兼容多数据库比如SQL SERVER,ORACLE刚查到uniDAC说可以,不知道跟SDAC有什么区别,请指教,非常感谢。
没用过uniDAC。
帮你搜了下,你可以看看下面的链接:
其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等。从那文章来看要通用的话就用uniDAC吧,不知道像uniDAC的FILTER是否支持To_Char,To_Date,及SQL SERVER的CAST等函数。
而如果分开使用的话FILTER是支持相对应的数据库函数的。你可以试试