加入我有两个表 class 和 grade
class字段中:class_id ,class_name,grade_id (class_id为关键字)
grade字段中:grade_id,grade_name (grade_id为关键字)
在一个dbgird中实现 class_id, class_name,grade_name
怎样做才能实现在dbgird中录入一条纪录,同时保存到class 和 grade表中?
class字段中:class_id ,class_name,grade_id (class_id为关键字)
grade字段中:grade_id,grade_name (grade_id为关键字)
在一个dbgird中实现 class_id, class_name,grade_name
怎样做才能实现在dbgird中录入一条纪录,同时保存到class 和 grade表中?
读出时:使用SELECT语句或使用视图,
写入时:TClientDataSet.ApplyUpdates(0);
我没有试过,你用用看吧:)
使用修改一个或多个成员表的可更新分区视图。
如果视图不使用 INSTEAD OF 触发器或者不是可更新分区视图,则只要符合下列条件,仍可更新: 视图在视图定义的 FROM 子句中包含至少一个表;视图不能只基于一个表达式。
在选择列表中没有使用聚合函数(AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR、VARP)或 GROUP BY、UNION、DISTINCT 或 TOP 子句。但是,可以在 FROM 子句定义的子查询范围内使用聚合函数,前提条件是聚合函数生成的派生值没有修改过。
说明 使用 UNION ALL 运算符的分区视图是可更新视图。在选择列表中不使用派生列。派生列是由除简单列引用以外的一切构成的结果集列。
begin
add('select class.class_id,class.class_name,class.grade_id,grade.grade_id,grade_name');
add('from class,grade ');
add('where class.class_id=grade.grade.grade_id');
open;
end;
datasource.dataset:=query1;修改的时候直接调用post就行了
ado会自动维护多表引用字段,详细请看李维的书
记得要把CACHEUPDATE设为TRUE