已经有一个score表,三个字段,name,math,chinese,total记录成绩和总分,想用table将计算出来的总分写回数据表.
table1.edit;
a:=table1.fieldbyname('math').asfloat;
b:=table1.fieldbyname('chinese').asfloat;
table1.fieldbyname('total').asfloat:=a+b;
table1.post;请高手看看有啥错误?怎么改?
table1.edit;
a:=table1.fieldbyname('math').asfloat;
b:=table1.fieldbyname('chinese').asfloat;
table1.fieldbyname('total').asfloat:=a+b;
table1.post;请高手看看有啥错误?怎么改?
query.Close;
query.SQL.Clear;
query.SQL.Add('update score set total = math + chinese');
query.ExecSQL;
with table1 do
begin
edit;
fieldbyname('total').asfloat:=fieldbyname('math').asfloat+fieldbyname('chinese').asfloat;
post;
end;
begin
edit;
fieldbyname('total').asfloat:=fieldbyname('math').asfloat+fieldbyname('chinese').asfloat;
post;
end;
语法和记录指针位置都没问题;就是出现下面的错误。
出现错误:
table1:Dataset not in edit or insert mode
query.Close;
query.SQL.Clear;
query.SQL.Add('update score set total = math + chinese');
query.ExecSQL;
----->>>
table1.fieldvalues['total']:=floattostr(a+b);
begin
edit;
fieldbyname('total').asfloat:=fieldbyname('math').asfloat+fieldbyname('chinese').asfloat;
post;
end;
语法和记录指针位置都没问题;就是出现下面的错误。
出现错误:
table1:Dataset not in edit or insert mode-------------------------------------------------问题不是出在这段代码里...说过了,不知你的表有没有记录,有几条记录,也不知你是要处理哪一条...
Table1.first;
table1.next;
然后才
with table1 do
begin
edit;
fieldbyname('total').asfloat:=fieldbyname('math').asfloat+fieldbyname('chinese').asfloat;
post;
end;
还是出错.
Table1.CachedUpdates:=true;