存储过程和临时表的应用 急!先谢谢!(50分)

B

blhappy

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好:
我在sqlserver7.0的中写了一段存储过程,主要为了实现先生成四个临时表,没有任何代入
变量参数,而第五个临时表的内容是由前四个临时表通过各种连接组成的,而后我在
delphi5.0中调用它,只想用adoquery导出临时表5的数据,我是在一个button的click事
件中这样写的:
button3.enabled:=true;
adostoredproc1.Active:=false;
//adostoredproc1.parameters[6].value:=0;
adostoredproc1.execproc;
adoquery2.close;
adoquery2.SQL.clear;
select * from ##表5
…….
为什么会出现以下错误信息:
list index(0) bound;
请各位高手指教,谢谢!!!。
 
你也说的太不清楚了,代码太乱,说说你要干什么,未必就要四个临时表,既然是用
存储过程,你的这些要求一个成出过程也解决了,也不用又是adostoredproc1,
又是adoquery2的
 
那是因为adoquery2找不到##表5
在执行存储过程前(存储过程外面)用 create table ##表5...创建表结构
在存储过程中用 insert (into) table ##表5 select ....取得数据
那么 adoquery2 就可以顺利执行了


 
各位好:
我在存储过程中是这样建立临时表
create propcedure pro_xx
as
select * into ##表1 from aa //经过一些运算和左连接形成的这里忽略了
select * into ##表2 from bb// 经过一些运算和左连接形成的这里忽略了
select * into ##表3 from cc// 经过一些运算和左连接形成的这里忽略了
select * into ##表4 from dd// 经过一些运算和左连接形成的这里忽略了
select * into ##表5 from aa// 经过一些运算和左连接形成的这里忽略了

delphi5.0中调用它,只想用adoquery导出临时表5的数据,我是在一个button的click事
件中这样写的:
adostoredproc1.Active:=false;//adostoredproc1连接的此存储过程
adostoredproc1.parameters[1].value:=0;
adostoredproc1.execproc;
adoquery2.close;
adoquery2.SQL.clear;
adoquery2.add('select * from ##表5');

为什么会出现以下错误信息:
list index(0) bound;


 
adostoredproc1.parameters[1].value:=0;

这句去掉。
 
是不是ado 的版本低了!
 
肯定是找不到存储过程的问题?

关注?
 
在存储过程最后加一条select * from #表5,然后在客户端调用存储过程即可。
 
顶部