要看是什么数据库拉。如果是MS SQL,看看帮助文件,在Trans SQL中,Create Table时在表名前加一个#和两个#有什么意义。

解决方案 »

  1.   

    可以有多种方法:
      将表建在本地,用完后删除
      将表建在服务器的临时表空间中,用完后删除
      将SQL查询结果放在TCliendDataSet中,可以对其进行各种操作.
      ......
      

  2.   

    用SQL SERVER的话很好办,就可以直接在存储过程或QUERY中创建临时表,
    且可动态加入数据
      

  3.   

    下面的#cltmp就是一个临时表:
    CREATE PROCEDURE ysyytj
    @frm smalldatetime,@to smalldatetime,@type tinyint=1,@cflb varchar(10)='%',@cflx varchar(10)='%',
    @ys varchar(10)='%',@ypid varchar(10)='%',@tjfw int
     AS
    declare @ysbm varchar(10),@frmstr varchar(10),@tostr varchar(10)
    set @frmstr=convert(varchar,@frm)
    set @tostr=convert(varchar,@to)
    if @type=1
    begin
     create table #cltmp(ypsl float,fcypmc varchar(30),fcyw varchar(20),fcypgg varchar(20))
     declare a cursor for select fcbm from bmys where fcbm<>'0'
     open a
     fetch next from a into @ysbm
     while( @@FETCH_STATUS<>-1)
     begin
    exec('
     insert into #cltmp
     select * from bycf
    where fcysdm like @ysbm
     fetch next from a into @ysbm
    end
    --drop table [#cltmp]
    close a
    deallocate a
    select * From #cltmp
    end
    drop table [#cltmp]
    GO
      

  4.   

    我觉得建临时表最好是用kbmmemtab,非常好用,我经常用,利用它的loadfromdataset非常好用的内存表,支持所有类型的字段,无限制的索引,同时可以方便的将数据导出到文件或从文件导入。将表建立在内存中的好处多多,速度快,结构灵活,数据量不大时我用得最多的就是这个构件