var i,j:integer;
begin
  for i:= 0 to workercount - 1 do
    with datamodule1.ADOQuery3 do
      begin
        close;
        parameters.Clear;
        Parameters.CreateParameter('param',ftstring,pdinput,8,A_WorkerNumList.strings[i]);
        sql.Clear;
        sql.Add('select 客户名称 from 客户简写表 where 业务员编号 =:param');
        open;
        for j:=0 to datamodule1.ADOQuery3.RecordCount - 1 do
            begin
              A_ClientList[i].Add(datamodule1.ADOQuery3.fieldbyname('客户名称').AsString);
              datamodule1.ADOQuery3.Next;
            end;
      end;
end;
a_workerNunlist 没有错,A_CLientList[0]负了值,可以后的全都没有负值,郁闷阿

解决方案 »

  1.   

    你的代码写的确实有很多问题的!
    var i,j:integer;
    begin
      for i:= 0 to workercount - 1 do
        with datamodule1.ADOQuery3 do
          begin
            close;
            parameters.Clear; //可以去掉
            Parameters.CreateParameter('param',ftstring,pdinput,8,A_WorkerNumList.strings[i]);//可以去掉
            sql.Clear;
            sql.Add('select 客户名称 from 客户简写表 where 业务员编号 =:param');//应该添加的
            Parameters.ParameterByName('param').asString:=.....text;        open;
            for j:=0 to datamodule1.ADOQuery3.RecordCount - 1 do
                begin
                  A_ClientList[i].Add(datamodule1.ADOQuery3.fieldbyname('客户名称').AsString);
                  datamodule1.ADOQuery3.Next;
                end;
          end;
    end;
    ------------------------------------------------------------------
    你的整体思路还是有些乱
    建议找一些有动态参数的文章看看!
      

  2.   

    不是ADO的问题
    是你的代码有问题的!
      

  3.   

    for j:=0 to datamodule1.ADOQuery3.RecordCount - 1 do
                begin
                  A_ClientList[i].Add(datamodule1.ADOQuery3.fieldbyname('客户名称').AsString);
                  datamodule1.ADOQuery3.Next;/////////////////////多余
                end;
          end;