凹丫丫网络社区's Archiver

34008950bb 发表于 2008-3-26 13:26

ASP数据库编程技巧

[font=宋体][size=3] 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下找到):









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





[/size][/font]

truanswer 发表于 2008-3-26 14:08

ASP数据库编程技巧

sssssssssssssssssssssssssssssssssss

truanswer 发表于 2008-3-26 14:15

ASP数据库编程技巧

lllllllllllllllllllllllllllllllllllllll

TroyHorse 发表于 2008-4-13 17:42

学习了,楼主辛苦了!!!

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.