三层更新数据库问题!

hjf1223 2004-07-07 12:06:48
if form1.add=false then
begin
position := 0;
with form1.ClientDataSet1 do
begin
Edit;
FieldByName('Fcredit').asstring:=self.CreditEd.Text ;
FieldByName('Fpay').asstring:=PayEd.text;
FieldByName ('Fprepay').asstring:=prepayEd.text;
FieldByName ('Fexcept').asstring:=ExceptEd.text;
FieldByName ('Fuseful').asstring:=floattostr(2500-strtofloat(CreditEd.text));
FieldByName ('Fmemo').asstring:=Memo1.text;
end;
DecodeDate(strtodate(form1.ClientDataSet1.fieldByName('Fdate').asstring),y1,m1,d1);
m1:=m1+1;
lDate:=EncodeDate(Y1,m1,1);
lDate:=lDate-1;
while (strtodate(form1.ClientDataSet1.fieldByName('Fdate').asstring)<> lDate) and (form1.ClientDataSet1.recno<=form1.ClientDataSet1.recordcount-1) do
begin
Credit:=floattostr(form1.ClientDataSet1.fieldByName('Fcredit').asfloat-
form1.ClientDataSet1.fieldByName('Fpay').asfloat+form1.ClientDataSet1.fieldByName('Fprepay').asfloat+
form1.ClientDataSet1.fieldByName('Fforwar').asfloat);
form1.ClientDataSet1.Next;
position := position +1;
form1.ClientDataSet1.edit;
form1.ClientDataSet1.FieldByName('Fcredit').asstring:=Credit;
form1.ClientDataSet1.FieldByName('Fuseful').asstring:=floattostr(2500-strtofloat(Credit));
end;
//form1.ClientDataSet1.Edit;
form1.ClientDataSet1.Post;
Form1.ClientDataSet1.ApplyUpdates(-1);
Form1.ClientDataSet1.MoveBy(-position);
end



更新的时候提示, 列名'forder' 无效(我有FORDER这个字段!)不知道为什么会出现这样的错误!

而下面这个不会出错!一样没有改变FORDER字段
else
begin
with form1.ClientDataSet1 do
begin
FieldByName('Fdate').asstring:=DateEd.text;
FieldByName('Fcredit').asstring:=CreditEd.text;
FieldByName('Fpay').asstring:=payEd.text;
fieldByName('Fprepay').asstring:=prePayEd.text;
FieldByName('Fexcept').asstring:=ExceptEd.text;
fieldByName('Fuseful').asstring:=floattostr(2500-strtofloat(CreditEd.text));
fieldByName('Fmemo').asstring:=Memo1.text;
end;
try
form1.ClientDataSet1.Post ;
Form1.ClientDataSet1.ApplyUpdates(0);
except
on e:Exception do
showmessage(pchar('数据提交出错'+#13+#13+e.message))
end;

...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
howwise 2004-07-07
  • 打赏
  • 举报
回复
两种可能:
1、cds里你加了字段 但没有FORDER
2、你的数据库表里没有FORDER。
yinweixian 2004-07-07
  • 打赏
  • 举报
回复
好长,帮你顶
hjf1223 2004-07-07
  • 打赏
  • 举报
回复
问题解决,要将应用服务器的 DataSetProvider的ResolveToData属性改成True
hjf1223 2004-07-07
  • 打赏
  • 举报
回复
第二种不可能,因为我的数据库中有这个字段
第一种可能是怎么回事?什么是CDS?谢谢!

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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