uid
evaluate_personne
enterpriseID
asset_yield
asset_guerdon
capital_increment
operation_gain
cash_ensure
cost_charge
asset_velocity
currentassets_velocity
merchandise_velocity
meritfund_velocity
badasset_ascale
balancesheet
accrual_multiple
owes_ascale
career_ascale
sell_mount
capital_pile
years_capitalmount
years_sellcapital
art_ascale
我在程序中要对account_expressions16表中的一条记录进行更新,我的程序在下边,哪个能帮我改一下谢谢急: DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT MAX(uid) AS id FROM account_expressions16');
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('id').AsInteger;
except
end;
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 3;\\从asset_yield记录开始更新
Ftext := ' UPDATE FROM account_expressions16 '
+ ' SET ';
DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_expressionsresult');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
//实际值
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
//写入数据库值
Faccounts:= 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount >= DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
//Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('excellence').AsFloat) then
//优秀值
Faccounts := DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccounts := DMBacu.expressions_result.FieldByName('quanzhong').AsFloat * 0.8;
end
else
if (Faccount <= DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccounts := 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccounts := 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccounts) + ', '
else
Ftext := Ftext + FloatToStr(Faccounts);
DMBacu.expressions_result.Next;
k:= k+1;
end;
Ftext := Ftext + ' Where uid = ' + IntToStr(uid);
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(Ftext);
showmessage(Ftext);
DMBacu.zjyz.ExecSQL;
except
end;
end
else
showmessage('指标没有填写完整,请仔细检查!')
end;
evaluate_personne
enterpriseID
asset_yield
asset_guerdon
capital_increment
operation_gain
cash_ensure
cost_charge
asset_velocity
currentassets_velocity
merchandise_velocity
meritfund_velocity
badasset_ascale
balancesheet
accrual_multiple
owes_ascale
career_ascale
sell_mount
capital_pile
years_capitalmount
years_sellcapital
art_ascale
我在程序中要对account_expressions16表中的一条记录进行更新,我的程序在下边,哪个能帮我改一下谢谢急: DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT MAX(uid) AS id FROM account_expressions16');
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('id').AsInteger;
except
end;
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 3;\\从asset_yield记录开始更新
Ftext := ' UPDATE FROM account_expressions16 '
+ ' SET ';
DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_expressionsresult');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
//实际值
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
//写入数据库值
Faccounts:= 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount >= DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
//Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('excellence').AsFloat) then
//优秀值
Faccounts := DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccounts := DMBacu.expressions_result.FieldByName('quanzhong').AsFloat * 0.8;
end
else
if (Faccount <= DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccounts := 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccounts := 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccounts) + ', '
else
Ftext := Ftext + FloatToStr(Faccounts);
DMBacu.expressions_result.Next;
k:= k+1;
end;
Ftext := Ftext + ' Where uid = ' + IntToStr(uid);
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(Ftext);
showmessage(Ftext);
DMBacu.zjyz.ExecSQL;
except
end;
end
else
showmessage('指标没有填写完整,请仔细检查!')
end;
Ftext := ' UPDATE FROM account_expressions16 '
+ ' SET ';
那有这种写法。(from 去掉)
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 3;
Ftext := ' UPDATE account_expressions16 '
+' SET asset_yield,asset_guerdon,capital_increment,operation_gain,'
+' cash_ensure,cost_charge,asset_velocity,currentassets_velocity,'
+' merchandise_velocity,meritfund_velocity,badasset_ascale,balancesheet,'
+' accrual_multiple,owes_ascale,career_ascale,sell_mount,capital_pile,'
+' years_capitalmount,years_sellcapital,art_ascale,';
你看看这个更新程序怎么不对阿,急