注意delphi中的双引号代表SQL语句中的单引号:SQL语句:select * from userinfo where name = 'aaa';delphi中: 'select * from userinfo where name = ''aaa''';
Str1:='Select * from UserInfo Where '+CXZD+'='''+CXNR+'''';//用动态的SQL语句吧,不用考虑的 with adoquery1 do begin close; sql.clear; sql.add('select * from userinfo where (cxzd=:a)and(zxnr=:b)'); parameters.parametersbyname('a').value:=edit1.text; parameters.paramtersbyname('b').value:=edit2.text; open; end;
sql.add('select * from userinfo where (cxzd=:a)and(zxnr=:b)'); parameters.parametersbyname('a').value:=edit1.text; parameters.paramtersbyname('b').value:=edit2.text; 这个方法不错。
Str1:='Select * from UserInfo Where '+CXZD+'='+#39+CXNR+#39;后面为什么4个',你用showmessage('''')看看就知道了
Str1:='Select * from UserInfo Where %s=%s';sql:=Format(Srt1,[CXZD,QuotedStr(CXNR)]);
一楼写的是常量,可以那么用。但若CXNR是字符(或日期)变量就应写成 Str1:='Select * from UserInfo Where CXZD='''+CXNR+'''';若CXNR是数值变量 Str1:='Select * from UserInfo Where CXZD='+CXNR;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from userinfo where (cxzd=:a)and(zxnr=:b)');
parameters.parametersbyname('a').value:=edit1.text;
parameters.paramtersbyname('b').value:=edit2.text;
open;
end;
parameters.parametersbyname('a').value:=edit1.text;
parameters.paramtersbyname('b').value:=edit2.text;
这个方法不错。
Str1:='Select * from UserInfo Where CXZD='''+CXNR+'''';若CXNR是数值变量
Str1:='Select * from UserInfo Where CXZD='+CXNR;