//i,k = 0 and aryChip and aryDriver: string;
      //目的是在aryDriver里面选出Chip=aryChip[i]的Driver记录;      ADOqyWHQLDB.Close;
      ADOqyWHQLDB.SQL.Clear;
      ADOqyWHQLDB.SQL.Add('select distinct Driver from WHQL_DB');
      ADOqyWHQLDB.SQL.Add('where Chip = "'+aryChip[i]+'"');
      ADOqyWHQLDB.SQL.Add('  and (Driver = "'+aryDriver[k]+'"' );      while aryDriver[k+1] <> '' then
      begin
        ADOqyWHQLDB.SQL.Add('     or "'+aryDriver[k+1]+'")')
        k := k+1;
      end;      try
        ADOqyWHQLDB.Open;
      except;
        ADOqyWHQLDB.ExecSQL;
      end;

解决方案 »

  1.   

    //“)”这个是全角字符,不是“)”~~      ADOqyWHQLDB.Close;
          ADOqyWHQLDB.SQL.Clear;
          ADOqyWHQLDB.SQL.Add('select distinct Driver from WHQL_DB');
          ADOqyWHQLDB.SQL.Add('where Chip = "'+aryChip[i]+'"');
          ADOqyWHQLDB.SQL.Add('  and (Driver = "'+aryDriver[k]+'"' );      while aryDriver[k+1] <> '' then
          begin
            ADOqyWHQLDB.SQL.Add('     or Driver = "'+aryDriver[k+1]+'"');
            k := k+1;
          end;
          ADOqyWHQLDB.SQL.Add(')');      try
            ShowMessage(ADOqyWHQLDB.SQL.Text);//调试用
            ADOqyWHQLDB.Open;
          except;
            ShowMessage('不关我的事');
          end;//或者----------------------------------------------      ADOqyWHQLDB.Close;
          ADOqyWHQLDB.SQL.Clear;
          ADOqyWHQLDB.SQL.Add('select distinct Driver from WHQL_DB');
          ADOqyWHQLDB.SQL.Add('where Chip = "'+aryChip[i]+'"');
          ADOqyWHQLDB.SQL.Add('  and (Driver in ("'+aryDriver[k]+'"' );      while aryDriver[k+1] <> '' then
          begin
            ADOqyWHQLDB.SQL.Add(' ,"'+aryDriver[k+1]+'"');
            k := k+1;
          end;
          ADOqyWHQLDB.SQL.Add(')');      try
            ShowMessage(ADOqyWHQLDB.SQL.Text);//调试用
            ADOqyWHQLDB.Open;
          except;
            ShowMessage('不关我的事');
          end;
      

  2.   

    ADOqyWHQLDB.Close;
          ADOqyWHQLDB.SQL.Clear;
          ADOqyWHQLDB.SQL.Add('select distinct Driver from WHQL_DB');
          ADOqyWHQLDB.SQL.Add(' where Chip = '''+aryChip[i]+'''');
          ADOqyWHQLDB.SQL.Add('  and (Driver = '''+aryDriver[k]+''' );      while aryDriver[k+1] <> '' then
          begin
            ADOqyWHQLDB.SQL.Add('     or '''+aryDriver[k+1]+''')')
            k := k+1;
          end;      try
            ADOqyWHQLDB.Open;
          except;
            showmeassage('出错');
          end;
      

  3.   

    》》》
    ADOqyWHQLDB.SQL.Add('  and (Driver = '''+aryDriver[k]+''' );
    这里还有个(,是不是多了呢?
    是while ....do 不是then.