首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb6.0与SQL数据的连接中关于代码共用的有关问题

2012-03-23 
求教:vb6.0与SQL数据的连接中关于代码共用的问题!开发数据库应用系统时,每个窗体都可能编写连接数据库的代

求教:vb6.0与SQL数据的连接中关于代码共用的问题!
开发数据库应用系统时,每个窗体都可能编写连接数据库的代码,这样很不利于维护,一般都是在一个模块中建立数据库连接共享函数及共享连接字符串,
请问这样的数据库连接共享函数及共享连接字符串应该是怎么写?在窗体上又应该是怎么调用呢?请高手指教,

再者打包程序时怎么产生config文件呢,看见别人开发的软件,在安装好数据库和软件后要修改一下config文件,这个事怎么回事,请介绍一下,再就是怎么生成该config文件?谢谢!

[解决办法]

VB code
'在模块中定义一个全局的数据库连接对象:public g_objDBConn as new adodb.connection
[解决办法]
参考一个已经写好的:
VB code
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset    Dim cnn As ADODB.Connection    Dim rst As ADODB.Recordset    Dim sTokens() As Stringstep1:    On Error GoTo ExecuteSQL_Error    sTokens = Split(SQL)    Set cnn = New ADODB.Connection    cnn.open "PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER=" & serveraddress & ";DATABASE=newdatabase;UID=sa;PWD=123"'serveraddress 来自登陆时选择的服务器    If InStr("insert,delete,update,execute", LCase$(sTokens(0))) Then        cnn.BeginTrans        cnn.Execute SQL        If CBool(cnn.State And adStateExecuting) Then            cnn.Cancel            cnn.RollbackTrans        Else            cnn.CommitTrans            MsgString = sTokens(0) & " query successful!"        End If    Else        Set rst = New ADODB.Recordset        rst.CursorLocation = adUseClient        rst.open Trim$(SQL), cnn, adOpenStatic, adLockOptimistic            'rst.Movelast            'get RecordCount        Set ExecuteSQL = rst        MsgString = "查询到" & rst.RecordCount & " 条记录"    End If    ExecuteSQL_Exit:    Set rst = Nothing    Set cnn = Nothing    Exit FunctionExecuteSQL_Error:    cnn.BeginTrans    cnn.Execute SQL    sorf = 1    MsgString = "查询错误:" & Err.description    If MsgString = "查询错误:[Microsoft][ODBC SQL Server Driver][SQL Server]用户 'sa' 登录失败。" Then        sorf = 2        GoTo step1    End If    Resume ExecuteSQL_ExitEnd Function
[解决办法]
由于涉及数据库操作较多,类的内容代码比较长,给个简单示例:
VB code
Option ExplicitPrivate CONN As ADODB.ConnectionPrivate Function openDB() As Boolean    On Error GoTo openDBErr    Set CONN = New ADODB.Connection    CONN.ConnectionString = "..."    CONN.CommandTimeout = 10    CONN.CursorLocation = adUseClient    CONN.Open    openDB = True    Exit FunctionopenDBErr:    openDB = False'    MsgBox "数据库链接出错!", vbInformation + vbOKOnly, "错误"End FunctionPublic Function executeQuery(ByVal sSQL As String) As ADODB.Recordset    On Error GoTo executeQueryErr    Set executeQuery = CONN.Execute(sSQL)    Exit FunctionexecuteQueryErr:    Set executeQuery = Nothing    MsgBox "数据库查询出错!", vbInformation + vbOKOnly, "错误"End FunctionPublic Function executeUpdate(ByVal sSQL As String) As Boolean    On Error GoTo updateQueryErr    CONN.Execute sSQL    executeUpdate = True    Exit FunctionupdateQueryErr:    executeUpdate = False    MsgBox "数据库更新出错!", vbInformation + vbOKOnly, "错误"End FunctionPrivate Sub closeDB()    If Not (CONN Is Nothing) Then        If CONN.state <> adStateClosed Then CONN.Close        Set CONN = Nothing    End IfEnd SubPrivate Sub Class_Initialize()    If Not openDB() Then        MsgBox "无法建立数据库链接!", vbInformation + vbOKOnly, "错误"    End IfEnd SubPrivate Sub Class_Terminate()    closeDBEnd Sub
[解决办法]
http://download.csdn.net/source/1498324

热点排行