procedure TForm1.Button1Click(Sender: TObject);
var
x:string;
begin
x:=edit1.Text;
query1.Close;
query1.SQL.Clear;
query1.sql.Add('select * from people where 姓名=x');
query1.open;
dbgrid1.datasource:=datasource1;
dbgrid1.refresh;
end;
end.
其中 people 为数据表名 姓名为字段名称
系统提示错误信息 x为无效字段
var
x:string;
begin
x:=edit1.Text;
query1.Close;
query1.SQL.Clear;
query1.sql.Add('select * from people where 姓名=x');
query1.open;
dbgrid1.datasource:=datasource1;
dbgrid1.refresh;
end;
end.
其中 people 为数据表名 姓名为字段名称
系统提示错误信息 x为无效字段
var
x:string;
begin
x:=edit1.Text;
query1.Close;
query1.SQL.Clear;
query1.sql.Add('select * from people where 姓名='+x);
query1.open;
dbgrid1.datasource:=datasource1;
dbgrid1.refresh;
end;
end.
其中 people
1、query1.sql.Add('select * from people where 姓名='''+x+'''');
2、query1.sql.Add('select * from people where 姓名='+quotedstr(X));
3、query1.sql.Add('select * from people where 姓名 = :1');
parameters.parambyname('1').value := X;
query1.sql.Add(''''+x+'''');
这样其实 sql 语句是select * from people where 姓名='参数的值'
query1.sql.Add('select * from people where 姓名='''+x+'''');
这样其实 sql 语句是select * from people where 姓名='参数的值'
query1.sql.add('select*form people where 姓名='''+edit1.text+''');
这是一个动态SQL语句问题,当SQL语句中还要用到变量的话,可以这样处理:
procedure TForm1.Button1Click(Sender: TObject);
var
x:string;
begin
x:=edit1.Text;
query1.Close;
query1.SQL.Clear;
query1.sql.Add('select * from people where 姓名=:N'); //这里‘N’可以随便取,但前面必须加上冒号;
Parameters.ParamByName('N').Value:=x;
query1.open;
dbgrid1.datasource:=datasource1;
dbgrid1.refresh;
end;
end.你试试看!