ClientDataSet问题(50分)

  • 主题发起人 主题发起人 victorsailer
  • 开始时间 开始时间
V

victorsailer

Unregistered / Unconfirmed
GUEST, unregistred user!
with CDS_TbYwfdo
begin
First;
Edit;
while not Eofdo
begin
FieldByName('SPJE').AsFloat := FieldByName('SQJE').AsFloat;
Next;
end;
Post;
if (ChangeCount > 0) or Modified then
begin
if ApplyUpdates(-1)<>0 then
begin
Application.MessageBox('保存退业务费信息出错','错误:',MB_ICONERROR);
Exit;
end;
end;
end;
执行以上程序后,数据库中只修改了第一条记录的SPJE字段,这是为啥?如何修改?
 
post放到循环的里面
 
试过了,还是不行。改成:
First;
while not Eofdo
begin
Edit;
FieldByName('SPJE').AsFloat := FieldByName('SQJE').AsFloat;
Post;
Next;
end;
还是不行!!
 
不需要將post放到循環中,clientdataset實際上是在本機先刷新然後在更新數據庫,使用applyupdates(0)就可以了
 
将post改成applyupdates(0)????
 
while not Eofdo
begin
[red] edit;[/red]
FieldByName('SPJE').AsFloat := FieldByName('SQJE').AsFloat;
[red] Post;[/red]
Next;
end;

 
试过了,还是不行。改成:
First;
while not Eofdo
begin
Edit;
FieldByName('SPJE').AsFloat := FieldByName('SQJE').AsFloat;
Post;
Next;
end;
还是不行!!
肯定没有错,看看你的数据源是怎么来的
 
用個
update XXtable set SPJE = SQJE
不是更好實現!!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
500
import
I
S
回复
0
查看
857
SUNSTONE的Delphi笔记
S
I
回复
0
查看
472
import
I
后退
顶部