公司的SQL服务器负担太重
请求一个用VB6做的数据库连接池例子?最好有代码及实现原理及方法

解决方案 »

  1.   

    不知道这个是不是呀
      我只有这个
    Public Declare Function SQLAllocEnv Lib "odbc32.dll" (phenv&) As Integer
    Public Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal Henv&, phdbcd&) As Integer
    Public Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal Hdbc&, phstmt&) As Integer
    Public Declare Function SQLConnect Lib "odbc32.dll" (ByVal Hdbc&, ByVal szDSN$, _
    ByVal cbDSN%, ByVal szUID$, ByVal cbUID%, ByVal szPWD$, ByVal cbPWD%) As Integer
    Public Declare Function SQLColAttributes Lib "odbc32.dll" (ByVal Hstmt&, ByVal icol%, _
    ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%, pcbDesc%, pfDesc&) As Integer
    Public Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal Hdbc&) As Integer
    Public Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal Hstmt&, ByVal szSqlStr$, _
    ByVal cbSqStr&) As Integer
    Public Declare Function SQLFetch Lib "odbc32.dll" (ByVal Hstmt&) As Integer
    Public Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal Hdbc&) As Integer
    Public Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal Henv&) As Integer
    Public Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal Hstmt&, ByVal fOption%) As Integer
    Public Declare Function SQLGetData Lib "odbc32.dll" (ByVal Hstmt&, ByVal icol%, ByVal fCType%, _
    ByVal rgbValue As String, ByVal cbValueMax&, pcbValue%) As Integer
    Public Declare Function SQLNumResultCols Lib "odbc32.dll" (ByVal Hstmt&, pccol%) As Integer
    Public Declare Function SQLGetDiagRec Lib "odbc32.dll" (ByVal HandleType%, ByVal Handle&, _
    ByVal RecNumber%, Sqlstate%, NativeErrorPtr%, MessageText As String, _
    ByVal Bufferlenchgth%, TextlenchgthPtr%)
    '== 标记数据库是否连接 ==
    Private IsConnect As Boolean
    '== 标记执行Connect()函数后,访问数据库的次数 ==
    Private Connect_Num As Integer
    Private Henv As Long     '环境句柄
    Private Hdbc As Long     '连接句柄
    Private Rc As Long
    Public Hstmt As Long
      

  2.   

    引用 Project-Reference-COM+ Services Type Library实现:
        Dim uSharedP            As SharedProperty               '共享属性对象
        Dim uSharedPG           As SharedPropertyGroup          '属性组对象
        Dim uSharedPGM          As SharedPropertyGroupManager   '组管理对象
        
        Set uSharedPGM = New SharedPropertyGroupManager
        Set uSharedPG = uSharedPGM.CreatePropertyGroup("DBConnect", LockSetGet, Standard, bFlag)
        Set uSharedP = uSharedPG.CreateProperty("ConnectString", bFlag)
        If bFlag = False Then '增加数据库连接池
            uSharedP.Value = GetConnectStringFromConfigFile(FilePath) & ";OLE DB Services=-1;"
        End If
        GetConnectString = uSharedP.Value
      

  3.   

    建议用COM+的方式来实现,另外在应用程序设计时注意控制连接对象的释放问题