从一个表中读两个子段,a1,a2,读到TStringList,以提高数据查询的速度,谁有例子?

解决方案 »

  1.   

    var
     SLa1,SLa2:TStrings;
    begin
     SLa1:=TStringList.Create;
     SLa2:=TStringList.Create;
     with query1 do
     begin
      close;
      sql.clear;
      sql.add('select a1,a2 from MyTable');
      open;
     end;  //with
     query1.first;
     while not(query1.eof) do
     begin
      SLa1.append(query1.FieldByName('a1').AsString);
      SLa2.append(query1.FieldByName('a2').AsString);
      query1.next;
     end; //while
     query1.close;
     ...  //对Sla1, Sla2的操作
     ...
     Sla1.free;
     Sla2.free;  //最后用完了不要忘了释放
    end;
      

  2.   

    修改一下:
    var
     SLa1,SLa2:TStringList;//就是这里的问题
    begin
     SLa1:=TStringList.Create;
     SLa2:=TStringList.Create;
     with query1 do
     begin
      close;
      sql.clear;
      sql.add('select a1,a2 from MyTable');
      open;
     end;  //with
     query1.first;
     while not(query1.eof) do
     begin
      SLa1.append(query1.FieldByName('a1').AsString);
      SLa2.append(query1.FieldByName('a2').AsString);
      query1.next;
     end; //while
     query1.close;
     ...  //对Sla1, Sla2的操作
     ...
     Sla1.free;
     Sla2.free;  //最后用完了不要忘了释放
    end;
      

  3.   

    tstringlist插入行a1=a2,
    然后用Names[i]和Values[i]访问a1 a2
      

  4.   

    我想让a1对应的值为a2,怎么样读入一个stringlist?
      

  5.   

    s := TStringList.Create;...
    s.Add( yourTable.FieldByName('a1').AsString + '=' + yourTable.FieldByName('a2').AsString );
    ...使用s.Names[i] s.Values[i]例:访问对应a1值'aaa'的a2值 s.Values[s.IndexOfName('aaa')]
    注意判断返回值,假设a1是唯一索引