在数据库操作时出现"超时已过期"?如何解决

xuehf 2003-12-08 02:50:09
业务描述:
要生成报表,由于涉及的表较多,并且业务较复杂,所以每操作一步就把操作后的结果存储为临时表,后一步调用前面的临时表。

如:
存储过程1(名字为sp1)
create proc sp1
as
select * into t1 from (.......查询语句)
存储过程2(名字为sp2)
create proc sp2
as
select * into t2 from ( select * from t1 .......查询语句)

...

总共将近有十几个存储过程
在VB中调用
dim cmd as adodb.command,conn as adodb.connection

set conn=new connection
conn.connectString='数据库连接串'
conn.open


set cmd=new command
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc

str(1)="sp1"
str(2)="sp2"

......
str(10)="sp10"
for i=0 to 10
cmd.CommandText = strProcName(i)
cmd.Execute
next

循环执行到第四五步时,提示“超时已过期”,请问是什么原因引起的错误?如何解决?

希望大家共同来讨论!






...全文
65 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
taosihai1only 2003-12-08
cnn1.ConnectionTimeout = 0
回复
zhouqi66 2003-12-08
把ConnectionTimeout = 0设置之后还出错的话就加点内存吧。
回复
yoki 2003-12-08
for i=0 to 10
conn.begintrans
cmd.CommandText = strProcName(i)
cmd.Execute
conn.committrans
next
回复
xuehf 2003-12-08
如果程序与数据库服务器放在同一台机器上就不会出现上述问题
回复
yangfanatcsdn 2003-12-08
你试一试将几十个互不相关的存储过程循环执行,看会不会也发生问题。
回复
yangfanatcsdn 2003-12-08
可能由于前后存储过程相互依赖,所以要等到前一个确实执行完毕后,才能执行下一个。但循环的速度太快,服务器来不及。
回复
xuehf 2003-12-08
如何解决?
回复
didishu0807 2003-12-08
数据库链接有问题
回复
xuehf 2003-12-08
每一步执行的时间只有几秒钟,提示“超时已过期”有点莫名其妙
回复
xuehf 2003-12-08
我试过了没用的,第一步执行的时间很短,只有几秒钟
回复
SoHo_Andy 2003-12-08
设置不检测超时错误,试试看
cnn1.ConnectionTimeout = 0
或者就设置时间长点
cnn1.ConnectionTimeout = 600

回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告