业务描述:
    要生成报表,由于涉及的表较多,并且业务较复杂,所以每操作一步就把操作后的结果存储为临时表,后一步调用前面的临时表。    如:
    存储过程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
    
    循环执行到第四五步时,提示“超时已过期”,请问是什么原因引起的错误?如何解决?   希望大家共同来讨论! 
 

解决方案 »

  1.   

    设置不检测超时错误,试试看
    cnn1.ConnectionTimeout = 0
    或者就设置时间长点
    cnn1.ConnectionTimeout = 600
      

  2.   

    for i=0 to 10
             conn.begintrans
             cmd.CommandText = strProcName(i)
             cmd.Execute
             conn.committrans
        next
      

  3.   

    把ConnectionTimeout = 0设置之后还出错的话就加点内存吧。