三层数据修改问题,能修改本地的clientDataset1,但提交后不能修改服务器上的数据. ( 积分: 50 )

  • 主题发起人 主题发起人 边城过客
  • 开始时间 开始时间

边城过客

Unregistered / Unconfirmed
GUEST, unregistred user!
DELPHI+SQL2000+scktsrvr:<br>&nbsp;&nbsp;&nbsp;&nbsp;在做客户端数据修改时,能修改本地的clientDataset1,但提交后不能修改服务器上的数据,源码如下:<br>&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;clientDataSet1&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//进行修改<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientDataset1.Edit;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('jgdm').asstring:=edit1.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('jgjb').asstring:=ComboBox1.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('xm').asstring:=edit2.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('bm').asstring:=edit3.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientDataSet1.ApplyUpdates(-1);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end<br>&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//新增处理<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;ClientDataSet1&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientDataset1.insert;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('jgdm').asstring:=edit1.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('jgjb').asstring:=ComboBox1.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('xm').asstring:=edit2.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clientdataset1.fieldbyname('bm').asstring:=edit3.text;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientDataSet1.ApplyUpdates(-1);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;以上代码能做服务器端的新增处理,但不能做服务器端的数据修改.麻烦高手们指点迷津.
 
你这里可能有你的表的结构限制!也可能是不是你同时更新多个表,应该用ClientDataSet1.ApplyUpdates(0)如果这个值不为0,就是更新失败
 
贴出错误提示!!!
 
ClientDataSet1.ApplyUpdates(-1);&nbsp;-1可能是出错也报不出来的吧~,你用sql监视器看看,执行了什么语句
 
to&nbsp;ycluo:用ClientDataSet1.ApplyUpdates(0)也不行,<br>to&nbsp;郭玉梁:没任何错误提示.<br>to&nbsp;vmao:sql监视器怎么用?
 
错误在服务器捕捉,是提交错误
 
我不会在服务器捕捉提交错误,能不能讲详细一点,谢谢!
 
你edit后怎么没post的?<br>ClientDataSet1的ReconcileError事件中可以捕捉到错误,可以设置个errbz:=True;<br>提交前errbz:=False.提交后errbz的值如果为真则表明失败.
 
edit后面加了post也一样;<br>ClientDataSet1的ReconcileError事件中可以捕捉到错误,可以设置个errbz:=True;<br>提交前errbz:=False.提交后errbz的值是False。
 
你可以在中间层跟踪啊,也可用事件探测器跟踪啊,
 
我在服务器上用了事件探测器,上面代码运行完后,最后一条SQL语句是:<br>select&nbsp;*&nbsp;from&nbsp;rsygmx&nbsp;where&nbsp;bz=4312&nbsp;order&nbsp;by&nbsp;bz,jgdm<br><br>谁能帮帮我啊!
 
应该还有其它更新的语句的,eg:&nbsp;update&nbsp;,&nbsp;insert&nbsp;into&nbsp;等之类的
 
在delphi里运行server,运行客户端,如果有bug,delphi的server就会提示错误<br>看看就知道了,要根据错误,才能对症下药!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
940
SUNSTONE的Delphi笔记
S
后退
顶部