我用下列的设定来连接数据库
Provider=SQLOLEDB.1;Password=pass;Persist Security Info=True;User ID=user;Initial Catalog=Test;Data Source=Test在连接数据库成功后,程序中的数据库操作都使用此连接,一直使用都很正常。
可近日我发现,如果我进入程序,在连接成功后如果长时间不执行数据库操作的话,比如过几十分钟后再执行数据库操作,会发生数据库连接的错误,哪位知道是什么原因?如果我想数据库连接一直可用的话,应该怎么做?

解决方案 »

  1.   

    Private Sub Form_Load()
        Dim strConn As String
        Dim pubConn As New ADODB.Connection
        Dim rsTable As New ADODB.Recordset
        Dim strSQL As String
        
        'Access 2000的連接
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\North.mdb;Persist Security Info=False"
        'SQL Server2000的連接
        strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=develop; password=12345;Data Source=ServerName"
        pubConn.Open strConn    rsTable.CursorLocation = adUseClient
        strSQL = "select  * from TableName"
        rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
        Set DataGrid1.DataSource = rsTableEnd Sub
      

  2.   

    有關連接數據庫:
    本地的
    ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=northwind;Data Source=yang"遠程的
    ConnectionString = "driver={SQL Server};server=218.62.*.* ;uid=sa;pwd=;ConnectionTimeout=0;database=northwind"
      

  3.   

    我用本地MSDE数据库,我看了两位的代码,
    和我用的区别在于
    Persist Security Info=False这就是我用的连接,几十分钟后就不可用的原因吗?为什么呢?
      

  4.   

    我查了Persist Security Info 的含义如下 当该值设置为 false 或 no(强烈推荐)时,如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)将不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。可识别的值为 true、false、yes 和 no。 这是什么意思呢?
      

  5.   

    Persist Security Info 的含义我找到了,形象的说就是连接之后是否可以通过这个连接取得user和pass,这和我的问题没有什么关系。我还是不知道我的问题怎么解决。