请教(三层数据提交问题):DataSetProvider.OnBeforeUpdateDate(...; UpdateKind ...)事件中,当其updatekind参数为ukMOdify时,如何得知修

xjjdanran 2003-10-23 11:48:16
在DataSetProvider.OnBeforeUpdateDate(...; UpdateKind ...)事件中如果手动更新数据,当updatekind为ukModify时,怎么写SQL?即其更新的条件?先谢了!
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2003-11-06
  • 打赏
  • 举报
回复
if not VarIsEmpty(DeltaDS.FieldByName('afieldname').NewValue) then
begin
//此字段被修改
end;
xjjdanran 2003-11-02
  • 打赏
  • 举报
回复
谢谢大家的支持,我的问题是这样的:
在客户端我是从两个表查询的数据集显示在DBGrid中,然后由用户操作,如果提交更新的数据,那实现起来就特麻烦,且也没有合适的方法,所以我想用TClientDataSet.Apply(0)方法来提交,在服务端来手动分析每条数据,再分别写SQL语句.但如果是修改的记录,好像只能获得修改的字段,却不知道是哪条记录被修改了!
Erice 2003-10-29
  • 打赏
  • 举报
回复
procedure Tgalssdata.DProbaseBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin

end;

SourceDS代表连接数据源
DeltaDS代表客户端的数据源

你可以自定义接口方法,将数据传送到应用端写SQL语句;

还有,,,请你说明白,,,你用SQL语句修改什么,,,,我不明白
rocker1218 2003-10-29
  • 打赏
  • 举报
回复
老兄:
我的到来是很重要的,就是帮不上你的忙!
其实我现在对三层也很头疼的,也急切的需要这方面的资料,同时我也努力尝试着去作,可是结果..........
你有什么资料吗?请教教我好吗?我就在数据的传递和更新上不懂!
请帮助!
谢谢!bettycyq@sohu.com
icefire_cwj 2003-10-29
  • 打赏
  • 举报
回复
在ONUpdateData事件中可以设置更新条件
procedure TcsDataModule.WorkDataProviderUpdateData(Sender: TObject;
DataSet: TCustomClientDataSet);
var
i: integer;
begin
for i := 0 to DataSet.Fields.Count - 1 do
begin
if (DataSet.Fields[i].FieldName <> 'GUIDCode') then
DataSet.Fields[i].ProviderFlags := DataSet.Fields[0].ProviderFlags - [pfInWhere]
else
DataSet.Fields[i].ProviderFlags := DataSet.Fields[0].ProviderFlags + [pfInWhere];
end;
end;

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧