📄 page11.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>访问数据库</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="Microsoft Border" content="none">
</head>
<body background="../../images/exptextb.jpg">
<!-- Spidersoft WebZIP Ad Banner Insert -->
<!-- End of Spidersoft WebZIP Ad Banner Insert-->
<p><font FACE="宋体" size="3"><strong>访问数据库</strong></font></p>
<p><font FACE="宋体" SIZE="2">ActiveX Data Objects (ADO)
是一项容易使用并且可扩展的将数据库访问添加到 Web
页的技术。可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open
Database Connectivity (ODBC) 兼容的数据库和 OLE DB
兼容的数据源。如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现
ADO
命令语句并不复杂而且容易掌握。同样地,如果您是一个经验丰富的数据库编程人员,您将会正确认识
ADO 的先进的与语言无关性和查询处理功能。</p>
<p><strong>创建 ODBC DSN 文件</strong></p>
<p>在创建数据库脚本之前,必须提供一条使 ADO
定位、标识和与数据库通讯的途径。数据库驱动程序使用 Data Source
Name (DSN) 定位和标识特定的 ODBC 兼容数据库,将信息从 Web
应用程序传递给数据库。典型情况下,DSN
包含数据库配置、用户安全性和定位信息,且可以获取 Windows NT
注册表项中或文本文件的表格。</p>
<p>通过 ODBC,您可以选择希望创建的 DSN 的类型:用户、系统 或
文件。用户和系统 DSN 存储在 Windows NT 注册表中。系统 DSN
允许所有的用户登录到特定的服务器上去访问数据库,而用户 DSN
使用适当的安全身份证明限制数据库到特定用户的连接。文件 DSN
用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制
DSN
文件,可以轻易地从一个服务器转移到另一个服务器。由于以上原因,本主题中的示例将使用文件
DSN。</p>
<p>通过在 Windows 的“开始”菜单打开“控制面板”,您可以创建基于
DSN 的文件。双击“ODBC”图标,然后选择“文件 DSN”属性页,单击“添加”,选择数据库驱动程序,然后单击“下一步”。按照后面的指示配置适用于您的数据库软件的
DSN。</p>
<p><strong>配置 Microsoft Access 数据库的文件 DSN</strong></p>
<p>在“创建新数据源”对话框中,从列表框选择“Microsoft Access Driver”,然后单击“下一步”。
</p>
<p>键入您的 DSN 文件名,然后单击“下一步”。 </p>
<p>单击“完成”创建数据源。 </p>
<p>在“ODBC Microsoft Access 97
安装程序”对话框中,单击“选择”。选择 Microsoft Access 数据库文件
(*.mdb),然后单击“确定”。 </p>
<p>注意 由于性能和可靠性的原因,我们极力推荐您使用“客户-服务器数据库引擎”配置由这样一种
Web 应用程序驱动的数据,这些 Web 应用程序必须满足 10
个以上的用户的同时访问。尽管 ASP 可以使用任何 ODBC
兼容的数据库,但它是为使用客户-服务器数据库而设计的,而且经过了严格的测试,这些数据库包括
Microsoft ? SQL Server、Oracle 等。 </p>
<p>ASP 支持共享文件数据库(如 Microsoft ? Access 或 Microsoft ? FoxPro)作为有效的数据源。尽管在
ASP
文档中的一些示例使用共享文件数据库,但我们建议只将此类数据库引擎用于开发或有限的配置方案。共享文件数据库可能无法很好地适用于可满足高需求、高质量的
Web 应用程序的客户-服务器数据库。</p>
<p> </p>
<p><strong>配置 SQL Server 数据库文件 DSN</strong></p>
<p>注意
如果数据库驻留在远程服务器上,请与服务器管理员联系,获取附加的配置信息;下面的过程使用
SQL Server 的 ODBC 默认的设置,它可能不适用于您的硬件配置。</p>
<p>在“创建新数据源”对话框中,从列表框中选择“SQL Server”,然后单击“下一步”。
</p>
<p>键入 DSN 文件的名称,然后单击“下一步”。 </p>
<p>单击“完成”创建数据源。 </p>
<p>键入运行 SQL 服务程序的服务器的名称、登录 ID 和密码。 </p>
<p>在“创建 SQL Server
的新数据源”对话框中,在“服务器”列表框中键入包含 SQL Server
数据库的服务器的名称,然后单击“下一步”。 </p>
<p>选择验证登录 ID 的方式。 </p>
<p>如果要选择 SQL 服务器验证,请输入一个登录 ID
和密码,然后单击“下一步”。 </p>
<p>在“创建 SQL Server
的新数据源”对话框中,设置默认数据库、存储过程设置的驱动程序和
ANSI
标识,然后单击“下一步”。(要获取详细信息,请单击“帮助”。)
</p>
<p>在对话框(同样名为“创建 SQL Server
的新数据源”)中,选择一种字符转换方法,然后单击“下一步”。
(详细信息,请单击“帮助”。) </p>
<p>在下一个对话框(同样名为“创建 SQL Server
的新数据源”)中,选择登录设置。 </p>
<p>注意 典型情况下, 您只能使用日志来调试数据库访问问题。</p>
<p>在“ODBC Microsoft SQL Server
安装程序”对话框中,单击“测试数据源”。如果 DSN
正确创建,“测试结果”对话框将指出测试成功完成。 </p>
<p><strong>SQL server 连接和安全信息</strong></p>
<p>如果您正在开发用于连接远程 SQL Server 数据库的 ASP
数据库应用程序,应考虑以下问题:</p>
<p>连接方案- 您可以选择 TCP/IP 套接字和命名管道的方法访问远程的
SQL Server
数据库。当使用命名管道时,因为在建立连接之前,数据库用户必须被
Windows NT 确认,所以对只有适当的 SQL Server
访问身份而在该计算机上没有 Windows NT
用户帐号的用户可能会被拒绝访问命名管道。作为一种替代方案,使用
TCP/IP
套接字的连接可直接连接到数据库服务器,而不必通过使用命名管道的中间计算机。因为使用
TCP/IP 套接字连接可直接连接到数据库 server,所以通过 SQL Server
的确认,用户就可以获得访问权,而不必通过 Windows NT 的确认。 </p>
<p>注意 在连接到远程数据库时使用 TCP/IP 套接字可提高性能。</p>
<p>安全性 - 如果您使用 SQL Server 的 集成 或 混合 安全特性,并且 SQL
Server 数据库位于远程服务器上,则不能使用 Windows NT 请求/响应的确认。也就是说,不能将
Windows NT 请求/响应身份证转发到远程计算机上,而只能使用基本身份验证,它根据用户提供用户名和口令信息进行。
</p>
<p>有关这一主题的详细信息,请参阅 http://www.microsoft.com/sqlsupport/</p>
<p>上的 Microsoft SQL Server 技术支持主页。</p>
<p> </p>
<p><strong>配置 Oracle 数据库文件 DSN</strong></p>
<p>首先要确保 Oracle 用户软件被正确地安装要创建 DSN
的计算机上。详细信息,请与服务器管理员联系或参阅数据库软件文档。</p>
<p>在“创建新数据源”对话框中,从列表框中选择“Microsoft ODBC for
Oracle”,然后单击“下一步”。 </p>
<p>键入 DSN 文件的名称,然后单击“下一步”。 </p>
<p>单击“完成”创建数据源。 </p>
<p>输入用户名、密码和服务器名,然后单击“确定”。 </p>
<p>注意 DSN 文件用 .dsn 扩展名,位于 \Programs\Common Files\ODBC\Data Sources
目录中。</p>
<p>有关创建 DSN 文件的详细信息,请访问 Microsoft ODBC Web 站点:http://microsoft.com/odbc/。</p>
<p><strong>连接数据库</strong></p>
<p>访问数据库信息的第一步是和数据库源建立连接。ADO 提供 Connection
对象,可以使用该对象建立和管理应用程序和 ODBC
数据库之间的连接。Connection
对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。</p>
<p>要建立数据库连接,首先应创建 Connection
对象的实例。例如,下面的脚本创建 Connection
对象,接着打开数据库连接:</p>
<p><%</p>
<p>'Create a connection object</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>'Open a connection; the string refers to the DSN</p>
<p>cn.Open "FILEDSN=MyDatabase.dsn"</p>
<p>%></p>
<p>注意 无论在等号 (=) 之前还是之后,DSN 字符串都不能包含空格。</p>
<p>在这种情况下,Connection 对象的 Open 方法引用基于 DSN
的文件,其中包含关于数据库的位置和配置信息。也可以不引用 DSN,直接显式引用供应程序、数据源、用户
ID 和密码。有关建立连接的可选方法的详细信息,请参阅 Microsoft
ActiveX Data Objects (ADO)。</p>
<p><strong>用 Connection 对象执行查询</strong></p>
<p>用 Connection 对象的 Execute 方法,您可以发出结构化查询语言 (SQL)
查询数据库源并检索结果。SQL
是用于与数据库通讯的工业标准语言,它有许多命令可用来检索和更新信息。</p>
<p>下面的脚本使用 Connection 对象的 Execute 方法在 SQL INSERT
命令的表格中发出查询,该命令将数据插入特定的数据库表格。在下面的示例中,脚本将名称
Jose Lugo 插入名为 Customers 的数据库表中。</p>
<p><%</p>
<p>'Define file based DSN</p>
<p>strDSN = "FILEDSN=MyDatabase.dsn"</p>
<p>'Instantiate the Connection object and open a database connection</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open strDSN</p>
<p>'Define SQL SELECT statement </p>
<p>strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jose','Lugo')"
</p>
<p>'Use the Execute method to issue a SQL query to database </p>
<p>cn.Execute(strSQL)</p>
<p> </p>
<p>%></p>
<p>注意 基于 DSN 路径字符串的文件在等号(=)前后不应包含空格。</p>
<p>除了 SQL INSERT 命令以外,您也可以使用 SQL UPDATE 和 DELETE
命令更改和删除数据库信息。</p>
<p>用 SQL UPDATE
命令,您可以改变数据库表中各项目值。下面的脚本使用 UPDATE
命令将 Customers 表中每个 LastName 字段包含姓 Smith 记录的 FirstName
字段更改为 Jeff。</p>
<p><%</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open "FILEDSN=MyDatabase.dsn"</p>
<p>cn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = 'Smith'
"</p>
<p>%></p>
<p>要想从数据库表中删除特定的记录,可使用 SQL DELETE
命令。下面的脚本从 Customers 表中删除了所有姓 Smith 的行:</p>
<p><%</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open "FILEDSN=MyDatabase.dsn"</p>
<p>cn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'"</p>
<p>%></p>
<p>注意 在使用 SQL DELETE 命令时,必须谨慎从事。当使用不带 WHERE
子句的 DELETE 命令时,它将删除表中的所有行。一定要包含 SQL WHERE
子句来指定要删除的确切行。</p>
<p><strong>使用 Recordset 对象处理结果</strong></p>
<p>尽管 Connection 对象简化了连接数据库和查询任务,但 Connection
对象仍有许多不足。确切地说,检索和显示数据库信息的 Connection
对象不能用于创建脚本;您必须确切知道要对数据库作出的更改,然后才能使用查询实现更改。</p>
<p>对于检索数据、检查结果、更改数据库,ADO 提供了 Recordset
对象。正如它的名称所暗示的那样,Recordset
对象有许多您可以使用的特性,根据您的查询限制,检索并且显示一组数据库行,即记录。
Recordset
对象保持查询返回的记录的位置,允许您一次一项逐步扫描结果。</p>
<p>根据 Recordset
对象的指针类型属性设置,您可以滚动和更新记录。数据库指针可以让您在一组记录中定位到特定的项。指针还用于检索和检查记录,然后在这些记录的基础上执行操作。Recordset
对象有一些属性,可用于精确地控制指针的行为,提高您检查和更新结果的能力。例如,您可以使用
CursorType 和 CursorLocation
属性设置指针的类型,将结果返回给客户端应用程序(结果通常保留在数据库服务器上)并显示其他用户对数据库的最后一次更改。有关配置
Recordset 对象指针的信息,请参阅 Microsoft ActiveX Data Objects (ADO)。</p>
<p><strong>检索记录</strong></p>
<p>一个成功的数据库应用程序都使用 Connection 对象建立链接并使用
Recordset
对象处理返回的数据。通过“协调”两个对象的特定功能,您可以开发出几乎可以执行任何数据处理任务的数据库应用程序。例如,下面的服务器端脚本使用
Recordset 对象执行 SQL SELECT 命令。SELECT
命令检索一组基于查询限制的信息。查询也包含 SQL WHERE
子句,用来缩小查询的范围。此例中,WHERE 子句将查询限制为所有的
Customers 数据库表中包含的姓 Smith 的记录。</p>
<p><%</p>
<p>'Establish a connection with data source </p>
<p>strDSN = "FILEDSN=MyDatabase.dsn" </p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open strDSN</p>
<p>'Instantiate a Recordset object</p>
<p>Set rsCustomers = Server.CreateObject("ADODB.Recordset")</p>
<p> </p>
<p>'Open a recordset using the Open method</p>
<p>' and use the connection established by the Connection object</p>
<p>strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith'
"</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -