频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源: 作者: 出处:巧巧读书 2006-09-12 进入讨论组

  前段日子发表的文章,数据库的连接代码可以直接在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>欢迎使用数据组件(www.knowsky.com)</CENTER></H1>
<%
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 "<CENTER><TABLE BORDER=1 cellspacing=0 cellpadding=2>"
Response.Write "<tr BGCOLOR=silver align=center>"
Response.Write "<td>EmployeeID</TD>"
Response.Write "<td>LastName</td>"
Response.Write "<td>FirstName</td>"
Response.Write "<td>Title</a></td>"
Response.Write "<td>TitleOfCourtesy</a></td>"
Response.Write "<td>BirthDate</td>"
Response.Write "<td>HireDate</td>"
Response.Write "<td>Address</td>"
Response.Write "<td>City</td>"
Response.Write "</tr>"
Rs.AbsolutePage = Page
For iPage = 1 To Rs.PageSize
Response.Write "<TR align=right>"
for i=0 to Rs.fields.count-1
Response.Write "<td>"&Rs.fields.item(i)&"</td>"
next
Response.Write "</TR>"
Rs.MoveNext
If Rs.EOF Then Exit For
next
Response.Write "</TABLE></CENTER>"
%>
<Form name="myform" method="get">
<%If Page <> 1 Then%>
<A HREF=http://www.blue1000.com/article/"<%=Myself%>?Page=1">第一页</A>
<A HREF="<%=Myself%>?Page=<%=(Page-1)%>"></A>
<A HREF=http://www.blue1000.com/article/"<%=Myself%>?Page=<%=Rs.PageCount%>">最后的一页</A>
<%End If%>
页次:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
</Form>
<%Rs.close%>
  新建ASP页面,”TestWebDb2.ASP”。主要用来测试GetEmployeeName()方法
  这个页面相对简单一些
<HEAD>
<!- 测试页 ->
<!- 功能:测试组件 ->
<!- 作者:龙卷风.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<TITLE>数据组件测试页</TITLE>
<H1><CENTER>欢迎使用数据组件(www.knowsky.com)</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 NAME="MyForm">
<INPUT TYPE=TEXTBOX NAME="EmpID" SIZE=40><P>
<INPUT LANGUAGE="VBScript"
TYPE="BUTTON"
VALUE="Search"
ONCLICK="window.location.href = 'TestWebDb2.ASP?ID=' _
+ MyForm.EmpID.Value">
</FORM>
</HEAD>

  一些想法:数据库连结如果放到组件里,如果要修改数据库连结,则要重新编译组件,可能会由此引发一些问题(但是推荐这种,毕竟数据库名和服务器名不会经常改)
  如果数据库连结放到ASP页面,可以通过属性传值到组件中,但是安全性会降低。图 文 结 合:http://www.qqread.com/asp/2006/10/u237265.html 更多文章 更多内容请看数据库专栏数据库处理专题城域网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章