china.com
主页
新闻
体育
游戏
文化
教育
健康
财经
科技
旅游
军事
娱乐
商贸
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  


ASP数据库编程技巧

2000-08-16 09:54:23

  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>



  摘自《赛迪网》 吴丰/文

404 Not Found

404 Not Found


nginx


科技检索


中华网推荐

  • 1000名医生在线咨询

  • 中国足球队官方网站

  • 鸦片玫瑰(新版)

  • 精选股票天地

  • 闪光的flash教程

  • 中华网汽车世界

  • 为你的爱情出谋划策

  • 网文精选——野百合集

  • 世界文化遗产在中国

  • 历届香港小姐风姿集



  •  


    版权声明 | 本站检索 | 联系方法 | 刊登广告 | 使用说明 | 关于中华网 | 豁免条款

    版权所有 中华网