用adoquery关联3个表,查询,并把结果用dbgrid显示出来,如何实现在dbgrid上选中一条记录,就可以删除和这条记录相关的3个表中某一个表的一条记录呢?是不是多表关联查询的结果无法删除呢?
解决方案 »
- dbgrideh 单行
- 急...急....Indy中Idpop3控件异常处理的问题????
- zzf2001355 徽酥清风在吗?谢谢你提供的D5,已经可以安装了..
- 如何动态创建数据集字段?
- 关于查找图片上某特征部分图像的的矩形区域。图像高手请进,谢谢。
- 2K下QR4.03针打1600K自定义纸张多走纸一页问题
- 小问题!报表的columnheader显示不出来!加急!!!
- 怎么通过出生日期计算年龄
- 今天是1月8日,懷念周總理!!
- 第一次 .........^_^就这么一堆错!!伤心……呵……呵
- SQL查询两张表的数据表的问题,高手请进来帮帮忙呀~!!!!!!!!!!!!
- 请问在delphi中如何操作dbf数据表?
如三表以ID关联,如果要删除其中一条记录,就把其他的二个表ID相同的都delete掉
如:
'delete from table1 where id=' + DBGrid1.DataSource.DataSet.FieldByName('关键字段').AsString;然后再重新刷新!
再用个ADOQUERY,删除相关的纪录
再刷新
adoquery2.sql.clear;
adoquery2.sql.text:=sqlstr;
adoquery2.open;
adoquery2.first;
while not adoquery2.eof do//开始删除
begin
adoquery2.delete;
adoquery2.next;//下一条
end;
请把这段语放在adoquery1.ondeforedelete事件中,如果有多个关联表要删除,我想你应该知道怎么做了
var
id:string;
begin
ADOQUERY1.sql.clear;
ADOQUERY1.sql.add('delete from A where sno=' + DBGrid1.DataSource.DataSet.FieldByName('sno').AsString');
end;