三层更新数据库问题!
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;