在循环检测一个表中SELECT出来的数据时,需要把创建一个临时表,把符合条件的数据放到临时表去,应该如何建临时表呢,是在数据库建好调用还是直接在循环过程中创建,在循环A表SELECT出来的数据时,可以往别的表添加符合条件的数据吗?还有,对于TSTRINGLIST,在哪可以找到比较详细的用法 谢谢! 

解决方案 »

  1.   

    1、如果只是简单操作,你可以建立一个TADOQuery查询出来以后调用即可,没有必要建立临时表
    2、如果要建立临时表,除非在单机环境下或者大型数据库下,否则多用户的时候就死掉了
      

  2.   

    可以动态创建变长类数组。
    即将表结构作为一个类或者说创建一类能包含表的数据信息。
      type
      TableInfo=Class
         Field11,Field2:String;
      end;
    再定义一个变长数组 Stru:Array of TableInfo
    然后根据你查询结果的记录数作为数组长度,SetLength(Stru,<RecordCount>);
    接着,填充数据。
    这样可以免去创建临时表。这种方法执行速度比较快。
    不过数据量过太,不宜采用。
      

  3.   

    其实adodataset本身就是在内存里的一个临时表,对其循环检测操作,
    first
    next
    ...
      

  4.   

    我现在困惑的就是创建在程序的什么位置,以前从来没有接触过临时表,还有 查询A表用了WHILE NOT ADOQUERY1.EOF ,循环出来的字段里的数据也要循环(检测数据里每个数字是不是重复的循环语句),可不可以在循环里建,临时表必须即建即用吗?