以下这段代码为何编译通过,运行不过?
出现 ParamByName 'p3' can not find
请高手指教! with adoquery1 do
begin
close;
sql.clear;
sql.add('update mydatabase set');
sql.add('Trans_id=:p1,Trans_date=:p2');
sql.add('where');
sql.Add('trans_id is null and trans_date is null and');
sql.Add('Prod_date');
sql.add('like ''%''+p3+''%''');
Parameters.ParamByName('p1').value := tempDate;
Parameters.ParamByName('p2').Value :=datetostr(date);
Parameters.ParamByName('p3').Value :=tempdate;
execSQL;
end;
出现 ParamByName 'p3' can not find
请高手指教! with adoquery1 do
begin
close;
sql.clear;
sql.add('update mydatabase set');
sql.add('Trans_id=:p1,Trans_date=:p2');
sql.add('where');
sql.Add('trans_id is null and trans_date is null and');
sql.Add('Prod_date');
sql.add('like ''%''+p3+''%''');
Parameters.ParamByName('p1').value := tempDate;
Parameters.ParamByName('p2').Value :=datetostr(date);
Parameters.ParamByName('p3').Value :=tempdate;
execSQL;
end;
ParamByName 'p3'not found
不好意思:)
那用参数是不可能实现的
因为Delphi会认为它整个是个字符串,不会把它看成变量的
你只有直接写在语句里
那个p3的值是怎么取的?
sql.add('like ''%'+DateToStr(TempDate)+'%''');
然后把
Parameters.ParamByName('p3').Value :=tempdate;
去掉。
感谢heixiu1980(heixiu1980),我又学到一招。散分。