Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Set conn = New ADODB.Connection
conn.ConnectionTimeout = 8 '设置连接超时,8s内无法连接视为服务器不可用
conn.Open "Provider=SQLOLEDB.1;Persist Security Info=True;UID=sa;PWD=sa;Initial Catalog=CCS;Data Source=109.120.37.160"
conn.Execute ("select * into #tmptbl from tblA where MODEL='A'")'创建了临时表
'以上一切正常
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
'现在不能使用临时表#tmptbl,感觉已经被释放了,按理说#tmptbl 虽然是局部临时表,但是conn没有断开连接应该一直能用啊

解决方案 »

  1.   

    conn.BeginTransconn.Execute ("select * into #tmptbl from tblA where MODEL='A'")'创建了临时表 
    conn.CommitTrans
      

  2.   

    conn.BeginTrans
    conn.Execute ("select * into #tmptbl from tblA where MODEL='A'")'创建了临时表 
    conn.CommitTrans
      

  3.   

    该方法果然一针见血,测试OK.
    还有,conn.BeginTrans \conn.CommitTrans这两句话什么含义?能解释一下吗?
      

  4.   

    conn.begintrans    '开始事务
    conn.committrans   '提交事务
    conn.rollbacktrans '回滚事务
      

  5.   

    如果不写conn.begintrans和conn.committrans会有什么影响吗?除了我上面的临时表会释放以外
      

  6.   


    不写 的话 数据可能 不完整   
    我做报表的时候 把数据写到本地的ACCESS里 不写就经常少几行数据 写在数据保存的代码里 避免保存过程中死机   造成麻烦