关于多表查询后删除的问题(100分)

  • 主题发起人 主题发起人 windflag
  • 开始时间 开始时间
W

windflag

Unregistered / Unconfirmed
GUEST, unregistred user!
有有两个表
关系如下:(a,b,c是A表中三条记录,b是B表中的记录,他们通过id 字段关联,B表中
id 唯一)
a-----------+---------b
|
b-----------+
|
c-----------+

用ADOquery connectstring 连接 ACCESS 数据库
sql语句为 select * from A,B where A.id=B.id;

执行结果用DataContral 控件连在一块
增加命令按钮 (删除) action属性为DataSetDelete1(来自actionlist)

本意是要删除记录a,但执行删除命令后
连b记录也删除了
怎样才能只删a,而不删除b

请高手指点

thinks
 
由两张表组成的query为什么一定要使用datasetdelete来完成删除?
不能有另一个query来完成吗?
自己写sql语句
 
把B的字段设计成只读试试。
 
数据库是做集合操作,只要符合条件的纪录集就会受操作的影响。
你的处理方法肯定不行,只能通过找出要删除的查询的id,用其他sql单独删除a中纪录,然后再刷新!
 
adoQuery不行,它太智能了,留给用户的可操作空间太小,用Query连接UpdateSQL控件可以
否则就只有自己写SQL了
 
where .....AND A.XXX='A'
 
1:去掉主从关系,或将该关系移到其他字段

2:用sql语法注意 若存在关系,只能删除从表记录
 
提问者到底有没有试验我们的方法呀???
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
616
import
I
后退
顶部