我的delphi中用如下代码对数据表PYDM中接PYDM字段进行模糊查询,不出结果,请问什么原因?代码如下:
procedure TForm1.Edit1Change(Sender: TObject);
var
s1:string;
i:integer;
begin
s1:=Trim(edit1.text);
for i:=0 to length(s1)-1 do
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select BM,MC,PYDM,LB from PYDM,KC0');
Query1.SQL.Add('where PYDM LIKE :x AND PYDM.BM=KC0.KCBM ');
Query1.Params[0].Value:='s1'+'%';
Query1.Open;
Listbox1.Items.Clear;
while not Query1.Eof do
begin
ListBox1.Items.Add(Query1.fieldbyname('BM').asstring+' '+Query1.fieldbyname('MC').asstring);
query1.Next;
end;
Query1.Close;
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var
s1:string;
i:integer;
begin
s1:=Trim(edit1.text);
for i:=0 to length(s1)-1 do
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select BM,MC,PYDM,LB from PYDM,KC0');
Query1.SQL.Add('where PYDM LIKE :x AND PYDM.BM=KC0.KCBM ');
Query1.Params[0].Value:='s1'+'%';
Query1.Open;
Listbox1.Items.Clear;
while not Query1.Eof do
begin
ListBox1.Items.Add(Query1.fieldbyname('BM').asstring+' '+Query1.fieldbyname('MC').asstring);
query1.Next;
end;
Query1.Close;
end;
end;
var
s1:string;
i:integer;
begin
s1:=Trim(edit1.text);
// for i:=0 to length(s1)-1 do
// begin
if sl = '' then exit;
Query1.Close;
Query1.SQL.Clear;
// Query1.SQL.Add('Select BM,MC,PYDM,LB from PYDM,KC0');
// Query1.SQL.Add('where PYDM LIKE :x AND PYDM.BM=KC0.KCBM ');
// Query1.Params[0].Value:='s1'+'%';
Query1.SQL.Text := 'Select BM,MC,PYDM,LB from PYDM,KC0 '
+ 'Where PYDM.PYDM Like ''' + sl + '%'' AND PYDM.BM=KCO.KCBM';
Query1.Open;
Listbox1.Items.Clear;
while not Query1.Eof do
begin
ListBox1.Items.Add(Query1.fieldbyname('BM').asstring+' '+Query1.fieldbyname('MC').asstring);
query1.Next;
end;
Query1.Close;
// end;
end;
var
s1:string;
i:integer;
begin
s1:=Trim(edit1.text);
for i:=0 to length(s1)-1 do
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(format('Select BM,MC,PYDM,LB from PYDM,KC0
where PYDM LIKE ''%s%%'' AND PYDM.BM=KC0.KCBM',[sl]));
Query1.Open;
Listbox1.Items.Clear;
while not Query1.Eof do
begin
ListBox1.Items.Add(Query1.fieldbyname('BM').asstring+' '+Query1.fieldbyname('MC').asstring);
query1.Next;
end;
Query1.Close;
end;
end;
应该为:Query1.Params[0].Value:=s1+'%';