如何传递参数
var
str: string;
str:='select * from A where mc=@mc';
with adoquery1 do
begin
close;
sql.Clear;
sql.Add(str);
open;
end;
如何传递参数@mc给str,str实际是数据库中的一个字段,通过传递窗体名称来查询数据库
[解决办法]
我印象是应该把@mc改成:mc
然后用
adoquery1.Parameters.ParamValues['mc']:=<你想给参数的值>
最后open或者execsql即可
[解决办法]
我的印象中好像也是用:来表示参数,@的写法是.NET或Java写SQL参数的方法
[解决办法]
- Delphi(Pascal) code
var str,s1:string;begin1.s1:=Trim(edit1.text);str:='select * from A where mc='+quotedstr(s1);//或str:='select * from A where mc='+quotedstr(edit1.text);2.str:='select * from A where mc=:mc';adoquery1.parameters.paramByName('mc').Value:=s1;3.str:='declare @mc varchar(20) set @mc='+quotedstr(s1)+' select * from A where mc=@mc';
[解决办法]
引用楼上的内容
var
str,s1:string;
begin
1.
s1:=Trim(edit1.text);
str:='select * from A where mc='+quotedstr(s1);
//或
str:='select * from A where mc='+quotedstr(edit1.text);
//或
str:='select * from A where mc='''+edit1.text+'''';
2.
str:='select * from A where mc=:mc';
adoquery1.parameters.paramByName('mc').Value:=s1;
3.
str:='declare @mc varchar(20) set @mc='+quotedstr(s1)+' select * from A where mc=@mc';
楼上说的很全面 话说我怎么不会贴图呢
[解决办法]
传不了,只有替换,直接替换或者查询后取出值再替换
- Delphi(Pascal) code
sql.Add('select F_class,REPLACE(F_sql,''@lb'',''1'') as F_sql from A where f_class='''+frmAcceptAccount+'''');
[解决办法]
- Delphi(Pascal) code
//非要传它干啥,你都知道条件了,只能把它替换了不就成了吗Sql := 'select * from spbm where lb=@lb';Sql := StringReplace(Sql, '@lb', '1', []);// Sql = select * from spbm where lb=1
[解决办法]
设置一个全局变量,直接传递并引用值即可