本人是菜鸟,要写C/S结构的库房管理系统,对于ADO连接数据库的方式还是不太明白,请高人赐教。我现在看的书,使用的是ODBC,将数据库连接函数放在了DbFunc模块里。都说ADO比较简单,但不知道能不能像ODBC这么写?

解决方案 »

  1.   

    在VB的代码模块里先申明必要的变量:
    Public cnn1 As ADODB.Connection 
    Public rs1 As ADODB.Recordset '----------数据库连接过程(模块里)
    Sub cnn() 
    dim strCnn as string
    dim strSevername as string '--------数据库用户名
    dim strSeverpassword as string '--------数据库密码
    dim intIP as string '--------数据库服务器IP
    strCnn = "Provider=SQLOLEDB.1;Password=" & strSeverpassword & _
             ";Persist Security Info=True;User ID=" & strSevername & _
             ";Initial Catalog=tzg;Data Source=" & intIP
    Set cnn1 = New ADODB.Connection
    cnn1.Open strCnn 
    End Sub'-----------打开表过程(模块里)
    '-------sql:sql语句
    Sub rsOpen1(sql As String)  
    Set rs1 = New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    On Error GoTo Err
    rs1.Open sql, cnn1, adOpenKeyset, adLockOptimistic
    Exit Sub
    Err:
       MsgBox "打开表失败", vbOKOnly, "提示"
    End Sub'===========在程序运行的开始先调用cnn()连接上数据库
    cnn()'===========在需要打开表的的地方调用rsOpen1(sql)
    例如:
    cnn() '------------程序开始运行时
    rsopen1("select * from 表名 where 条件") '需要调用的地方
    '--处理过程
    rs1.close'==========程序结束
    cnn1.close '---------关闭数据库连接
      

  2.   


    在VB的代码模块里先申明必要的变量:
    Public cnn1 As ADODB.Connection
    Public rs1 As ADODB.Recordset'----------数据库连接过程(模块里)
    Sub cnn()
    dim strCnn as string
    dim strSevername as string '--------数据库用户名
    dim strSeverpassword as string '--------数据库密码
    dim intIP as string '--------数据库服务器IP
    strCnn = "Provider=SQLOLEDB.1;Password=" & strSeverpassword & _
    ";Persist Security Info=True;User ID=" & strSevername & _
    ";Initial Catalog=tzg;Data Source=" & intIP
    Set cnn1 = New ADODB.Connection
    cnn1.Open strCnn
    End Sub'-----------打开表过程(模块里)
    '-------sql:sql语句
    Sub rsOpen1(sql As String)
    Set rs1 = New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    On Error GoTo Err
    rs1.Open sql, cnn1, adOpenKeyset, adLockOptimistic
    Exit Sub
    Err:
    MsgBox "打开表失败", vbOKOnly, "提示"
    End Sub'===========在程序运行的开始先调用cnn()连接上数据库
    cnn()'===========在需要打开表的的地方调用rsOpen1(sql)
    例如:
    **************不好意思,该处不要《cnn() '------------程序开始运行时》 不小心写错了 
    rsopen1("select * from 表名 where 条件") '需要调用的地方
    '--处理过程
    rs1.close'==========程序结束
    cnn1.close '---------关闭数据库连接
      

  3.   

    可否将ADO连接SQL数据库的语句写成函数,放在模块里,然后每次进行数据库操作时调用?
    ----
    本来就应当这样...
    再规范一点的话,就是把所有数据库操作封装在一个类里面,类以外的任何地方都不能和数据库发生任何关系,必须通过这个类来操作数据库。