多表关联的数据集如何更新?

belsai 2006-05-06 04:09:18
加精
如果在ADOQuery中写了这样的语句:
select * from a,b where a.id = b.id
当更新了a表中的数据后要post时,如何控制只更新a表而不更新b表?
...全文
567 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
must0001 2006-05-11
  • 打赏
  • 举报
回复
解决这样的问题关键不在DELPHI,而在更新的数据库,这个更新本身就存在问题,如果只要更新一个表的数据,那就可以分别将数据绑定到两个表,而不是更新视图。如果没有办法,只能这样做,有两个办法:1.在前台表B的内容设置为只读,只能修改表A的内容,就可以达到目的。2.在后台将该查询设置为视图,设置该视图的INSTEAD OF 触发器也可以达到目的,不过这样复杂。
belsai 2006-05-11
  • 打赏
  • 举报
回复
这样是可以,但是有点麻烦,对于不同的表结构还要写不同的代码。我以前好像在哪儿看到过数据集有这样的属性可以实现的,各位高手还有没有直接一点的方法
weijinfei1983 2006-05-08
  • 打赏
  • 举报
回复
ADOQuery.close;
ADOQuery.sql.clear;
ADOQuery.sql.add('select * from a');
ADOQuery.open;
ADOQuery.edit;
ADOQuery.fieldvalues[1]:=edit1.text;
ADOQuery.fieldvalues[2]:=edit2.text;
......
ADOQuery.post;
ok!?
问题解决了!
belsai 2006-05-07
  • 打赏
  • 举报
回复
当插入记录时为了显示会在两个表的字段中都写入数据,但我只需要保存一个表的,就像PB的数据窗体,可以控制更新哪个表一样的
wkffree 2006-05-07
  • 打赏
  • 举报
回复
可以写个方法来实现,比如用一条SQL语句执行更新.但需要从多表查询结果中获取相关的参数传递给SQL语句.
andyzhou1101 2006-05-07
  • 打赏
  • 举报
回复
你更新的字段要又不是id
有影响吗

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧