新手:Delphi7 update语句中where使用数值变量的格式
var fbz,fid2:string; FID:Integer;
begin
fbz:=Trim(EDBZ.Text);
fid2:=ADOQuery1.FieldByName('xh1').Asstring ;//xh1是一个自动编号字段
FID:=StrToInt(fid2);
with ADOQuery1 do begin
close;
sql.clear;
sql.add('update yzxx set bz='+fbz+' WHERE xh1=4' );
ExecSQL;
end;
end;
这里xh1=4不会出错,但如果换成
sql.add('UPDATE YZXX SET BZ='''+fbz+''' WHERE xh1='''+FID+'''');
或
sql.add('UPDATE YZXX SET BZ='''+fbz+''' WHERE xh1='''+fid2+'''');
就会出错,不知怎样在where中使用数值变量,请高手百忙中指点
[解决办法]
var fbz,fid2:string; FID:Integer;begin fbz:=Trim(EDBZ.Text); fid2:=ADOQuery1.FieldByName('xh1').Asstring ; FID:=StrToInt(fid2); with ADOQuery1 do begin close; sql.clear; sql.Text:='update yzxx set bz = '+fbz+' WHERE xh1 = '+ QuotedStr(FID); ExecSQL; end;end;
[解决办法]
我一般情况都是用 QuotedStr()来处理字符串的