说实话,query是个不错的东东,但有些地方小弟搞不太明白。
1、adoquery中的sql为:
select a.f1,a.f2,b.f1,b.f2,b.f3 from a,b where a.f1=b.f1;
连接上dbgrid,dbnavegater,一切OK。
但当小弟点下delete删除某行时,(只想删除b表中的记录)...my god...两个表中的相应行都被delete了。
高手们,可不可以只删除指定表的值啊...2、现在小弟只敢用lookup字段来完成相应的功能,也就是从一个表中select,一个表来lookup。但...lookup字段却不能过滤和排序...
高手们,lookup字段如何实现排序和过滤呢?
1、adoquery中的sql为:
select a.f1,a.f2,b.f1,b.f2,b.f3 from a,b where a.f1=b.f1;
连接上dbgrid,dbnavegater,一切OK。
但当小弟点下delete删除某行时,(只想删除b表中的记录)...my god...两个表中的相应行都被delete了。
高手们,可不可以只删除指定表的值啊...2、现在小弟只敢用lookup字段来完成相应的功能,也就是从一个表中select,一个表来lookup。但...lookup字段却不能过滤和排序...
高手们,lookup字段如何实现排序和过滤呢?
但这样做的话不便于写出与后台无关的通用程序,而且写法上比较复杂。删除后,先close再open,如果用了filter和sort则要重新加上filter和sort条件。如果用refresh...天知道为什么还没有close再open快。
所以我想若真是没有办法指定删除某个表中的值,那我宁愿去实现lookup字段的排序和过滤.但好象这个难度也很高。虽然clientdataset好象有这个功能,不过在两层应用中用它来写比较夸张。
如果是关联删除的话,在MIS中是很常用的,你最好写存储过程或者触发器解决这个问题,
减少程序的复杂性.能够实现连动删除.
是不是用两个query,其中一个是多表关联的,用于显示;一个只是从一个表中选值,两个表根据某关键字相互定位,删除时删除只从一个表中取值的那个dbgrid?
若是象那样,还是需要和使用了delete from...where ...差不多,还是需要refresh。而且对系统资源要求高一些。
不过这个方法编程上要简便一些。thanks.
还有没有其它的方法?