我这样连接数据库:÷
DIM CNN AS new adodc.connect
dim rs as new adodc.recordsetCNN.open""  '数据库连接dim i as integerfor i = 1 to 100
   if rs.state = 1 then
      rs.close
   end if
   rs.open"select * from table",CNN
next这样每次rs.open"select * from table",CNN 就会在数据库中连接一次。我听说连接池可以解决,请告诉我怎么建立连接池,怎么使用??

解决方案 »

  1.   

    把CNN定义为全局变量,在Form_Load的时候打开,在unload的时候在关闭。以后都使用这个连接来进行操作就OK了。在代码中还需要时刻关注这个连接的情况,如果连接被断开,那就要重新连接。
      

  2.   

    http://www.microsoft.com/china/msdn/library/techart/complus_data.asp
      

  3.   

    to eports(飘零风) :
     我是这样做呀,但不是连接池,每次SELECT时就会在数据库中产生一个CONNECT的记录。如果数据库的用户的最大个数设置为10,那么10个SELECT以后数据库就死掉了!!
      

  4.   

    我的做法是把CNN定义为全局变量,在程序开始的时候进行连接程序关闭的时候断开,各个模块都可以使用,如果自定义了类,可以把这个连接复制给类模块变量,这样就始终只有一个连接
      

  5.   

    做成全局共通的模块,在最初的时候调用一次,最后释放掉就可以了。
    另外不要用rs执行open的方式来运行sql语句。
    用executeSql 来执行
      

  6.   

    楼主为什么要100个循环呀有意思.
    没有必要呀
    另外也不是重新连接数据库了.
    CONNECTION对象才是连接数据库
      

  7.   

    这样写
    public cnn as adodb.connection
    Sub main()
    On Error GoTo E
    Set Cnn = New ADODB.Connection
    With Cnn
        .CommandTimeout = 15
        .ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=DataBaseName;Data Source=服务器名称"
        .CursorLocation = adUseClient
        .Open
    End With
    frm.Show
    Exit Sub
    E:
        MsgBox Err.Description
    End Sub
    ConnectionString 是连接的字符串
      

  8.   

    -----------------------------------------------------------------------------
    to eports(飘零风) :
     我是这样做呀,但不是连接池,每次SELECT时就会在数据库中产生一个CONNECT的记录。如果数据库的用户的最大个数设置为10,那么10个SELECT以后数据库就死掉了!!
    -----------------------------------------------------------------------------
    重新看了一下你的问题,不知道这次理解对了没有:你要用同一个连接(CNN),然后要同时打开(不关闭)10个以上的Recordset。是这个意思吗?要是这样的话,嗯,俺就搬根凳子等高手了。
      

  9.   

    你可以试试 这样 
    set cnn=noting 
    set rs=noting
    就是每次都先设定cnn和rs 等于什么都没有 然后在连接数据库 -> 关闭数据库 这样程序每次开始都设定连接为空 再执行连接 应该就不会有问题了 至于数据池  我也是初学者不会那个东东 嘿嘿 
    希望可以帮到你