ITPub博客

首页 > 数据库 > 数据库开发技术 > 使用组件封装数据库操作(二) (转)

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

原创 数据库开发技术 作者:amyz 时间:2007-08-17 08:50:26 0 删除 编辑
使用组件封装数据库操作(二) (转)[@more@] 

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

前段日子发表的文章,数据库的连接代码可以直接在ASP文件中显示出来。这次又进行了一次封装。XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

打开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()方法

 

.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") 

%>

 

</P> <P>  数据组件测试页</P> <P>

 

欢迎使用数据组件()

 

<%

  Dim Flag

  Flag=DataQuery.GetConn()

  If Flag=false then

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

    ResPonse.End

  End if

 

  Set Rs=DataQuery.GetEmployeeList()

  if rs.eof then

    Response.write "没有数据,请查询"

    Response.end

  end if

 

  Rs.PageSize =3

  Page= CLng(Request.QueryString ("Page"))

 

  If Page < 1 Then Page = 1

  If Page > Rs.PageCount Then Page = Rs.PageCount

 

  Response.Write "

"

   Response.Write "

"

  Response.Write "

"

  Response.Write "

"

     Response.Write "

"

   Response.Write "

"

     Response.Write "

"

     Response.Write "

"

     Response.Write "

"

     Response.Write "

"

     Response.Write "

"

  Response.Write "

"

 

   Rs.AbsolutePage = Page

   For iPage = 1 To Rs.PageSize

       Response.Write "

"

    for i=0 to Rs.fields.count-1

    Response.Write "

"

   next

       Response.Write "

"

   Rs.MoveNext

   If Rs.EOF Then Exit For

    next

   Response.Write "

EmployeeID LastName FirstName Title TitleOfCourtesy BirthDate HireDate Address City
"&Rs.fields.item(i)&"
"

%>

 

RM name="myform" method="get">

<%If Page <> 1 Then%>

  第一页

  上一页

<%End If%>

  <%If Page <> Rs.PageCount Then%>

  下一页

  最后的一页

<%End If%>

页次:<%=Page%>/<%=Rs.PageCount%>

 

<%

Rs.close

%>

 

 

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

这个页面相对简单一些

 

 

<%

  Dim DataQuery

  Dim strID

  Dim strResult

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

%>

 

</P> <P>  数据组件测试页</P> <P>

 

欢迎使用数据组件()

 

<%

  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

%>

 

 

vbscript"

  TYPE="BUTTON"

  VALUE="Search"

   ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _

  + MyForm.EmpID.Value">

 

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

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

真是……

 

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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10752019/viewspace-962903/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3982
  • 访问量
    7896774