关于ADO的一级联更新的老问题!!!关键是新增!! (100分)

  • 主题发起人 主题发起人 thxk
  • 开始时间 开始时间

//添加一个adoquery控件,命名为adoqueryUpdate
//在adoquery的beforePost事件里写如下代码

procedure TForm1.ADOQueryJHMXBeforePost(DataSet: TDataSet);
begin
if dataset.UpdateStatus=usInserted then //新增记录--其它状态同理
begin
adoqueryUpdate.SQL.Text:='insert into jhmx values(:sysno,:hpbh)';
adoqueryUpdate.Parameters.ParamByName('sysno').Value:=
dataset.FieldValues['sysno'];
adoqueryUpdate.Parameters.ParamByName('hpbh').value:=
dataset.FieldValues['hpbh'];
adoqueryUpdate.ExecSQL;
end;
dataset.Cancel;
adoqueryJHMX.Requery;
abort;
end;

上面的方法我也觉得很不愉快,如果你找到更好的方法不要望了告诉我!

一般我的做法是用dblookupcombobox添加、删除、修改,
另以一个专门的查询和表格显示
或用dbgrid的lookup
 
to:tinyint
我已经发给你了,请查收。使用上有什么问题在联系!
还有一个事情我忘了说,你可以用savetoExcelFile来保存你查询出来的数据到Excel文件
中,不过没有办法设置格式,只是速度快一些而已。
 
>>jin_sue
也发给我一份行吗?Wumengs@sina.com.cn
 
wumeng:
下班后在发给你。不好意思。
 
jin_sue,发给我,给分了!!!
 
jin_sue
这个问题我也有碰到,我自己把ADO控件改写了,可以解决你的问题,不过还得把关联的
表里的字段的providerflags的pflnupdate和pfinwhere都设为false才行,那样关联表中
的字段就不会更新回去了,也不会整天出一些讨厌的问题。如果你需要?可以发给你。

发一份到 THXK@163.COM,最好能够写一些思想的东东!!!谢谢!
 
我写的控件只有在SQL Server上有测试过,支持的数据类型也不多,毕竟大家的数据库中
也不过就几种数据类型。
最开始的时候是追踪了级联更新时,ADO自己产生的SQL语句,我发现他每一个表都有一个
INSERT或UPDATE的动作,这就使我产生了自己写SQL语句来代替ADO所产生的SQL语句的想法,
有了这个思路后就比较简单了,主要是在ADO更新前,用自己的SQL语句替代ADO的,其他的
就是字段的赋值,和主键的确立的问题了。
目前我还不能自动分析字段的归属,所以必须自己指定每个字段是否更新,这会比较麻烦。
有时间的话会把这个问题解决的。
邮件已发出,请查收,有什么问题的话,再联系!
 
用BETTERADO好象可以的!!

最好找人问问使用的方法!!
 
问题还是没解决,把分送送给最后的!!!
对子表操作了!!就不行了!!
 
TO: jin_sue
這個問題我以想了很久了,都沒有搞定,很急
希望能發一個給我
EMAIL:yjt-117@263.net QQ8574571
 

Similar threads

S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
后退
顶部