query2.Close;
sql:='select nrs from a where y=1';
query2.SQL.Clear;
query2.SQL.Add(sql);
query2.Open;
query2.first;
while not query2.Eof do
begin
irs:=query2.Fields[0].AsInteger;
query3.Close;
sql:='update b set cnum='+irs+' where x=1 ';
query3.SQL.Clear;
query3.SQL.Add(sql);
query3.Prepare;
query3.ExecSQL;
query2.Next;
end;
编译后提示irs没有被使用,请问怎么用irs变量来更新cnum字段呢?是不是格式写错了?
sql:='select nrs from a where y=1';
query2.SQL.Clear;
query2.SQL.Add(sql);
query2.Open;
query2.first;
while not query2.Eof do
begin
irs:=query2.Fields[0].AsInteger;
query3.Close;
sql:='update b set cnum='+irs+' where x=1 ';
query3.SQL.Clear;
query3.SQL.Add(sql);
query3.Prepare;
query3.ExecSQL;
query2.Next;
end;
编译后提示irs没有被使用,请问怎么用irs变量来更新cnum字段呢?是不是格式写错了?
这样改改吧。
var
sqlstr:string;
irs:integer;
query2.Close;
sqlstr:='select nrs from a where y=1';
query2.SQL.Clear;
query2.SQL.Add(sqlstr);
query2.Open;
query2.first;
while not query2.Eof do
begin
irs:=query2.Fields[0].AsInteger;
query3.Close;
sqlstr:='update b set cnum='+inttostr(irs)+' where x=1 ';
query3.SQL.Clear;
query3.SQL.Add(sqlstr);
query3.Prepare;
query3.ExecSQL;
query2.Next;
end;
sqlstr:string;
irs:integer; //这个可以这样定义 irs:string;
query2.Close;
sqlstr:='select nrs from a where y=1';
query2.SQL.Clear;
query2.SQL.Add(sqlstr);
query2.Open;
query2.first;
while not query2.Eof do
begin
//这里可以加多判断,增强容错性
if query2.Fields[0].isNull then
irs:='0'
else
irs:=query2.Fields[0].AsInteger; //这里可以改为 irs:=query2.Fields[0].AsString;
query3.Close;
sqlstr:='update b set cnum='+irs+' where x=1 '; //按原来哪有
query3.SQL.Clear;
query3.SQL.Add(sqlstr);
query3.Prepare;
query3.ExecSQL;
query2.Next;
end;