手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp编程>列表

ASP系列讲座(十六)访问数据库

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


有关创建 DSN 文件的详细信息,请访问 Microsoft ODBC Web 站点:http://microsoft.com/odbc/。

连接数据库
访问数据库信息的第一步是和数据库源建立连接。ADO 提供 Connection 对象,可以使用该对象建立和管理应用程序和 ODBC 数据库之间的连接。Connection 对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。

要建立数据库连接,首先应创建 Connection 对象的实例。例如,下面的脚本创建 Connection 对象,接着打开数据库连接:

<%
'Create a connection object
Set cn = Server.CreateObject("ADODB.Connection")
'Open a connection; the string refers to the DSN
cn.Open "FILEDSN=MyDatabase.dsn"
%>
注意 无论在等号 (=) 之前还是之后,DSN 字符串都不能包含空格。

在这种情况下,Connection 对象的 Open 方法引用基于 DSN 的文件,其中包含关于数据库的位置和配置信息。也可以不引用 DSN,直接显式引用供应程序、数据源、用户 ID 和密码。

用 Connection 对象执行查询
用 Connection 对象的 Execute 方法,您可以发出结构化查询语言 (SQL) 查询数据库源并检索结果。SQL 是用于与数据库通讯的工业标准语言,它有许多命令可用来检索和更新信息。

下面的脚本使用 Connection 对象的 Execute 方法在 SQL INSERT 命令的表格中发出查询,该命令将数据插入特定的数据库表格。在下面的示例中,脚本将名称 Jose Lugo 插入名为 Customers 的数据库表中。

<%
'Define file based DSN
strDSN = "FILEDSN=MyDatabase.dsn"

'Instantiate the Connection object and open a database connection
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strDSN

'Define SQL SELECT statement
strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jose','Lugo')"
'Use the Execute method to issue a SQL query to database
cn.Execute(strSQL)

%>
注意 基于 DSN 路径字符串的文件在等号(=)前后不应包含空格。

除了 SQL INSERT 命令以外,您也可以使用 SQL UPDATE 和 DELETE 命令更改和删除数据库信息。

用 SQL UPDATE 命令,您可以改变数据库表中各项目值。下面的脚本使用 UPDATE 命令将 Customers 表中每个 LastName 字段包含姓 Smith 记录的 FirstName 字段更改为 Jeff。

<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "FILEDSN=MyDatabase.dsn"
cn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = 'Smith' "
%>
要想从数据库表中删除特定的记录,可使用 SQL DELETE 命令。下面的脚本从 Customers 表中删除了所有姓 Smith 的行:

<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "FILEDSN=MyDatabase.dsn"
cn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'"
%>
注意 在使用 SQL DELETE 命令时,必须谨慎从事。当使用不带 WHERE 子句的 DELETE 命令时,它将删除表中的所有行。一定要包含 SQL WHERE 子句来指定要删除的确切行。

使用 Recordset 对象处理结果
尽管 Connection 对象简化了连接数据库和查询任务,但 Connection 对象仍有许多不足。确切地说,检索和显示数据库信息的 Connection 对象不能用于创建脚本;您必须确切知道要对数据库作出的更改,然后才能使用查询实现更改。

对于检索数据、检查结果、更改数据库,ADO 提供了 Recordset 对象。正如它的名称所暗示的那样,Recordset 对象有许多您可以使用的特性,根据您的查询限制,检索并且显示一组数据库行,即“记录”。 Recordset 对象保持查询返回的记录的位置,允许您一次一项逐步扫描结果。

根据 Recordset 对象的指针类型属性设置,您可以滚动和更新记录。数据库指针可以让您在一组记录中定位到特定的项。指针还用于检索和检查记录,然后在这些记录的基础上执行操作。Recordset 对象有一些属性,可用于精确地控制指针的行为,提高您检查和更新结果的能力。例如,您可以使用 CursorType 和 CursorLocation 属性设置指针的类型,将结果返回给客户端应用程序(结果通常保留在数据库服务器上)并显示其他用户对数据库的最后一次更改。

检索记录
一个成功的数据库应用程序都使用 Connection 对象建立链接并使用 Recordset 对象处理返回的数据。通过“协调”两个对象的特定功能,您可以开发出几乎可以执行任何数据处理任务的数据库应用程序。例如,下面的服务器端脚本使用 Recordset 对象执行 SQL SELECT 命令。SELECT 命令检索一组基于查询限制的信息。查询也包含 SQL WHERE 子句,用来缩小查询的范围。此例中,WHERE 子句将查询限制为所有的 Customers 数据库表中包含的姓 Smith 的记录。

<%
'Establish a connection with data source
strDSN = "FILEDSN=MyDatabase.dsn"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strDSN

'Instantiate a Recordset object
Set rsCustomers = Server.CreateObject("ADODB.Recordset")

'Open a recordset using the Open method
' and use the connection established by the Connection object
strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith' "
rsCustomers.Open strSQL, cn

'Cycle through record set and display the results
' and increment record position with MoveNext method
Set objFirstName = rsCustomers("FirstName")
Set objLastName = rsCustomers("LastName")
Do Until rsCustomers.EOF
Response.Write objFirstName & " " & objLastName & "<BR>"

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!