如何在SQL语句中表达字符串变量的值?(20分)

  • 主题发起人 主题发起人 narduo
  • 开始时间 开始时间
N

narduo

Unregistered / Unconfirmed
GUEST, unregistred user!
var
sqlstr:string;
begin
sqlstr:='where a='+edit1.text;//如何给edit1.text的值加上单引号?
with query1 do
begin
CLOSE;
SQL.Clear;
SQL.Add(format('select * from aaa %s',[sqlstr]));
OPEN;
end;
 
是SQL SERVER数据库,好像不认双引号
 
with query1 do
begin
close;
sql.clear;
sql.add('SELECT * FROM aaa WHERE a=:a');
parambyname('a').value:=edit1.text;
open;
end;
 
var
sqlstr:string;
begin
sqlstr:='where a='''+edit1.text+'''';//如何给edit1.text的值加上单引号?
^^^^ ^^^^^^
with query1 do
begin
CLOSE;
SQL.Clear;
SQL.Add(format('select * from aaa %s',[sqlstr]));
OPEN;
end;
 
sqlstr是可变的,也就是说WHERE后的条件可变
 
我认为hbezwwl和TYZhang的答案都是正确的。
而且我在SQL Server数据库和Paradox数据库下试过,用双引号也是可以的:
sqlstr:='where a="'+edit1.text+'"';
 
yes

sqlstr:='where a="'+edit1.text+'"';
 
直接使用:
Format('select * from aaa where a=''%s''',[Edit1.Text]);
 
在引号里面的单引号用两个单引号表示
sqlstr:='where a= '''+edit1.text +'''';
 
后退
顶部