有一个办法,你老早或在适当时候把
'SELECT .DEBH,A.CLBH,B.CLMC,B.CLDW,A.CLHL,B.CLDJ,A.CLHL*B.CLDJ FROM "dehl.db" A,"declk.DB" BWHERE A.CLBH=B.CLBH‘用一个query打开,这样就可减少了查询的时间,直接进行插入操作。

解决方案 »

  1.   

    你是在插入一个4万多条的记录集到Temp.db的表中吗?
    你用的是MS Sql Server 吗
    如果是,可以中这样的语句
    qryTemp.SQL.Add('Insert Into "Temp.db"');
    qryTemp.SQL.Add('SELECT .DEBH,A.CLBH,B.CLMC,B.CLDW,A.CLHL,B.CLDJ,A.CLHL*B.CLDJ');
    qryTemp.SQL.Add('FROM "dehl.db" A inner join "declk.DB" B');
    qryTemp.SQL.Add('on A.CLBH=B.CLBH');
    这种语句是为让公司做过内部处理的,可提高速度,
    另外不把相应的要插入的字段写出来,
    会提高速度。
      

  2.   

    你这是一个join操作,当然费时了,应针对相应的数据库作优化,
    如是否已对A.CLBH和B.CLBH作了索引等,如是c/s结构数据库,
    可把BDE中的SQLQRYMODE设为SERVER,ADO中使用Server方式查询等
      

  3.   

    屁话,dehl.db这种表能是sql server吗?能有存储过程吗?我认为由于你的select并没有什么特殊的地方,应该尽早打开,至于insert,你干嘛要放到temp.db呢?
      

  4.   

    clacklin(海风) 说得对!!
    paradox表
    直接用tQuery,没有必要再用一个TTable
    不就是对结果(DataSet)操作吗?何必要用临时表
    直接对DataSet操作即可!
      

  5.   

    Zhan9Min9()说的有道理,你可以加分了。