adoquery1.fieldbyname('**').value:=edit1.text sqlstr:=format('insert into holland values (''%s'')',[Edit1.Text]) 如果Edit1.text里面有引号的话,上面两个方法应该都可以
Query->SQL->Add("Select * from ss where ss="+IntToStr(name)); name有时带有时不带‘'’
sql.text :=format('select * from t where name like ''%s'')',[Edit1.Text]); 没有问题
sql.text :='select * from t where name like '''%+Edit1.Text+'%''';
Query->SQL->Add("Select * from ss where ss="+IntToStr(name)); name有时带有时不带‘'’ ------------------ 整形的name怎么会带'?如果name是字符串而不是Integer,这样就可以:Query->SQL->Add("Select * from ss where ss=''' + StringReplace(name, '''', '''''', [rfReplaceAll]) + ''''));抱歉引号很多,不过没办法,就是这样的。
呵呵,刚刚学到一招,这样就行: Query->SQL->Add("Select * from ss where ss=' + QuotedStr(name));
使用parameter是一种变量化查询的方法,但可能会涉及到一些深入的内容,而且,使用也不怎么方便,建议这样做,把sql语句事先整理成字符串,如果该变量为字符串,那么只需要使用quotedstr把它变成pascal形式的字符串格式,接在select * from .....后面即可,如果是数值型直接转换成字符串就可以了,例: var mysql:string; begin mysql:=edit1.text; mysql:='select * from xxx where yyy = '+mysql; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(mysql); adoquery1.open; end; 这样是不是简单多了?
sqlstr:=format('insert into holland values (''%s'')',[Edit1.Text])
如果Edit1.text里面有引号的话,上面两个方法应该都可以
name有时带有时不带‘'’
没有问题
name有时带有时不带‘'’
------------------
整形的name怎么会带'?如果name是字符串而不是Integer,这样就可以:Query->SQL->Add("Select * from ss where ss=''' + StringReplace(name, '''', '''''', [rfReplaceAll]) + ''''));抱歉引号很多,不过没办法,就是这样的。
Query->SQL->Add("Select * from ss where ss=' + QuotedStr(name));
var
mysql:string;
begin
mysql:=edit1.text;
mysql:='select * from xxx where yyy = '+mysql;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(mysql);
adoquery1.open;
end;
这样是不是简单多了?