使用组件封装数据库操作(二)

网络整理 - 09-13

前段日子发表的文章,数据库的连接代码可以直接在ASP文件中显示出来。这次又进行了一次封装。

打开vb,新建Activex控件,工程名称为WebDb,类模块名称为GetInfomation

引用”Microsoft Activex Data Object 2.6 Library ”

Private Conn As ADODB.Connection

Private Rs As ADODB.Recordset


‘作用:判断数据库是否正确连结

'自己可以更改连接串

Public Function GetConn()

Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=yang"

If Err.Number <> 0 Then

    GetConn = False

Else

    GetConn = True

End If

End Function


‘根据输入的雇员ID,得到雇员的名称

Public Function GetEmployeeName(strEmployeeID As Integer) As String

   

    Dim strSql As String

    Set rs = New ADODB.Recordset

    strSql = "select LastName+firstname from employees where EmployeeID=" & strEmployeeID

   

    rs.Open strSql, Conn, adOpenStatic, adLockOptimistic

   

    If rs.EOF Then

        GetEmployeeName = ""

    Else

        GetEmployeeName = rs.Fields(0)

    End If

   

    rs.Close

End Function

‘返回所有的雇员列表

Public Function GetEmployeeList() As ADODB.Recordset

    Dim strSql As String

    Set rs = New ADODB.Recordset

    strSql = "select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City from employees"

    rs.CursorLocation = adUseClient

    rs.Open strSql, Conn, adOpenStatic

   

    Set GetEmployeeList = rs

    'rs.Close

End Function

我们进行测试

新建ASP页面,”TestWebDb1.asp”。主要用来测试GetEmployeeList()方法

<HEAD>

<!- 测试页 ->

<!- 功能:测试组件 ->

<!- 作者:龙卷风.NET ->

<%

    Dim strTopic

    Dim strTitle

    Dim strContents

    Dim DataQuery

       Dim Rs

       Dim Myself

       Myself=Request.ServerVariables("script_name")

    Set DataQuery=Server.CreateObject("WebDb.GetInfomation")

       Set Rs=Server.CreateObject("adodb.recordset")   

%>

<TITLE>

   数据组件测试页

</TITLE>

<H1><CENTER>欢迎使用数据组件()</CENTER></H1>

<%

    If Len(Request.QueryString("ID")) > 0 Then

        strID = Request.QueryString("ID")

              Dim Flag

              Flag=DataQuery.GetConn()

              If Flag=false then

                     ResPonse.Write "数据库没有连结,请检查"

                     ResPonse.End

              End if

             

              strResult=DataQuery.GetEmployeeName(cint(strID))

              if strResult="" then

                     Response.Write "对不起,没有这个编号,请查询"

                     Response.End

              else

                     ResPonse.Write strResult

              end if

       End If

%>

<FORM>

<INPUT TYPE=TEXTBOX SIZE=40><P>

<INPUT LANGUAGE="VBscript"

       TYPE="BUTTON"

       VALUE="Search"

       >

</FORM>
</HEAD>

一些想法:数据库连结如果放到组件里,如果要修改数据库连结,则要重新编译组件,可能会由此引发一些问题(但是推荐这种,毕竟数据库名和服务器名不会经常改)

如果数据库连结放到ASP页面,可以通过属性传值到组件中,但是安全性会降低。

真是……

好了,这篇文章结束了,希望对大家有帮助

今后的话题便是如何实现AspToDll这个软件的功能,我们一步一步实现。