procedure TB_frmSearchDlg.edtCondChange(Sender:Tobject); var SText:String;begin sText:=(Sender as TEdit).Text; if sText='' then Exit;if iSearchType=2 then if(iSearchPos=3)or (iSearchPos=4)then sText:='%'+sText+'%' else sText:=sText+'%'; with qryClient do begin Close ; parameters[0].Value:=sText; open; end; end; ls的我发现你经常回答我问题 你真是个好银啊~~
procedure TB_frmSearchDlg.BuildSQL; var sSql:string; beginsSql:=sMainSQL; case iSearchPos of 1:if iSearchType=1 then sSql:=ssql+'cli_code=:clinet' else sSql:=sSql+'cli_code like :client'; 2:if iSearchType=1 then sSql:=ssql+'cli_briefname=:client' else ssql:=ssql+'cli_briefname like :client'; 3:if iSearchType=1 then sSql:=ssql+'cli_cname=:client' else sSQl:=sSQL+'cli_cname like :client'; 4: if iSearchType=1 then sSql:=SSQL+'cli_cname=:=client' else sSql:=ssql+'cli_ename like :client'; end; with qryClient do begin close; sql.Clear; sql.Add(ssql); Prepared; end;end;上面的是参数的定义现在是parameters[0].asstring:=sText不能用啊~~~~parameters[0].Value:=sText又会报错说数据类型不可用~~~~~~如何是好啊~~~~~
把其它代码贴出来看看
procedure TB_frmSearchDlg.edtCondChange(Sender:Tobject);
var
SText:String;begin
sText:=(Sender as TEdit).Text;
if sText='' then Exit;if iSearchType=2 then
if(iSearchPos=3)or (iSearchPos=4)then sText:='%'+sText+'%'
else sText:=sText+'%'; with qryClient do begin
Close ;
parameters[0].Value:=sText;
open; end;
end;
ls的我发现你经常回答我问题 你真是个好银啊~~
var
sSql:string;
beginsSql:=sMainSQL;
case iSearchPos of
1:if iSearchType=1 then sSql:=ssql+'cli_code=:clinet'
else sSql:=sSql+'cli_code like :client';
2:if iSearchType=1 then sSql:=ssql+'cli_briefname=:client'
else ssql:=ssql+'cli_briefname like :client';
3:if iSearchType=1 then sSql:=ssql+'cli_cname=:client'
else sSQl:=sSQL+'cli_cname like :client';
4: if iSearchType=1 then sSql:=SSQL+'cli_cname=:=client'
else sSql:=ssql+'cli_ename like :client'; end;
with qryClient do begin
close;
sql.Clear;
sql.Add(ssql);
Prepared;
end;end;上面的是参数的定义现在是parameters[0].asstring:=sText不能用啊~~~~parameters[0].Value:=sText又会报错说数据类型不可用~~~~~~如何是好啊~~~~~
改成这样赋值试试:
sql.Add(ssql);
Parameters.ParamByName('参数1').Value:=值1;
Parameters.ParamByName('参数2').Value:=值2;
2 赋值前查一下edit内容是否为空
3 另外bde和ado的asstring是不同的
紅色字體的地方,有這種寫法嗎?