Dephi中的Query中如何使用临时表(300分)

  • 主题发起人 主题发起人 wugr
  • 开始时间 开始时间
W

wugr

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中如何使用临时表?我的后台数据库是Informix7.23,我想使用Informix 中temp
临时表的功能,但是Delphi好象不能象ec一样将用户写的sql当成一个用户线程使用,这样
我用Query写的sql在execsql以后,上一个sql插入的临时表在下一个sql就不识别了。使用
Delphi的TDatabase中的事务也解决不了,请求大家帮忙。

假设有如下的sql,我想利用临时表关联:

select deptcode,countercode,count(*) goodsamount
from gds_goodscode
group by 1,2
into temp tmp_goodstocounter;

select deptcode,countercode, sum(salemoney) salemoney
from gds_osale
group by 1,2
into temp tmp_goodssale;

select a.deptcode,a.countercode,a.goodsamount,b.salemoney
from tmp_goodstocounter a,tmp_goodssale b
where a.deptcode = b.deptcode and a.countercode = b.countercode
into temp tmp_iwanttoget;


 
query1.SQL.text := 'select deptcode,countercode,count(*) goodsamount from gds_goodscode group by 1,2';
query1.SQL.SaveToFile('tmp_goodstocounter.sql');
query1.SQL.text := 'select deptcode,countercode, sum(salemoney) salemoney from gds_osale group by 1,2';
query1.SQL.SaveToFile('tmp_goodssale.sql');
query1.SQL.Text := 'select a.deptcode,a.countercode,a.goodsamount,b.salemoney '+
'from "tmp_goodstocounter.sql" a,"tmp_goodssale.sql" b '+
'where a.deptcode = b.deptcode and a.countercode = b.countercode '+
'into temp tmp_iwanttoget';
query1.ExecSQL;
 
上面这位仁兄的说法我以前用过,没什么问题
不过有可能时间比较长
我上次用的时候还创建了一个临时表
差不多一个存储过程的内容
就是时间长
其他没什么
 
agree with Another_eYes
 
使用视图如何?
create view tmp_goodstocounter as
select deptcode,countercode,count(*) goodsamountfrom gds_goodscodegroup by 1,2

create view tmp_goodssale as
select deptcode,countercode, sum(salemoney) salemoneyfrom gds_osalegroup by 1,2

create view tmp_iwanttoget as
select a.deptcode,a.countercode,a.goodsamount,b.salemoney
from tmp_goodstocounter a,tmp_goodssale b
where a.deptcode = b.deptcode and a.countercode = b.countercode

我喜欢用视图,呵呵。
 
谢谢,不过我想知道原理,请Another_eYes大虾解释一下,是不是Delphi使用了本身的空间
而没有使用Informix 本身提供的tempdbspace.还有没有别的方法,谢谢大家的参与!
如果这么写的话,请问TDataBase的startTransaction起不起作用?谢谢。
 
我用的是SQL6.5,我写过用临时表的程序,但我不懂Informix,
您的情况我也觉得用视图好.
您如果要我的程序,EMAIL
wumengs@sina.com.cn
 
后退
顶部