ASP数据库编程技巧

ASP数据库编程技巧

Active Server Pages是功能强大、易于学习的服务器端脚本编程环境,ASP内置ADO组件,因此可以轻松的存取各种数据库,从而大大缩短了程序开发时间。本文将笔者从事ASP数据库编程的两点经验贡献出来,供大家参考。

一、 与数据库建立连接

  我们常用的数据库一般为Microsoft Access或SQL Server,为了使用这两种数据库,我们通常需要先创建和配置ODBC数据源,但事实上,ASP脚本可以使用OLD DB的其他驱动程序直接把ADO绑定到数据库而不使用ODBC作为一个附加层,请看:

1. 与Microsoft Access数据库建立连接

Set Cnn = Server.CreateObject("ADODB.Connection")

Cnn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\asp\data")

& "\example.mdb;"

  在这里,Server对象的MapPath方法将指定的虚拟路径转换为真实的文件路径,最终结果类似:c:\InetPub\home\asp\data\example.mdb。

2. 与SQL Server数据库建立连接

Set Cnn = Server.CreateObject("ADODB.Connection")

strConn = "Provider=sqloledb; User ID=sa; Password=; Initial Catalog=pubs; Data

Source=16.62.5.8"

Cnn.Open strConn

  Initial Catalog后指定数据库名,Data Source后为机器名或IP地址。

二、 从ASP脚本中访问数据库的两种方法

1. 通过SQL语句来访问数据库

1) 若需要返回 Recordset 对象引用(如查询操作)先要建立一个名为Cnn的连接

strQry = "SELECT * FROM authors"

Set rsTest = Cnn.Execute(strQry)

然后可以通过循环显示记录集rsTest中的有关数据。

2) 若不需要返回数据(如增加、修改、删除操作)

strQ = "INSERT INTO Shippers (CompanyName, Phone) VALUES ('O''Conner Delivery', '(503)

555-0201')"

Cnn.Execute strQ 

2. 通过Recordset对象的Open、AddNew、Delete、Update和UpdateBatch方法访问数据库

Set rsTest = Server.CreateObject("ADODB.Recordset") '创建Recordset对象

rsTest.CursorLocation = adUseServer   '使用服务器端游标

rsTest.CursorType = adOpenForwardOnly '使用仅向前游标类型

rsTest.LockType = adLockOptimistic   '开放式记录锁定(逐条)

rsTest.Open "SELECT * FROM Shippers WHERE CompanyName = 'United Package'", Cnn, , ,

adCmdText

' 第五个参数:adCmdText指示数据源是一个SQL语句。

rsTest("Phone") = "(503) 555-8888"

rsTest.Update

Response.Write "更新单个记录 " & objRS("Phone") & ".<BR>" 

  为了更好的理解ADO的数据库编程,下面提供一个完整的实例(NorthWind.mdb是Microsoft Access97自带的一个数据库,文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):

<% @LANGUAGE = VBScript %>

<!--#include file="adovbs.inc"-->

<%

Response.Expires = 0

Dim StrCnn,Cnn,objRS, strOut, ID 

Set Cnn = Server.CreateObject("ADODB.Connection")

StrCnn="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &

Server.MapPath("\asp24") & "\NorthWind.mdb;"

Cnn.Open StrCnn

Response.Write StrCnn & "<Br>"  '看看输出的结果 

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.CursorLocation = adUseServer

objRS.CursorType = adOpenKeyset

objRS.LockType = adLockOptimistic

objRS.Open "运货商", Cnn, , , adCmdTable

objRS.AddNew 

objRS("公司名称") = "吴丰"

objRS("电话") = "571-7227298" 

objRS.Update 

ID = objRS("运货商ID")

Response.Write "新增记录运货商ID为 "

Response.Write ID & ".<BR><BR>" 

objRS.Close 

objRS.CursorLocation = adUseClient

objRS.CursorType = adOpenForwardOnly

objRS.LockType = adLockReadOnly

objRS.Open "运货商", Cnn, , , adCmdTable

%>

<HTML><BODY>

  下面为显示信息部分-运货商ID: 公司名称 电话<BR><BR>

<%

While Not objRS.EOF

strOut = objRS("运货商ID") & ": " & objRS("公司名称")

strOut = strOut & " " & objRS("电话")

Response.Write Server.HTMLEncode(strOut) & "<BR>"

objRS.MoveNext

Wend 

objRS.close : Cnn.close

Set objRS = Nothing : Set Cnn = Nothing

%>

</BODY></HTML>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值