delphi 求和问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 20:20:29
//如果有相同的那么新增一条记录,把原来的rkcp_zs+edit6的值=新增记录的总数
ADOquery4.Close;
ADOquery4.SQL.Clear;
ADOquery4.SQL.Text:='select * from cprk where rkcp_name=:edit1 ';
ADOquery4.Parameters.ParamByName('edit1').Value:=edit1.Text;
ADOquery4.Open;
if not ADOquery4.Eof then
begin
ADOquery4.Close;
ADOquery4.SQL.Clear;
ADOquery4.SQL.Add('insert into cprk (rkcp_name,rkcp_gg,rkcp_xh,rkcp_bh,rkcp_mey,rkcp_sl,rkcp_zs) values

('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''','''+edit4.Text+''','''+edit5.Text+''','''+edit6.Text+''') ');
ADOquery4.ExecSQL;
end
else //如果没有相同的,那么就创建一条新的记录,并且:(假设rkcp_zs的值为0)那么rkcp_zs=edit6的值
ADOquery4.Close;
ADOquery4.SQL.Clear;
ADOquery4.SQL.Add('insert into cprk (rkcp_name,rkcp_gg,rkcp_xh,rkcp_bh,rkcp_mey,rkcp_sl) va

你可以用参数来做,把它当成一个平常的值.原表中的某字段值可以先取出来再相加.而且写这类插入数据语句,使用你那种方法很不方便的.可以参考下面的写法.

例如:
ADOquery1.Close;
ADOquery1.SQL.Clear;
ADOquery1.SQL.Add('insert into cprk (rkcp_name,rkcp_gg,rkcp_xh,rkcp_bh,rkcp_mey,rkcp_sl) values(:n1,:n2,:n3,:n4,:n5....)');
ADOQuery1.Parameters.ParamByName('n1').Value := Edit1.Text;
ADOQuery1.Parameters.ParamByName('n2').Value := Edit2.Text;
....
ADOquery1.ExecSQL;