F
fwq
Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用ado进行更新表的操作中出现如下提示:操作必须使用一个可更新的查询!
我的程序如下:
for i:=0 to 3 do
begin
q.Close;
q.SQL.Clear;
q.SQL.add('insert into tj (fdate,fno) valuesadate,:ano)');
q.Parameters.ParamByName('adate').DataType :=ftdate;
q.Parameters.ParamByName('adate').Value :=encodedate(2002,i+1,1);
q.Parameters.ParamByName('ano').DataType :=ftinteger;
q.Parameters.ParamByName('ano').Value :=i;
q.Prepared :=true;
q.ExecSQL;
q.Close;
q.SQL.Clear;
q.SQL.add('update tj set fmoney=(select sum(ls.fmoney) from ls where ls.fdate>:afdate and ls.fdate<:atdate) where tj.fno=:ano');
q.Parameters.ParamByName('afdate').DataType :=ftdate;
q.Parameters.ParamByName('afdate').Value :=dtp_from.Date;
q.Parameters.ParamByName('atdate').DataType :=ftdate;
q.Parameters.ParamByName('atdate').Value :=dtp_to.Date;
q.Parameters.ParamByName('ano').DataType :=ftinteger;
q.Parameters.ParamByName('ano').Value :=i;
q.Prepared :=true;
q.ExecSQL;
end;
我的程序如下:
for i:=0 to 3 do
begin
q.Close;
q.SQL.Clear;
q.SQL.add('insert into tj (fdate,fno) valuesadate,:ano)');
q.Parameters.ParamByName('adate').DataType :=ftdate;
q.Parameters.ParamByName('adate').Value :=encodedate(2002,i+1,1);
q.Parameters.ParamByName('ano').DataType :=ftinteger;
q.Parameters.ParamByName('ano').Value :=i;
q.Prepared :=true;
q.ExecSQL;
q.Close;
q.SQL.Clear;
q.SQL.add('update tj set fmoney=(select sum(ls.fmoney) from ls where ls.fdate>:afdate and ls.fdate<:atdate) where tj.fno=:ano');
q.Parameters.ParamByName('afdate').DataType :=ftdate;
q.Parameters.ParamByName('afdate').Value :=dtp_from.Date;
q.Parameters.ParamByName('atdate').DataType :=ftdate;
q.Parameters.ParamByName('atdate').Value :=dtp_to.Date;
q.Parameters.ParamByName('ano').DataType :=ftinteger;
q.Parameters.ParamByName('ano').Value :=i;
q.Prepared :=true;
q.ExecSQL;
end;