想用VB建一个DLL,DLL中写访问SQL数据库的程序取数据源然后另个VB的工程调用这个DLL取数据源。
比如:DLL 中提供从SQL 中查询返回查询结果 职员的名称
VB工程中 输入职员的编号 调用DLL 得到返回的职员的名称。
请高手指教!!

解决方案 »

  1.   

    以前写的
    看看dll中的模块
    Option ExplicitPublic Function OpenConnection() As ADODB.Connection
        Dim ado As New ADODB.Connection
    On Error GoTo ErrorHandler
        
        ado.CursorLocation = adUseClient
        ado.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=MyBookShop;Data Source=yang"
        ado.Open
        Set OpenConnection = ado
        Exit Function
    ErrorHandler:
        err.Raise err.Number, "数据库连接", err.Description
    End Function类模块:我直接返回了记录集,你可以自己修改
    Public Function Find(ByVal sid As Integer) As ADODB.Recordset
    Dim strSql As String
    On Error GoTo err
    strSql = "select * from books where typeid=" & sid
    Dim conn As ADODB.Connection
    Set conn = OpenConnection()
    Dim rs As ADODB.Recordset
    Set rs = conn.Execute(strSql)Set Find = rsIf Not conn Is Nothing Then
       Set conn = Nothing
    End IfExit Functionerr:
    If Not conn Is Nothing Then
       Set conn = Nothing
    End Iferr.Raise err.Number, "CateGoryDataService.CateGoryData.Find", err.DescriptionEnd Function
      

  2.   

    注册后,引用
    Private Sub tvTreeView_NodeClick(ByVal Node As MSComctlLib.Node)
        Dim Nt As ADODB.Recordset
        Dim Cnt, i
        Dim tv As CateGoryDataService.CateGoryData
        Set tv = New CateGoryDataService.CateGoryData
        On Error GoTo ErrorHandler
        Set Nt = tv.Find(Node.Key)
        Cnt = Nt.RecordCount
        
        ListView1.ListItems.Clear
        Dim LItem As ListItem
        For i = 0 To Cnt - 1
            Set LItem = ListView1.ListItems.Add(, , Nt.Fields("ISBN"))
            LItem.SubItems(1) = Nt.Fields("BookName")
            LItem.SubItems(2) = Nt.Fields("UnitPrice")
        Next
    ErrorHandler:
        If Not Nt Is Nothing Then
            If Nt.State = 1 Then
                Nt.Close
            End If
            Set Nt = Nothing
        End If
    End Sub