ASP数据库编程技巧

2008-02-23 05:31:28来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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



  为了更好的理解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>





标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 在ASP中使用断开的记录集

下一篇: 在ASP中使用存储过程

热门词条
热门标签