asp ado连接oracle数据库,ASP ADO数据库访问

现在很多动态网页是基于数据库的,网页的内容依靠数据库生成。信息的查询和输入也需要数据库支持,可以说网站的操作基本离不开数据库的支持。在ASP网站中,所有访问数据库的操作都可以由ADO(ActiveX

Data Objects)来实现。如果不能掌握其使用方法,ASP程序员就无法编写出功能强大的ASP应用程序。本章将介绍ADO和访问数据库的方法。

13.1

ADO概述ADO提供了访问各种数据库的连接机制,是目前流行的数据库连接方法之一。使用ADO提供的访问数据库统一接口,用户可以读取和写入几乎所有的数据库管理系统,包括Microsoft

SQL Server、Oracle和Microsoft Access等,也可以访问Microsoft

Excel的数据文件。

ADO是一个COM组件,任何COM技术的编程语言都可以使用,包括Microsoft Vis l Basic、Microsoft

Vis l

C++、Delphi,以及ASP。ASP脚本通过ADO技术执行SQL指令,对数据库记录执行添加、更新和删除操作,可以说ADO是适合Web数据库应用的最佳选择。

13.1.1

ADO对象

ADO提供了一系列的对象、属性和方法,用其可以轻松完成数据库的连接,以及数据的查询、添加、修改和删除等各种操作。在ASP中ADO由ADODB对象库中的子对象组成。ADO的常用对象如表13-1所示。

表13-1

ADO的常用对象

对象         说

Connection

连接对象,用来建立ASP脚本与数据源之间的连接

Recordset

记录集对象,表示从数据源返回的数据集

Command      命令对象,用来执行SQL语句或者SQL

Server的存储过程

Field

域对象,表示记录集中一个字段

Parameter

参数对象,代表与带参数查询或者SQL存储过程的Command对象的一个参数

Property

属性对象,代表提供者的动态特征

Error

错误对象,与数据访问错误有关的详细信息

ADO集合如表13-2所示

表13-2

ADO集合

对象

说 明

Fields

与Recordset对象关联的所有Field对象

Parameters

与Command对象关联的所有Parameter对象

Properties

所有的Property对象

Errors

为连接错误创建的所有Error对象

13.1.2 使用ADO的步骤在ASP中使用ADO操作数据库的步骤如下:

?

连接数据源。

? 设置访问数据库源的命令,一般为SQL语句

? 执行命令。

?

如果命令按行返回数据,则将数据存储在缓存中;如果使用SELECT语句,则保存在Recordset对象中。

? 修改缓存中的数据。

?

检测出现的错误。

?

结束连接

1、连接数据源

操作数据库前,必须首先建立与该数据库的连接,成功的连接才可以使应用程序访问数据源。Command、Recordset及Field等对象操作数据库时都必须依赖连接,Connection对象可以实现连接数据源操作,其常用属性如表13-3所示

表13-3

Connection对象的常用属性

属性

说 明

ConnectionString

连接字符串,表示与数据源建立连接的相关信息,需要在连接前设置

ConnectionTimeout  设置超时时间

,默认值为30秒,需要在连接前设置

Mode

设置连接的模式,需要在连接前设置

DefaultDatabase

为连接设置一个默认的数据库

Provider

为连接指定一个驱动程序

Version

获取ADO的版本

Cursorlocation     获取或者设置游标的位置,该属性的取值如下:

adUseNone:不使用游标服务  adUseServer: 默认值,实时反映数据库服务器上的修改,开销很大

adUseClient:没有实时性,但可以对数据进行查询等操作

Connection对象的常用方法如表13-4所示。

表13-4

Connection对象的常用方法方法        说

Open

建立一个连接

Close

关闭一个连接

Execute    执行命令,如执行SQL语句

2、设置访问数据源的命令

访问数据源即可以直接使用SQL语句,也可以通过设置Command对象的属性实现。Command对象具有强大的数据库访问能力,通过它可以轻松地完成数据库的各种操作。该对象的常用属性如表13-5所示。

表13-5

Command对象的常用属性属性

说 明

ActiveConnection

将Connection对象与一个打开的连接关联

CommandText

设置或获取命令

CommandTimeout

设置或者获取执行命令的最大时间,超过该值将终止命令的执行或者产生错误,该属性为长整型值,默认值为30,单位为秒

CommandType        表示Command对象的类型

State

指定对象的状态是打开还是关闭

Command对象的常用方法如表13-6所示

表13-6

Command对象的常用方法

方法      说

Cancel   取消执行的命令

Execute  执行在CommandText属性中指定的命令

3、获取数据Recordset对象可以从执行的命令中返回数据集,它也是ADO普遍使用的一个对象。该对象可以存放命令返回的结果,并可以对记录执行增加、删除和排序等操作,其常用属性如表13-7所示。

13-7

Recordset对象的常用属性

属性

说 明

RecordCount    返回记录集记录的数目

AbsolutePage

指定当前记录所在的页,长整型。该值可以从1到所含页数,也可以是下列常数。 AdposUnknown: 当前Recordset为空

AdPosBOF:当前记录指针位于记录的头

AdPosEOF:当前记录指针位于记录的尾

BOF

指示当前记录位置是否位于记录集第1个记录之前,是,为Tr,否则为False

EOF

指示当前记录位置是否位于记录集最后一个记录之后。是,为Tr,否则为False

PageCount

设置或者获取当前记录中的数据页数

PageSize

设置或者获取记录集中一页所包含的记录数

RecordCount

获取记录集中记录的数目

LockType

设置或者获取访问记录的锁定类型,常用值如表13-8所示

CursorType

记录集中的游标类型,常用值如表13-9所示

LockType属性的常用值如表13-8所示

表13-8

LockType属性的常用值

方法

值         说

adLockReadOnly

1

默认值,只读,不能更改记录数据

adLockPessimistic

2

通常在采用Update方法时锁定数据源的方式

adLockOptimistic

3

通常在调用Update方法时锁定记录

adLockBatchOptimistic

4         用于成批更新

CursorType属性的常用值如表13-9所示

表13-9

CursorType属性的常用值

方法

值    说 明

AdOpenForwardOnly    0

默认值,向前游标,只能向前滚动访问记录

AdOpenKeyset

1

键集游标,可以看到其他用户除了删除和添加之外的操作

AdOpenDynamic

2

动态游标,可以看到其他用户的修改操作

AdOpenStatic

3    静态游标,只能查找记录集的静态副本,看不到其他用户的操作

Recordset对象的常用方法如表13-10所示。

表13-10

Recordset对象的常用方法

方法

说 明

MoveFirst

将当前记录的指针移动到记录集的第一个记录

MoveLast

将当前记录的指针移动到记录集的最后一个记录

MovePrevious

将当前记录的指针向前移动一个记录

MoveNext       将当前记录的指针向后移动一个记录

AddNew

添加一个新记录

Delete

删除当前记录

Save

保存记录

Update         更新记录

4、检测出现的错误

使用ADO操作数据库时可能会出现错误,出现错误后会有一个或者多个Error对象入Connection对象的Error集合中。通过Error对象可以获取每个错误的信息,该对象的属性如表13-11所示。

表13-11

Error对象的属性属性

Description

错误的说明信息

Number

标识错误的常量

Source

说明产生错误的对象

adLockBatchOptimistic   用于成批更新

13.2

Connection对象

ASP程序在操作数据库时,需要建立与数据库的连接。ADO提供的Connection对象用于建立与数据库的连接,其属性和方法可以打开和关闭与数据库连接。在ASP中,ADO连接数据库的常用方法有以下三种:

使用OLE DB连接

使用ODBC连接

使用DSN(Data

Source Name)连接

13.2.1 使用OLE DB连接数据库

用OLE DB可以连接SQL

Server、Microsoft

Access及Excel等数据源,下面是连接不同数据库的方法。

1、建立与Access数据库的连接

下面的代码使用OLE

DB连接Access数据库user.mdb:

'创建ADO DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'获取要连接的数据库的物理路径

path=Server.MapPath("/user.mdb")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&path

Conn.Open

'打开与数据库的连接

%>

代码说明如下:

? Provider:OLE

DB提供者的名字,如“Microsoft.Jet.OLEDB.4.0”

? Data

Source:指定数据源的名称,如“d:\text\13\user.mdb”.

? UserID:连接数据源时所用的用户名称

?

PassWord:连接数据库时用户的密码。

上面的形成也可以修改成下面的代码:

'创建ADO

DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'获取要连接的数据库的物理路径

path=Server.MapPath("/user.mdb")

'依据连接的数据库设置连接字符串

Conn.Open

"Provider=Microsoft.Jet.OLEDB.4.0;","Data

Source="&path

%>

Open方法的语法格式如下:

connection.Open

ConnectinString,UserID,Password,Option

语法格式说明如下:

? ConnectionString:可选项,指定连接信息的字符串,其中包含由分号隔开的一系列语句。这些语句设置连接的属性,如“Provider=Microsoft.Jet.LEDB.4.0”

? UserID:可选项,指定连接数据库所用的用户名,此处指定的UserID将覆盖Connectionstring字符串中指定的UserID。

? Password:可选项,指定连接数据库所用的密码,此处指定的Password将覆盖ConnectionString字符串中指定的Password。

? Options:可选项,指定建立连接的方式,常用常量值如表13-12所示。

表13-12

Options的常用常量值常量

说 明

adConnectUnspecifield

默认值,同步打开连接

adAsyncConnect

异步打开连接

2、建立与SQL Server数据库的连接

下列使用OLE DB连接SQL

Server数据库:

'创建ADO DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=SQLOLEDB;DataSource=ServerName;Initial

Catalog=DataBaseName;UserID=UserName;password=PWD;"

Conn.Open

'打开与数据库的连接

%>

代码说明如下:

? 连接SQL Server时,OLE DB的提供者名为“SQLOLEDB”

?

DataSource:SQL Server服务器名

? Initial Catalog:数据库名

?

UserID:可选项,指定连接数据库所用的用户名

? Password:可选项,指定连接数据库所用的密码。

13.2.2 使用ODBC连接

ODBC也可以连接SQL

Server及Microsoft

Access等数据库。从连接形式上,可以使用DRIVE、DBQ、Provider和DataSource等关键字区分ODBC和OLE

DB连接方式。使用ODBC连接数据库时,连接字符串通常有DRIVER和DBQ;使用OLE

DB连接数据库时,连接字符串通常含有Proviider和DataSource等关键字。下面是使用ODBC连接不同数据的方法。

1、建立与Access数据库的连接下面是使用ODBC连接Access数据库的代码:

'创建ADODB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="DRIVE={Microsoft.Access.Driver(*.mdb)}"&_

"DBQ="&Server.MapPath("/user.mdb")

Conn.Open

%>

代码说明如下:

?

DRIVER:指定ODBC所用的驱动程序,如连接Access数据库所用的驱动程序为“Microsoft.Access.Driver(*.mdb)”。

?

DBQ:指定Access数据库的物理路径。

2、建立与SQL Server数据库的连接

下面是使用ODBC连接SQL

Server数据库的代码:

'创建ADO DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString='"DRIVER=(SQLServer);Server=ServerName;"&_

DataBase=DataBaseName;UID=UserName;PWD=Password;"

Conn.Open

'打开与数据库的连接

%>

代码说明如下:

? 连接SQL Server时,OLE DB的提供者名为“SQLOLEDB”。

?

Server:SQL Server服务器名。

? Database:数据库名

? UID:可选项,指定连接数据库所用的用户名。

?

PWD:可选项,指定连接数据库所用的密码。

3、建立与Excel的连接在网站设计时有时需要获取Excel数据源中数据,ADO连接Excel文件的方法如下:

Set

ExcelConn=Server.CreaeObject("ADODB.Connection")

ExcelFile=Server.mappath("text.xls")

'依据连接的数据库设置连接字符串

ExcelDriver="Driver={Microsoft

Excel Driver(*.xls)};DBQ&ExeclFile

ExcelConn.Open

ExcelDriver

%>

代码说明如下:

? DRIVER:连接Excel文件所用的驱动程序

?

DBQ:指定Excel文件的物理路径。

13.2.3 使用DSN连接数据库

DSN是ODBC的数据源名,用来标识数据源的字符串,其中包含连接特定数据源的信息,这些信息包括数据源名称及ODBC驱动程序。DSN主要有以下三种类型。

?

用户DSN:只有建立该DSN的用户才能访问该数据源,并且只能在本计算机上使用,不能从网络上访问该数据源。

? 系统DSN:

可以被该计算机上的所有有权限的用户访问。

?

文件DSN:与系统DSN相似,但是可以从网络上访问该数据源。

DSN可以由控制面板中的数据源创建、修改并删除,本节将介绍建立Microsoft

Access和SQL Server的DSN的方法。

1、建立Access数据库的DSN

步骤1在Windows 2000

Server操作系统中,单击“开始”|“程序”|“管理工具”|“数据源ODBC”命令,弹出“ODBC数据源管理器”对话框,如图13-1所示。也可以打开“控制面板”窗口,双击“管理工具”|“数据源ODBC”图标,打开该对话框。

步骤2:单击“系统DSN”标签,打开“系统DNS”选项卡,如图13-2所示。

步骤3:单击“添加”按钮,弹出“创建数据源”对话框,如图13-3所示。

步骤4:选择“Microsoft Access

Driver(*.mdb)”选项,单击“完成”按钮弹出“ODBC Microsoft

Access安装”对话框,如图13-4所示。

步骤5:输入数据源名,单击“选择”按钮弹出“选择数据库”对话框,如图13-5所示。

步骤6:在“数据库名”下拉列表框中选择数据库,单击“确定”按钮建立DNS如图13-6所示。

2、建立SQL Server数据库的DSN建立SQL

Server数据库的DSN方法基本类似,操作步骤如下:

步骤1:在“创建数据源”对话框中选择“SQL

Server”选项,单击“完成”按钮弹出“创建到SQL Server的新数据源”对话框,如图13-7所示。

步骤2:在“名称”文本框中输入DSN的名称。在“服务器”下拉列表框中选择SQL Server服务器,或者输入“localhost”连接本地SQL

Server服务器,单击“下一步”按钮,弹出验证方式对话框,如图13-8所示。

步骤3:若选择“使用网络登录ID的Windows NT验证”单选按钮,将以当前登陆Windwos

NT的用户登录SQL Server数据库;若选择“使用用户输入登录ID和密码的SQL Server验证”单选按钮,将以SQL Server的用户登录SQL

Server数据库。本例选择“使用用户输入登录ID和密码的SQL Server验证”单选按钮,输入SQL

Server的用户sa和密码。单击“下一步”按钮,弹出访问数据库设置对话框。

步骤4:选中“更改默认数据库为”复选框,在下拉列表框中选择要连接的数据库。单击“下一步”按钮,弹出数据库设置对话框。

步骤5:设置SQL Server系统消息的语言、货币、时间及数字的格式,以及保存查询的日志文件等选项。单击“完成”按钮,弹出“ODBC Microsoft

SQL Server安装”对话框。

步骤6:单击“测试数据源”按钮,测试连接数据源的正确性。弹出“SQL

ServerODBC数据源”测试对话框

步骤7:如果测试成功,则表示连接正确,单击“确定”按钮完成操作。

设置DSN之后可以通过DSN连接数据库,使用DSN连接数据库的示例代码如下:

'创建ADO DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="DSN=Test;UID=sa;PWD=;

"

Conn.Open

'打开与数据库的连接

%>

代码说明如下:

DSN:DSN的名称

UID:用户名。

PWD:密码。

13.3

Recordset对象

Recordset(记录集)对象是ADO中另一个非常重要的对象,在数据库操作中经常用到。该对象代码执行命令后返回的记录集合,通过该集合可以执行查看、修改及删除记录等各种操作。本节介绍如何建立Recordset对象,以及该对象的方法和属性。

13.3.1

建立Recordset对象在使用Recordset对象前,需要创建该对象,语法格式如下:

Set

Rs=Server.CreateObject(“ADODB.Recordset”)

读取表中所有记录示例的实现如下:

1、连接数据库

下面是连接数据库的代码:

'创建ADO

DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&Server.MapPath("oa.mdb")

Conn.Open

'打开与数据库的连接

%>

2、建立Recordset对象并获取所有记录

下面的代码建立Recordset对象并使用Open()方法获取指定表记录。

Set

rs=Server.CreateObject("ADODB.Recordset")

rs.Open

"Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable

%>

代码说明如下:

本段代码使用Open()方法获取Group_Info表中的所有记录。

Open()方法获取表中的所有记录或查询的记录,其语法格式如下:

rs.Open

DataSource,Conn,CursorType,LockType,Options

语法格式说明如下。

Rs:

Recordset对象实例。

DataSource:

可选项,可以为SQL语句、表名及存储过程调用等。

Conn:

可选项,可以为Connection对象的实例或包含ConnectionStrin的字符串。

CursorType:

可选项,指定使用的游标类型,其常用常量的值如表13-9所示。

LockType:

可选项,指定使用的锁定类型,其常用常量的值如表13-8所示。

Options:

可选项,指定执行DataSource的方法。

3、输出记录

可以使用下面的方式获取记录指定的字段内容:

rs(Name)

其中rs为Recordset对象实例,Name为字段的名称,rs(Name)为当前记录的Name字段的内容。

输出所有记录内容会用到Recordset对象的EOF或者BOF属性,EOF属性标识记录指针是否移动到最后一条记录之后,即访问是否结束;BOF属性用来标识记录指针是否移动到首条记录之前。

下例使用Recordset对象输出所有记录的内容:

If

not rs.EOF then

Do while not rs.Eof

Response.write "职位:"&rs("Name")&_

"。描述信息:"&rs("Info")&"

"

‘需要使用MoveNext把记录指针移动到下一条记录

rs.MoveNext

Loop

Else

Response.write "没有记录!"

End

If

rs.close

‘关闭recordset

Set rs=Nothing

Conn.Close

Set Conn=Nothing

%>

4、包含adovbs.inc文件

本例使用多个常量,这些常量声明后方可使用。ASP已经提供了这些常量的定义值,ASP程序员不需要单独定义这些常量。它们包含在文件adovbs.inc中,使用这些常量时需要包含这个文件。

adovbs.inc文件存放在系统盘中的Program

Files\Common

Files\System\ado目录下,将该文件复制到指定的目录下即可引用。本例将该文件复制到当前目录下,使用下面的方式引用:

13.3.2

分页显示记录

当查询网站的记录数目特别多时,需要分页显示,分页显示需要确定记录的数目。Recordset对象提供了RecordCount属性,用于返回Recordset对象的记录总数。

1、使用RecordCount属性实现分页显示

下例使用RecordCount属性实现分页显示。

(1)连接数据库,下面是连接的数据库代码:

'创建ADO

DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&Server.MapPath("oa.mdb")

Conn.Open

'打开与数据库的连接

%>

(2)建立Recordset对象并获取所有记录,下面的代码建立Recordset对象并使用Open()方法获取所有的记录:

Set

rs=Server.CreateObject("ADODB.Recordset")

rs.Open

"Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable

%>

(3)设置分页参数,分页时需要获取记录总数。设置每页显示的记录数目,总页数和当前页数和代码的如下:

Dim

rsCount

存储记录总的数目

‘获取所有的记录数目并赋给变量reCount

rsCount=rs.RecordCount

‘变量Page存储总的页数,PageSize为每页显示的记录数目

Dim

Page,PageSize

Dim n ‘用来存储查询过的记录数

n=0

‘初始值为0

‘设置每页的记录数目为2

PageSize=2

‘计算总的页数

Page=rsCount/PageSize

‘获取当前的页数

PageNo=Trim(Reqst.QryString("Page"))

‘如果用户指定的页号为空,则使该页的数值为第1页

If

PageNo="" Then

PageNo=1

‘把页号转化成数值,如果不是数值,将出错

PageNo=Cint(PageNo)

‘如果该值小于1,则使该值为1;如果为总页数,则设置该值为总页数

If

PageNo<1 Then PageNo=1

If PageNo>Page Then

PageNo=Page

%>

(4)显示记录,显示指定页的记录要使记录指针移动到指定页。本例创建一个计数器n,用于判断记录指针是否移动到指定页中的记录。下面的代码使记录指针移动到指定页。但是这种方法效率不高,在14.5节中介绍了另一种分页办法,读者可以参考:

‘读取所有的记录

Do

while not rs.Eof

‘判断当前记录是否是指定页内的记录,是,则输出

If n>PageNo*PageSize and

n<=PageSize*(PageNo+1) Then

Response.write "职位:"&rs("Name")&_

"。描述信息:"&rs("Info")&"

"

End

If

n=n+1   ‘记录数目加1

rs.MoveNext

‘读取下一条记录

Loop

%>

(5)显示分页,下面的代码显示页号连接,以方便用户查询:

‘显示所有的分页连接

For

i=1 to Page

Response.write "第"&i&"页

"

Next

%>

(6)关闭连接,代码如下:

rs.close

Set

rs=Nothing

Conn.Close

Set Conn=Nothing

%>

2、使用AbsolutePage分页上例需要程序员设置和计算页数,相对麻烦。Recordset对象提供了实现分页的属性,这样属性是AbsolutePage、PageCount和PageSize。下面是使用这几个属性实现分页的示例。

(1)连接数据库,代码如下:

'创建ADO

DB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&Server.MapPath("oa.mdb")

Conn.Open

'打开与数据库的连接

%>

(2)建立Recordset对象并获取所有记录,下面的代码建立Recordset对象并使用Open()方法获取所有的记录。

Set

rs=Server.CreateObject("ADODB.Recordset")

rs.Open

"Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable

%>

(3)设置分页参数,代码如下:

‘设置每页显示记录的数目

rs.PageSize=2

Dim

page

‘保存总的页数

page=rs.PageCount

‘获取总页数

PageNo=Trim(Reqst.QryString("Page"))

‘获取读取页的页码

If PageNo="" Then

PageNo=1

‘把指定页的页码转换成整数

PageNo=Cint(PageNo)

‘如果小于1,则设置该页码为1.

If

PageNo<1 Then PageNo=1

‘如果指定页的页码大于总页数,则设置该页码为总页数

If PageNo>Page Then

PageNo=Page

‘设置当前页为指定页的页码

rs.AbsolutePage=PageNo

%>

代码说明如下:

?

PageSize属性:每页的记录条数

? PageCount属性:表示Recordset对象的分页总数。

?

AbsolutePage属性:获取或设置当前页的页码。

(4)显示当前页记录,代码如下:

‘显示当前页记录,代码如下:

For

i=1 To rs.PageSize

‘如果记录指针已经移动到最后一条记录之后,则终止读取记录

If rs.EOF

then exit for

Response.write "职位:"&rs("Name")&_

"。描述信息:"&rs("Info")&"

"

rs.movenext

‘读取下一条记录

next

%>

(5)显示页号,代码如下:

For i=1 to

Page

Response.write "第"&i&"页

"

Next

%>

(6)关闭连接,代码如下:

rs.close

Set

rs=Nothing

Conn.Close

Set Conn=Nothing

%>

13.3.3

添加和删除记录

Recordset对象属的属性和方法也可以添加和删除记录,Addnew()方法添加记录,Delete()方法删除记录。下例使用这两个方法添加和删除记录。

1、界面

界面中提供了一个表单,其中包括两个文本框和一个“提交”按钮。该例显示所有的记录,每个记录都有“删除”链接,添加记录时,数据提交到Insert.asp文件处理,删除记录由文件delete.asp实现。界面的实现代码如下:

新建网页 1

职位名称:

职位描述:

'创建ADODB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&Server.MapPath("oa.mdb")

Conn.Open

'打开与数据库的连接

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

rs.Open

"Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable

Do While not

rs.EOF

Response.write rs("Name")&" 删除

"

rs.movenext

Loop

rs.close

Set

rs=Nothing

Conn.Close

Set

Conn=Nothing

%>

2、添加记录

下面的代码获取的记录信息添加到表中:

'创建ADODB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&Server.MapPath("oa.mdb")

Conn.Open

'打开与数据库的连接

Set

rs=Server.CreateObject("ADODB.Recordset")

'打开指定的表

rs.Open

"Group_Info",Conn,adOpenKeyset,adLockOptimistic,adCmdTable

'获取添加记录的信息

Name=Reqst.Form("MingCheng")

Info=Reqst.Form("XinXi")

Response.write

Name&Info

'使用Addnew方法添加一条记录

rs.AddNew

Array("name","Info"),Array(Name,Info)

rs.Update

'更新记录

rs.close

Set rs=Nothing

Conn.Close

Set

Conn=Nothing

%>

代码说明如下:

? AddNew()方法在数据库中添加记录,其语法格式如下:

Rs.AddNew

Field,Vals

其中,Field是可选项,可以为记录字段的名称或一组记录的名称;Val也是可选项,为新记录中的字段值或者一组字段的值。

?

AddNew()方法添加记录后需要使用Update()方法更新记录后才能添加成功。

?

Update()方法用来保存在数据库中添加的记录,其语法格式如下:

Rs.Update

Field,Val

其中Field是可选项,可以为记录字段的名称或一组记录的名称;Vals也是可选项,为新记录中的字段值或者一组字段的值。

3、删除记录

下面是删除用户指定记录的代码:

'创建ADODB.Connection对象

Set

Conn=Server.Createobject("Adodb.Connection")

'依据连接的数据库设置连接字符串

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data Source="&Server.MapPath("oa.mdb")

Conn.Open

'打开与数据库的连接

Set

rs=Server.CreateObject("ADODB.Recordset")

'获取用户指定的记录序号

ID1=Reqst.Qry("ID")

Dim

Sql

'设置查询该记录的SQL语句

sql="SELECT * FROM [Group_Info] WHERE

[ID]="&ID1

'查询记录

rs.Open

sql.,Conn,adOpenKeyset,,adCmdTable

rs.Delete

'删除查询记录集中的记录

rs.Update

'更新数据库

rs.close

Set

rs=Nothing

Conn.Close

Set

Conn=Nothing

%>

记录主要使用Delete()方法实现,其语法格式如下:

Rs.Delete

AffectRecords

其中Rs为Recordset对象实例,AffectRecords参数指定操作所影响的记录数目,常用的常量值如表13-13所示。

表13-13

AfferRecords参数的常用常量值常量

说 明

AdAffectCurrent

默认值,仅删除当前记录

AdAffectGroup

删除满足Filter属性设置记录

adAffectAll

删除所有记录

adAffectAllChapters   删除所有子记录

13.3.4

跳转到指定记录

Recordset对象提供的方法和属性既可以实现分页显示的功能,也可以实现跳转页面的功能。下例跳转到指定记录或第1条和最后一条目录,其界面如图13-17所示。

该例的实现流程如下:

(1)连接数据库。

(2)获取操作类型。

(3)查询数据库中的表。

(4)依据操作类型设置记录指针。

(5)判断指针是否到尾记录,是,则转(7).

(6)显示记录信息

(7)结束。

1、连接数据库代码如下:

Set

Conn=Server.Createobject("Adodb.Connection")

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_

"Data

Source="&Server.MapPath("user.mdb")

Conn.Open

%>

2、获取操作类型

在本例中,变量action标识操作类型。Action值为“First”,表示将记录指针移动到首记录:为“Last”,表示将记录指针移动到尾记录;为“1”,表示将记录向前,或向后移动指定数目的指针,获取操作类型的代码如下:

action=Trim(Reqst,QryString("action"))

%>

查询表的代码如下:

sql="select

* from Goods"

'设置查询表的SQL语句

Set rs=Conn.Exectute(sql)

'执行该查询并将结果输出到rs记录集中

%>

依据操作类型显示记录的代码如下:

'下面输出所有的记录,使用recordset对象的属性判断记录访问是否结束

Do

while not rs.Eof

If action="First"

Then

'将记录指针移动到首记录

rs.MoveFirst

'将action赋值为空,否则会每次死循环状态

action="";

ElseIf

action=“Last” then

'将记录指针移动到尾记录

rs.MoveLast

action=""

ElseIf IsNumeric(action)

Then

'获取用户输入的字符并转换成数字

Action=Cint(reqst.Form("T1"))

'将记录指针向前或向后移动指定的数目

rs.Move action

action=""

else

'向后移动一个记录

rs.MoveNext

End If

If not rs.EOF Then

Response.write rs("Name")&"

"

Loop

%>

代码说明如下:

?

该段代码使用了Recordset对象的MoveFirst()、MoveLast()、MoveNext()和Move()方法移动记录指针。

?

MoveFirst()方法把Recordset对象的记录指针移动到第1条记录。使用该方法时,CursorType属性只能为adOpenForwardOnly,其语法格式如下:

Rs.MoveFirst

其中rs为Recordset对象实例。

?

MoveLast()方法把Recordset对象的记录指针移动到最后一条记录。如果Recordset对象不支持书签功能,执行时会出现错误。其语法格式如下:

Rs.MoveLast

?

MoveNext()方法把Recordset对象的记录指针移动到下一条记录。

? Move()方法把记录指针向前或者向后移动指定的数目。

?

使用Recordset对象的EOF属性判断访问是否结束。Recordset对象还有一个类似属性BOF,该属性用来标识记录指针是否移动到首条记录之前。

3、交互界面

交互界面包含两个链接,一个文本框和两个按钮,实现代码如下:

首记录    尾记录

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值