电脑技术学习

使用 Database Access(数据库访问)组件

dn001
ASP 的 Database Access 组件使用 ActiveX Data Objects (ADO) 提供一种轻而易举的方法,可以访问存储在数据库或其他表格式数据结构(如电子表格)中的信息,只要它们遵循 Open Database Connectivity (ODBC) 标准即可。在本课中,您将连接到一个 Microsoft? Access 客户数据库,并且显示目录列表。您将学习如何使用 SQL SELECT 语句来检索数据,并且创建一个 HTML 表格来显示结果


----------------------------------------------------------------------

识别数据库

在通过 Database Access 组件使用一个数据库之前,必须在“控制面板”的 ODBC 程序中识别这个数据库。在本例中,您将使用本教程提供的一个 Microsoft Access 数据库。;;

在运行 Web 服务器 (localhost) 的计算机上,打开“控制面板”。

双击“ODBC”图标,然后单击“系统 DSN”选项卡。;;

DSN 将告诉数据库驱动程序(用来配置数据库并与其通讯的程序)数据库文件所在的位置。您可以创建 3 种类型的 DSN: 用户 DSN (User DSN),只能对您起作用; 系统 DSN (System DSN),可以对计算机的所有用户起作用; 文件 DSN (File DSN),将 DSN 信息保存为文件,并且允许所有用户使用相同的数据库驱动程序。本教程使用的 DSN 必须是系统 DSN (System DSN) 。

单击“添加”,选择“Microsoft Access 驱动程序”,然后单击“完成”。;

在“数据源名称”框中,键入 ASPTutorial,然后单击“选择”。选择 BTCustmr.mdb 文件(默认情况下位于WINNTHelpIISHtmTutorial 目录中),然后单击“确定”。

查找文字“Tutorial Lesson - ADO Connection”,脚本将插入到找到的文字行之后。;;

必须先创建一个对象的实例,然后才能使用它。请复制并粘贴以下脚本命令:


<%

Set objConnection = Server.CreateObject("ADODB.Connection");

如果在此以前,另一个用户已经学完了教程的这一部分,那么这些脚本命令就已经在“Tutorial Lesson”注释行以下了。请用复制的脚本覆盖已有的脚本,或者将未使用过的 Database.asp 从 Template 子目录 (C:WINNTHelpiishtmtutorial/template) 复制到 Tutorial 目录中。



对于 Database Access 组件来说,您必须指定 ODBC 数据源(要从其中检索数据的数据库),方法是打开一个到数据库的连接。复制并粘贴以下脚本命令:;;

objConnection.Open "ASPTutorial"

使用 Database Access 组件的 Execute 方法,可以向数据库发送一个将结构化查询语言 (Structured Query Language, SQL) 的 SELECT 命令,并且将返回的记录保存到结果集合 (rsCustomersList) 中。请将下列脚本命令复制并粘贴到objConnection.Open 语句之后:;

SQLQuery = "SELECT * FROM Customers";;

Set rsCustomersList = objConnection.Execute(SQLQuery);;;;;

%>

如果将 SQL 查询字符串直接传递给 Execute 方法,而不是先给变量 SQLQuery赋值,就可以将这两行合并。当 SQL SELECT 行比较长时,为使脚本易读一些,可以将字符串赋值给一个变量(如 SQLQuery),然后将变量名传递给 Execut方法。;;



显示返回的结果集合

您可以将结果集合视为一个表格,这个表格的结构由 SQL SELECT 语句中的字段决定。显示检索返回的行,就象在结果集合中按行数执行循环一样简单。在本示例中,返回的数据显示在 HTML 表格行中。

在 Database.asp 文件中,查找文字“Tutorial Lesson - Display ADO Data”,将以下脚本复制并粘贴到找到的行之后:

<% Do Until rsCustomersList.EOF%>

<tr>;;;;

<td bgcolor="f7efde" align=center>;;;;

<%= rsCustomersList("ContactFirstName")%>

<%= rsCustomersList("ContactLastName") %>

</td>;;;

<td bgcolor="f7efde" align=center>;;;;

<a href="mailto:<%= rsCustomersList("ContactLastName")%>">

<%= rsCustomersList("ContactLastName")%> </a>;;;

</td>;;;

<td bgcolor="f7efde" align=center>;;;;

<%= rsCustomersList("City")%>

</td>;;;

<td bgcolor="f7efde" align=center>;;;;

<%= rsCustomersList("StateOrProvince")%>

</td>;;;

</tr>;;;

如果在此以前,另一个用户已经学完了教程的这一部分,那么这些脚本命令就已经存在了。用复制的脚本覆盖已有的脚本,或者将未使用过的 Bayshore.asp 从 Template 目录复制到 Tutorial 目录中。

当条件为“真”时,VBScriptDo...Loop 语句重复执行一段语句。被重复执行的语句可以是脚本命令或 HTML 文本和标记。因此,在循环的每次重复中,您都可以用 HTML 画出表格行,并且用脚本命令插入返回的数据。

要完成循环,还要使用 MoveNext 方法来移动行指针到下一行。因为这一语句仍然在 Do...Loop 语句中,所以它一直重复,直到到达文件结尾才停止。请复制以下脚本,并将其粘贴到“Tutorial Lesson - Retrieve Next Row”行之后:;

<%

rsCustomersList.MoveNext;;;;

Loop;;;;

%>

以纯文本格式保存 Database.asp 文件,并且退出文本编辑器。注意文件后缀 .asp 不要被文本编辑器替换。;;



若要验证您创建的 ASP 页是否正常运行,请将您的浏览器导向 http://localhost/IISHelp/IIS/Help/Htm/Tutorial/Database.asp。(此后若要返回本教程,只要在浏览器中单击“上一页”或“Back”按钮即可。)

自学参考

如果您正使用 Windows NT,要参阅更完整的 Database Access 组件示例,可以访问 Exploration Air 示范节点。单击 Behind the Scenes 图像,可以学习用来创建这个 Web 节点的脚本的更多知识。在 Bayshore Travel Web 页上也有指向 Exploration Air 示范节点的链接。;;;

注意 如果您还没有访问 Exploration Air 示范节点,上面的链接将把您带到 Exploration Air 主页。此后若要返回本教程,只要在浏览器中单击“上一页”或“Back”按钮即可。

现在,您已经用过了 ActiveX 组件,让我们来学习 模块 3:编写自己的组件。
----------------------------------------------------------------------

模块 3:编写自己的组件

请选择本课的脚本语言。

在模块 2 中,您已经熟悉了 ASP 提供的组件,现在该创建自己的组件来满足自己的特殊需要了。;;

假设您需要创建一个 ASP 程序,以便通过 Web 节点提供特定的财务功能。ASP没有直接提供这样的功能,不过您可以通过创建自己的 Java 或 ActiveX 组件来解决问题。您将在本模块中学会这些。;;;;

如果要学习如何创建并使用组件,首先使用下面的表格进行选择:;
----------------------------------------------------------------------

选择本课要创建的组件类型:;;

Visual Basic 5.0 ActiveX 组件;

Visual J++ 1.1 Java? 组件;;;
----------------------------------------------------------------------

要点;;;;

若要保存并查看您在本模块中的工作结果,需要:;;;;

对 localhost Web 服务器上的 /iishelp/iis/htm/tutorial 虚拟目录具有“写 (Write)”和“改编 Web 服务器 (Script Web server)”权限。详细信息,请参阅 设置 Web 服务器权限。;;;;

您的 Windows NT 帐号,必须在 DriveLetter:WinntSystem32Inetsrv 目录及其子目录上具有 Windows NT File System (NTFS) 的读、写和运行程序权限(此处的 DriveLetter 代表 localhost Web 服务器的适当的驱动器号,如果您没有安装到默认目录下,请用您的安装目录代替 WinntSystem32)。

要完成本模块,必须在 localhost Web 服务器上安装:;

Microsoft? Visual Basic 5.0 专业版的 32 位版本或 Visual Basic 5.0 企业版开发系统。

如果已经禁止了 Web 浏览器运行 Java 程序功能,请在开始教程以前启用该功能。

标签: