我的数据库是SQL Server2000,在KC库里有KC0和PYDM两张表,KC0中有KCBM,KCMC,KCLB等字段,PYDM表中有BM,MC,PYDM(汉字拼音字母),LB四个字段,现在我要把这两张表里编码相同、按给定的拼音字母查询出编号和名称,其中KCBM和BM都是编号,KCBM是BM中的一部分,KCMC和MC是名称,KCMC是MC的一部分,我在窗体上放了一个edit1,listbox1,我想通过edit1的OnChange事件来激活查询,将查询结果的编号和名称全部放在ListBox1中,我用的是下面一段代码:
procedure TfrmInStore.Edit1Change(Sender: TObject);
var
  i:integer;
  hzChar :string;
  PYStr:string;
  hzStr:array[0..200] of char;
  s1,s2,:string;
begin
  S2:='';
  s1:=Trim(edit1.text);
  strpcopy(HzStr,pchar(s1));
  for i:=0 to Length(s1)-1 do
    begin
      hzChar:=hzStr[2*i]+hzStr[2*i+1];
      s2:=s2+hzChar;
    end;
          Query1.Close;
          Query1.SQL.Clear;
          Query1.SQL.Add('Select KC0.KCBM,KC0.KCMC,PYDM.PYDM from KC0,PYDM');
          Query1.SQL.Add('where PYDM.PYDM like :X and KC0.KCBM=PYDM.BM');
          Query1.Params[0].Value:='s2%';
          Query1.Prepare;
          Query1.ExecSQL;
          ListBox1.Items.Clear;
          while not Query1.Eof do
            begin
              ListBox1.Items.Add(Query1.fieldbyname('KC0.KCBM').asstring
                        +'  '+Query1.fieldbyname('KC0.KCMC').asstring);
              query1.Next;
            end;
            Query1.UnPrepare;
            Query1.Close;
end;
      
end.
编译通过,运行不报错,结果出不来,请哪位高手帮忙看看错在哪 里了,急等,毕设中碰到的问题,想了两天没想出来什么问题,在查询分析器里用那条查询语句都查出结果了的,急呀!