query.post后提示“缺少更新或刷新的键列信息”??是怎么回事??
写了个form
上边全用dbedit,dbcombobox等
query.open后各个内容修改正常
但是通过post提交后提示“缺少更新或刷新的键列信息”设么意思??
大虾们请指教!!怎么解决??
[解决办法]
TADOQuery的Post最终是转化为SQL更新的。如果你显示的数据是关联查询出来,这样会同时更新几个表的,这时需要确定你是否要同时更新几个表,而且不能存在主键重复的情况。如果你显示的数据是单表数据的话,肯定是发生了关键字冲突,造成有重复的记录。
[解决办法]
Query是不能直接更新的!
你可以在BeforePost事件中处理:
var
ls_sql:string;
ls_sql:= 'update set field1=... where KeyField= ' ' ' ' ';
tempQuery.sql.clear;
tempQuery.sql.add(ls_sql);
tempQuery.Execute;
abort;
query.ref...