第八章 SQL Server 系统应用实例

更新时间:2024-04-27 13:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第8章 SQL Server 系统应用实例

8.1 SQL Server 2000应用程序接口

8.1.1 SQL Server 2000应用程序接口概述 8.1.2 ODBC应用程序接口 8.1.3 OLE DB通用数据访问接口 8.1.4 ADO对象

8.2 在VB中使用ADO对象开发SQL Server应用程序

8.2.1 使用ADO对象访问SQL Server 数据库 8.2.2 数据库应用程序实例-——教学管理系统 8.3 基于Web的SQL Server应用系统开发

8.3.1 Web数据库应用概述 8.3.2 ASP技术

8.4 Web数据库开发实例——教学管理系统

8.4.1 系统简介 8.4.2 程序代码与说明

本章主要内容在实际应用环境中,使用企业管理器和查询分析器访问数据库中的数据往往是数据库管理员,大部分的用户还是通过程序员开发的各种应用程序间接访问SQL Server数据库。 SQL Server具有优秀的数据库管理性能,但它并不具备图形用户界面的设计功能,因此不能满足客户端用户数据连接和数据操作的要求。SQL Server在数据库应用中一般作为应用系统的后端,而前端图形界面的设计与操作一般使用可视化开发工具,如Visual Basic、Delphi、PowerBuilder等来完成。如果需要将数据和应用程序在网上发布,可使用ASP、ASP.NET、PHP等来实现。 本章重点1、VB前台语言,SQL Server建立数据库,设计《教学管理系统》 2、ASP前台语言,SQL Server2000后台,设计《教学管理系统》 本章难点ADO对象的应用 授课方法讲授+实验+作业 学时:8课时 授课过程如下:

8.1 SQL Server 2000

应用程序接口 :数据库应用程序通过SQL Server 2000应用程序接口向SQL Server服务器发送SQL语句,实现数据库的访问。要编写SQL Server 2000数据库应用程序,必须学习使用SQL Server应用程序接口。

8.1.1 SQL Server 2000应用程序接口概述

SQL Server 2000提供了丰富的应用程序接口,使程序员可以快速地开发数据库应用程序。下面我们介绍SQL Server常用的应用程序接口。

1、嵌入式SQL

嵌入式SQL语言就是将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言(例如C语言)语句混合使用。

嵌入式SQL的操作过程如下:

使用SQL Server的预编译程序将嵌入的SQL语句转换为能被程序设计语言的编译器识别的函数调用;

使用程序设计语言的编译器对转换后的文件进行编译,然后连接为可执行程序,即可执行。

2、ODBC开放数据库连接

ODBC是Open Database Connectivity的缩写,称为开放数据库系统互连,是微软公司在90年代初开发和定义的一套数据库访问标准,用于访问关系型数据库。使用ODBC开发的应用程序可以访问多种数据库管理系统的数据库,例如SQL Server、Oracle和DB2等。

3、OLE DB通用数据访问接口

OLE DB是微软90年代后期开发的数据访问通用接口,它不仅提供了对关系型数据库的访问, 还提供了对各种各样数据源的访问,例如Excel电子表格、dBase的ISAM文件、电子邮件等。

4、JDBC Java数据库接口 JDBC(Java DataBase Connectivity)是由SUN公司制定的基于Java语言的数据库访问接口,用于实现Java程序访问SQL Server 2000数据库,该接口程序未包含在安装盘中,需到微软公司的网站上下载。

8.1.2 ODBC应用程序接口

ODBC是微软公司在90年代初期开发的一种数据库应用程序接口,用于访问关系型数据库,使用ODBC开发的应用程序可以访问多种数据库管理系统的数据库,例如SQL Server、Oracle和DB2等。

ODBC由一组具有精确定义的函数组成,称ODBC API函数,用来对数据库进行操作。在应用程序中,可以直接使用这些函数,而数据库的底层操作由各个数据库的驱动程序来完成。由于ODBC对数据库应用程序具有良好的适应性和可移植性,所以ODBC在推出后就得到了广泛的应用。

1、ODBC

SQL Server 2000 包含本机SQL Server ODBC 驱动程序,可由 ODBC 应用程序用于访问 SQL Server 中的数据。在 SQL Server 2000 中,除 isql 外的所有其它 SQL Server 实用工具也都使用 ODBC API 和 SQL Server ODBC 驱动程序。

2、ODBC体系结构

ODBC数据库应用程序由应用程序、驱动程序管理器、驱动程序和数据源4个部分组成,如图所示。

数据库应用程序 驱动程序管理器 SQL Server 驱动程序 Oracle 驱动程序 FoxPro 驱动程序 DB2 驱动程序 SQL Server 数据源

Oracle 数据源 FoxPro 数据源 DB2 数据源 应用程序执行处理并调用ODBC函数。其主要任务如下: 连接数据库

提交SQL语句给数据库 检索结果并处理错误

提交或者回滚SQL语句的事务 与数据库断开连接

3、驱动程序管理器

ODBC驱动程序管理器是一个驱动程序库,负责应用程序和驱动程序间的通信。对于不同的数据库系统,驱动程序管理器将加载相应的驱动程序到内存中,并将后面的SQL请求传送给正确的ODBC驱动程序。

ODBC应用程序不能直接存取数据库,应用程序的操作请求需要由驱动程序管理器提交给正确的驱动程序。而驱动程序负责将对数据库的请求操作传送到数据库管理系统(DBMS),并把结果返回给驱动程序管理器。然后驱动程序管理器再将结果返回给应用程序,由应用程序处理,并处理错误信息。

Applet的安全机制

SERVER connectio浏览器 本地程序 下载applet appletfile SERVER connectio 与applet无关本机 本地方4、数据源 数据源(Data Source Name. DSN)是连接数据库驱动程序与数据库管理系统(DBMS)的桥梁,它定义了数据库服务器名称、访问的数据库、登录名称和密码等选项。

数据源分为3类:文件数据源、系统数据源和用户数据源,最常用的是系统数据源。通常,应用程序是通过数据源名来访问数据库。

概括地说,使用ODBC进行编程之前,要先安装相应的ODBC驱动程序,再配置ODBC数据源。ODBC 数据源包括以不同的格式存储的数据,而不仅仅是 SQL 数据库中的数据。应用程序使用 ODBC 驱动程序访问数据源。

ODBC 驱动程序是一个动态链接库 (DLL),它接受对 ODBC API 函数的调用并采取任何必要的操作来处理对数据源的请求。

5、配置ODBC数据源

使用ODBC编程之前,要先安装相应ODBC驱动程序,再配置ODBC数据源。通常,SQL Server 2000 ODBC驱动程序已经内嵌在WINDOWS操作系统中。下面,我们仍然以教学数据库(teachdb)为例来介绍配置SQL Server 的ODBC数据源,数据源名为“教学”,

操作步骤:

(1)在控制面板中,单击“管理工具”,然后执行“数据源(ODBC)”命令,打开“ODBC数据源管理器”对话框,如图8-2所示。

ODBC驱动 程序 数据 源名 图8-2 ODBC数据源管理器

该窗口用来设置ODBC数据源及其驱动程序等。各主要选项卡的功能如下: ? 用户DSN 显示了当前登录用户使用的数据源清单。

? 系统DNS 显示了可以由系统中全部用户使用的系统数据源清单。 ? 文件DNS 显示了允许连接到一个文件提供程序的数据源清单。

? 驱动程序 显示了所有已经安装的各种数据库系统的ODBC驱动程序。

(2)在选项卡中,单击按钮,打开“创建新数据源”对话框,在“名称”列表框中选 择SQL Server,如图8-3所示。

SQL Server ODBC驱动程序 图8-3 “创建新数据源”对话框

(3)单击按钮,打开“建立新的数据源到SQL Server“对话框,如图8-4所示。在“名称”文本框中输入新数据源的名称,如:教学。在“说明”文本框中输入对该数据源的说明,然后在“服务器”下拉列表框中选择要连接到的服务器如:DBSERVER。

图8-4 “建立新的数据源到SQL Server”对话框

(4)单击按钮,系统提示选择验证模式,如图8-5所示。

图8-5 选择验证模式

选项,并输入登录ID和密码。

在此选择

(5)单击按钮,系统提示用户设置默认数据库等选项,如图8-6所示。

在此,更改默认数据库为教学数据库teachdb。

图8-6 设置连接的默认数据库

(6)保持其余默认设置,单击按钮,系统提示用户设置驱动程序使用的语言,字符集区域设置和日志文件等,如图8-7所示。

图8-7 设置驱动程序使用的语言、字符集等

(7)单击按钮,出现“ODBC Microsoft SQL Server安装”对话框,如图8-8所示。其中显示了新数据源的配置选项。

测试数据源 图8-8 “ODBC Microsoft SQL Server安装”对话框

(8)单击按钮,打开“SQL Server ODBC数据源测试”对话框,

按钮,

其中显示了SQL Server 的驱动程序版本号,并显示测试是否成功的消息。单击可返回到“ODBC Microsoft SQL Server安装”对话框。 (9)单击

按钮,即可创建一个新的数据源。

Applet的主要方法 构造方法 init() start() 完成Applet的初始化操作 被激活前都是在Applet执行的,因此不能用它们来实现Applet的功能 8.1.3 OLE DB 数据访问接口 OLE DB是微软在90年代后期采用面向对象技术开发的数据访问通用接口,它创建于微软的OLE(对象的链接与嵌入)技术基础上。 OLE DB的优点是可以和任何Visual Studio产品协同工作,例如Visual C++,Visual Basic等。它的推出,得到了广泛的支持。

可以直接使用OLE DB 进行数据库应用程序开发,为了使用户方便地使用OLE DB开发数据库应用程序,微软将OLE DB API封装在一个简化了的基于组件(COM) 技术的对象模型ADO(ActiveX Data Objects)中,通过ADO,程序员可以快速地开发数据库应用程序,使用ADO是SQL Server 2000数据库应用程序开发的有效途径。

1、Applet的运行控制关系

一个使用paint()方法绘制字符串的Applet程序 Java.applet.Applet public void init() public void destroy()public void stop()public void start() public void paint(Graphics g) 2、OLE DB 体系结构

微软定义了OLB DB的4个层次:

数据提供者 使用OLE DB SDK(软件开发工具)创建OLE DB提供者(Provider)的人。 数据消费者 访问数据库中信息的应用程序,系统驱动程序或者用户。

数据服务提供者 创建用以增强用户或者数据库管理员使用管理数据库能力的独立应用程序。例如,查询分析器就是一个数据服务提供者。

部件开发者 创建应用程序模块或部件,以减少创建数据库应用程序所需的编码工作。例

如,Visual Basic中提供的ADO控件。

关系

一般来说,数据库应用程序即OLE DB消费者是通过OLE DB用户界面和OLE DB提供者(Provider)来访问数据源,它们之间的关系如图8-9所示。

应用程序(OLE DB消费者) OLE DB界面(例如ADO等) OLE DB 提供者 数据源

对于不同的OLE DB提供者,OLE DB提供不同级别的功能,但是它们都支持一个通用的用户界面。不同的OLE DB数据源使用自己的OLE DB提供者,如图8-10所示。

ADO对象模型

ADO是一个OLE DB消费者,它封装了OLE DB复杂性,以极为简单的接口存取数据,简

化了数据库应用程序的编写,易于使用,性能好,占用内存和磁盘空间少,并且支持基于客户机/服务器的Web数据库应用程序。使用者只需在程序中建立ADO对象,设置对象相应的属性,调用相关方法,即可完成数据库访问。

ADO对象模型

ADO的对象模型为层次结构,如图8-11所示。其中每个Connection,Command,Recordset和Field对象都有集合。 Connection Errors 集合 Error Command Parameters集合 Parameter Recordset Fields集合 图8-11 ADO的对象模式

ADO提供的对象及功能

ADO提供的对象及基本功能如表8-1所示。

Field

除了上述对象外,ADO还提供了Fields、Parameters、Errors、Properties等集合对象。

主要的ADO对象 在上述众多对象中,主要的ADO对象有3个:连接对象Conection,数据查询对象Command和查询所得记录集对象Recordset。

Connection对象

Connection对象用于建立应用程序与数据源之间的通信连接。如果是网络环境下的客户端/服务器数据库系统,该对象可等价于客户机到数据库服务器的实际网络连接。在建立连接后,可通过Command对象与Recordset对象来访问数据库中数据。

Connection对象的主要属性

Connection对象的主要属性如表8-3所示。

Connection对象的常用方法

Connection对象的常用方法如表8-4所示,其中Open用于打开Connection对象,并建立连接。Excute方法常用于简单查询。对复杂的数据库操作应使用Command对象。

Recordset对象

Recordset对象(记录集对象)用于存储Connection对象和Command对象的查询结果,应用程序中再利用程序语言来处理该Recordset对象中的记录,Recordset对象主要属性见表8-5。

Recordset对象的常用方法

Recordset对象的常用方法见表8-6,其中Open用于打开Recordset对象,并对Command对象或Connetion对象加以引用。Recordset对象有11个事件,这里也不说明了。

Command对象

Command对象主要用于对数据库进行复杂查询,它的功能强大,并可运行存储过程和参数化查询。Command对象如表8-7所示。

Command对象

Command对象最常用方法是Excute方法。Excute方法用于执行SQL查询命令,并返回打开的结果集对象(Recordset)。也可以用Excute方法执行其它的数据定义命令或存储过程。

Connection,Command,Recordset虽然是3个不同的对象,但是三者之间是互相关联,分工协作的。通常,在Connection对象实现了应用程序与数据源之间的通信连接后,执行Command对象的Excute方法实现数据库查询,数据库服务器响应后,再将查询结果存入Recordset对象中。Command对象必须依赖于Connection对象,而Recortset对象要视Connection对象与Command对象的状态而定。

8.2 在VB中使用ADO对象开发SQL Server应用程序

微软在Visual Basic 6.0中成功地引入了功能强大的ADO对象作为新的数据库访问标准,它内置了SQL Server的OLE DB驱动程序。另外,为了使数据库应用程序能实现字段的绑定,Visual Basic 6.0还提供了一个封装了ADO对象的ADO Data控件,使用该控件可以开发简单的数据库访问程序,复杂的数据库访问程序的开发仍必须使用ADO对象,ADO Data控件可以起到辅助作用。

8.2.1 使用ADO对象访问SQL Server数据库

在Visual Basic 6.0中,使用ADO对象进行数据库访问有多种方式,例如: 使用Connection对象和Recordset对象配合使用,实现简单查询。

Connection对象、Recordset对象和Command对象配合使用实现复杂查询。 使用Command对象执行SQL Server的存储过程。 ADO对象的引用

在Visual Basic6.0中使用ADO对象编程之前,必须先设置对ADO类库的引用。 现以创建一个本书教学数据库teachdb的应用项目为例,其操作步骤:

(1)启动Visual Basic,创建一个新的工程,并将工程名称设置为“学生管理”,窗体名称设置为frmStudent。Caption属性设置为“学生信息”。

菜单中,执行

命令,打开“引用”对话框,如图8-12所示。

引用对话框 图8-12 ADO的对象的“引用”

(2)在“可用的引用”列表框中,找到“Microstoft Data Objects 2.6 Library”选项,并选中前面的复选框。

(3)单击

按钮,即可在Visual Basic 6.0中增加对ADO对象的引用。

菜单中,执行

如果要查看ADO提供的对象的属性、方法和集合等内容,可以在

命令,打开“对象浏览器”对话框,如图8-13所示。

在顶部的列表中选择ADODB,在侧窗格即可显示出ADO中的对象,而右侧窗格则显示出左侧窗格中选中的对象的属性、方法等。

各对象的方法、属性 ADO各对象 图8-13 “对象浏览器”浏览ADO对象

2.Connection对象、Recordset对象和Command对象配合使用实现数据查询

操作基本步骤如下:

(1)定义Connection对象、Recordset对象和Command对象。

(2)设置Connection对象的连接串ConnectionString属性,准备连接数据库。 ConnectionString属性的常用参数见表8-8所示。

表8-8 ConnectionString属性的常用参数 Provider参数 Server属性 DSN属性 Initial Catalog属性 User ID属性 Password属性 指定OLE DB提供者,缺省值是MSDASQL,指ODBC资源提供者 SQL Server服务器名,也可用数据源名 使用ODBC时,当前机器的ODBC数据源 设置连接的默认数据库,也可用DataBase参数 用户名 用户口令

(3)使用Connection对象的Open方法建立到数据源的物理连接。

(4)设置Command对象的ActiveConnection属性以便同打开的Connection对象进行关联。 (5)使用Command对象的CommandText属性定义要执行的SQL语句文本。

(6)使用Command对象的Execute方法执行命令并在需要的时候返回给Recordset对象。 (7)处理Recordset对象中的数据。 (8)关闭连接

【例8.1】 实现对教学数据库teachdb中课程表(course)的浏览和添加操作,并使新添加的课程信息在列表框中立即显示。如图8-14,图8-15所示。

操作步骤:

在VB中新建一个工程,在工程中建一窗口,名为frmCourse,标题为“课程信息”,加入下列控件,如图8-14所示。

图8-14 “课程信息”浏览界面示例 图8-15 “课程信息”插入界面示例

窗口中各控件名称及属性设置如表8-11所示。 表8-11 控件名称及属性 控件名称 类型 Caption属性 TxtC_no TxtC_name TxtC_score CmdAdd CmdList DataGrid1 文本框 文本框 文本框 按钮 按钮 数据网格(Datagrid) 添加 浏览 说明 左边为“课程号”标签 左边为“课程名”标签 左边为“学 分”标签 命令添加

其中DataGrid控件,需要在Visual Basic 6.0的菜单中运行

部件

8-17所示。

后,才可在工具箱中找到它的图标,如图8-16,

DataGrid控件 图8-16 添加“部件”对话框 图8-17 DataGrid控件

程序代码: '通用定义

Dim cn As New ADODB.Connection '定义Connection对象 Dim rs As New ADODB.Recordset '定义Recordset对象 Dim cmd As New ADODB.Command '定义Command对象 '窗体Load事件代码 Private Sub Form_Load()

cn.ConnectionTimeout = 30 '设置连接对象属性 cn.CursorLocation = adUseClient cn.ConnectionString = \Server;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdb\

cn.Open '打开连接 End Sub

'CmdAdd按钮Click事件代码 Private Sub CmdAdd_Click() Set cmd.ActiveConnection = cn

cmd.CommandText = \ALUES(?,?,?)\ '带参数的SQL语句 cmd.CreateParameter , adChar, adParamInput, 4 '参数1定义 cmd.CreateParameter , adChar, adParamInput, 10 '参数2定义 cmd.CreateParameter , adInteger, adParamInput, 4 '参数3定义 cmd.Parameters(0) = TxtC_no.Text cmd.Parameters(1) = TxtC_name.Text cmd.Parameters(2) = TxtC_score.Text cmd.Execute '运行SQL语句

cmd.CommandText = \Set rs = cmd.Execute

Set DataGrid1.DataSource = rs End Sub

'CmdList按钮Click事件代码 Private Sub CmdList_Click() Set cmd.ActiveConnection = cn

cmd.CommandText = \Set rs = cmd.Execute

Set DataGrid1.DataSource = rs End Sub 代码说明

Set cmd.ActiveConnection = cn使打开的Connection对象与Command对象关联。 cmd.CommandText = “INSERT course VALUES(?,?,?)” 带参数的SQL语句, 每个“?”代表一个参数。

cmd.CreateParameter , adChar, adParamInput, 4 定义参数的类型、长度和方向,此处定义的是字符型,长度为4字节的输入参数,用于表示“课程号”。

cmd.Parameters(0) = TxtC_no.Text 为参数赋值。

3. 使用Command对象执行存储过程 存储过程可以具有输入和输出参数。在Visual Basic中使用Command对象执行存储过程时,应当指定其输入和输出参数。

【例8.2】 在SQL Server 2000中建立一个存储过程名为Choice_Query,实现输入课程名即可显示教学数据库中选修该课程的所有学生名单信息。然后在Visual Basic中,调用该存储过程,完成相应功能。

例8-2

存储过程如图8-18所示,在Visual Basic中程序设计界面如图8-19所示。 程序代码 '通用定义

Dim cn As New ADODB.Connection '定义Connection对象 Dim rs As New ADODB.Recordset '定义Recordset对象 Dim cmd As New ADODB.Command '定义Command对象

Dim Param0 As New ADODB.Parameter 'param0 将作为存储过程输入的Parameter对象 '窗体Load事件代码 Private Sub Form_Load()

cn.ConnectionTimeout = 30 '设置连接对象属性 cn.CursorLocation = adUseClient cn.ConnectionString = https://www.bwwdw.com/plus/\Server;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdbhttps://www.bwwdw.com/plus/\

cn.Open '打开连接 Set cmd.ActiveConnection = cn

cmd.ActiveConnection = cn '为一个有效的Connection对象 cmd.CommandType = adCmdStoredProc '表明执行的是一个存储过程

cmd.CommandText = https://www.bwwdw.com/plus/\ ' Choice_Query为要执行的存储过程名 '设置输入的Parameter对象

Param0.Direction = adParamInput '表明该Parameter对象为输入参数 Param0.Type = adChar '表明该Parameter对象为字符类型 Param0.Size = 10 '输入参数的长度为6个字节

cmd.Parameters.Append Param0 '使用Append方法将Param0加入到Parameters集合中

End Sub

'CmdQuery按钮Click事件代码 Private Sub CmdQuery_Click()

Param0.Value = Text1.Text '输入参数值 Set rs = cmd.Execute '执行存储过程 Set DataGrid1.DataSource = rs End Sub

本例中通过使用Command对象和Parameter对象,实现带参数的存储过程的调用,完成复杂的数据查询。

错误处理

4. 使用Error对象进行错误处理

任何ADO对象的操作都可能会引起一个或多个OLE DB提供者错误。每个ADO对象操作错误出现时,一个或多个Error对象将被放到Connection对象的Errors集合中。当另一个ADO操作产生错误时,Errors集合将被清空,在其中放入新的Error对象集。

通过Error对象的属性可获得每个错误的详细信息。在Visual Basic中可以使用MsgBox函数来提示出现的错误信息。

8.2.2 数据库应用程序实例-教学管理系统 本实例全部采用ADO对象来进行数据库访问,

8.3基于Web的SQL Server开发

8.3.1 Web数据库应用概述

在过去的一段时间里,基于C/S(Client/Server)的网络计算机模式为实现企业级的信息共享发挥了重要的作用。但C/S模式也有弱点,如软件实现复杂度高、维护代价高、缺乏开放标准、难以跨平台运行等。随着计算机网络技术和Internet的迅速发展,特别是Web技术的兴起和普及,C/S模式正向基于Web的网络计算机体系演变,当前基于Web的计算平台已经成为网络计算平台的主流,应用也极为广泛。例如我们在网站上所见到的用户登录系统、客户留言板、论坛以及企业产品信息在网站前台的展示等等,无一不和数据库有关。有了Web和数据库的联接,也使用得人们对Web页面的更新和维护变得简单和快捷。

基于Web的计算技术采用B/C/S(Browser/Client/Server)三层结构模式,用户界面统一使用浏览器,Web服务器作为信息系统的客户机,它代表用户访问应用服务器——其中最重要的就是数据库服务器。这样,软件开发工作主要集中于服务器端应用程序,无须开发客户端应用程序。服务器端的所有应用程序都可通过Web浏览器在客户机上运行。由于各种操作系统都支持Web浏览器的运行,所以基于Web的应用可以方便地实现跨平台操作。如图8-25所示。

在基于Web的三层计算模式中,Web服务器访问数据库的技术是应用系统开发的关键。 在Web环境下操作数据库的方法有多种,较有代表性的技术是:CGI(Common Gateway Interface,公共网关接口)、Web Server API(如NSPI、ISPI)及ASP(Active Server Pages,活动服务器页面)、ASP.NET、PHP等。

这里主要介绍如何使用ASP技术来操作SQL Server数据库并进行基于Web的初级数据库开发。

ASP技术简介

1.什么是ASP

ASP(Active Server Page)是微软公司随其IIS3.0推出的一种主要用于Web服务器访问数据库的技术,它提供使用VBScript或Jscript(Microsoft的JavaScript实现)的服务器端脚本环境,可用来创建和运行动态、交互的Web服务器应用程序。

什么是ASP

ASP提供了一些内建对象,使用这些内建对象可使用脚本的功能更加强大。在ASP中还可以使用ActiveX控件扩展功能,并可使用自己定义的ActiveX控件。ASP最吸引人的是它所提供的访问数据库的能力,使用ADO对象可以很方便地与数据库建立连接和操作数据库。

什么是ASP

使用ASP时,在HTML中嵌入服务器端脚本,所形成的文件以 .asp为扩展名,这种文件称为ActiveX脚本文件。当浏览器向Web服务器请求.asp文件时,服务器端脚本将不被发送到浏览器,而是在Web服务器上执行。

通常用VBScript脚本语言编写脚本程序嵌入HTML中,也可以将HTML代码嵌入到VBScript脚本语言里。

2.ASP应用程序运行的环境――IIS/Web服务器的配置

要调试ASP脚本程序,双击该文件的图标或者在浏览器中打开该文件都是不行的,必须通过Web服务器端的处理才能在浏览器中浏览到相应的页面。实际上,Web服务器在程序执行时要扫描ASP脚本文件,执行服务器端的脚本,并将执行结果替换文件中的服务器端脚本部分,形成HTML发送到浏览器。 IIS/Web服务器的配置

ASP的执行由IIS/Web服务器来完成。要使得Web服务器执行指定的脚本,必须进行适当的配置。可以将要执行的ASP脚本配置成一个站点或者一个虚拟目录。

Windows 2000 Server以上版本(Windows 2000 Professional版需要人为添加IIS组件)自带的IIS和Windows 98的PWS都可以实现。

8.4 Web数据库开发实例——教学管理系统 8.4.1 系统简介 系统设计目标

通过本系统的开发,可以使用学生理解Web前台和后台数据库间的关系。掌握后台数据库的连接方法,以及对后台数据库中的数据进行初步的处理。通过学习本系统的设计,学生可以对SQL server 2000数据库对Web的支持有一个较透彻的了解。本系统虽简单,但已经涵盖了Web数据库的主要内容,所以大家可以在本系统的基础上进行扩展和创新,使之成为一个真正的教学管理系统。

2.数据库的准备

本系统中所使用的数据库就是教材中作为样例的teachdb数据库以及它所包含的5张表:

student,course,choice,teacher和teaching。

3.系统运行环境准备

配置IIS,新建一个Web站点,主目录指向本系统中所有程序所在的文件夹,系统的默认主文档为index.asp。

系统结构和各程序间的关系本系统共有10个程序,各程序的功能及各程序间的关系如图8-30所示。

主界面:index.asp

这是系统主程序,主要实现系统登录和学生注册。

在index.asp界面中输入学生的学号和姓名,而后在check.asp中进行验证,只有输入的学号和姓名和student表中的学号和姓名相一致,才能登录到本系统中,否则要求注册。

运行界面如图8-31所示。

//【程序清单】index.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\ CODEPAGE=https://www.bwwdw.com/plus/\

班级教学管理系统

如果您还没有注册,请先

 

2.登录验证界面:check.asp

验证输入信息,如果成功,出现各分系统的主界面,如果失败则出现要求注册的界面。 在程序中先进行后台数据库的连接,对index.asp页面上的表单信息进行接收后,到teachdb库中的表student中进行查找,如果找到即可登录成功,如果没有找到则要求注册。

例如:学号输入“101”,姓名输入“袁敏”,程序运行的结果如图8-32所示:

程序清单:check.asp

//【程序清单】check.asp <%@ Language=https://www.bwwdw.com/plus/\<%

set cn=server.createobject(https://www.bwwdw.com/plus/\cn.provider=https://www.bwwdw.com/plus/\

yyy=https://www.bwwdw.com/plus/\cn.open yyy

set rs=server.CreateObject(https://www.bwwdw.com/plus/\

‘注:以上代码是连接数据库teachdb,并生成记录集实例。 t1=request.form(https://www.bwwdw.com/plus/\ t2=request.form(https://www.bwwdw.com/plus/\

‘注:这两句是接收来自前页的表单中输入的学号和姓名。

sql=https://www.bwwdw.com/plus/\ and s_name='https://www.bwwdw.com/plus/\ set rs=cn.execute(sql) %>

<% if rs.eof=true then

response.write https://www.bwwdw.com/plus/\您还没有注册,请先注册,再登录!https://www.bwwdw.com/plus/\ else %>

<%=request.form(https://www.bwwdw.com/plus/\登录班级学习管理系统!今天是<%= date() %>

 

<% end if %>

3.学生查询系统:xscx.asp和xscxcheck.asp

单击“学生查询系统”,可以进入该系统,在系统中,可以对该班级的学生情况进行查询,查询条件可以是student表中的所有字段,例如要查所有计算机系的学生情况,如图8-33所示。

单击【确定】后,有关数据传送给

xscxcheck.asp,得到的结果如图8-34所示。

程序清单: //xscx. asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\

无标题文档

 

请输入您的查询条件(下列条件之一)

xscxcheck.asp //xscxcheck.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\<%

set cn=server.createobject(https://www.bwwdw.com/plus/\cn.provider=https://www.bwwdw.com/plus/\

yyy=https://www.bwwdw.com/plus/\cn.open yyy

set rs=server.CreateObject(https://www.bwwdw.com/plus/\ t1=request.form(https://www.bwwdw.com/plus/\ t2=request.form(https://www.bwwdw.com/plus/\ t3=request.form(https://www.bwwdw.com/plus/\ t4=request.form(https://www.bwwdw.com/plus/\ t5=request.form(https://www.bwwdw.com/plus/\

sql=https://www.bwwdw.com/plus/\s_birthday='https://www.bwwdw.com/plus/\ or s_department='https://www.bwwdw.com/plus/\

set rs=cn.execute(sql) %>

无标题文档

您要找的学生情况如下:

 

<%

response.writehttps://www.bwwdw.com/plus/\

or for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ while not rs.eof

response.writehttps://www.bwwdw.com/plus/\

for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ rs.movenext wend

response.writehttps://www.bwwdw.com/plus/\ rs.close %>

 

4.选课查询系统:

进入到选课查询系统中,输入某个学生的学号,可以查询该学生所选修的课程;输入课程号码,可以查看有哪些同学选修该门课程。程序运行结果如图8-35和图8-36所示。

xkcx.asp //xkcx.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\

无标题文档

 

请输入您的查询条件(下列条件之一)

xkcxcheck.asp //xkcxcheck.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\<%

set cn=server.createobject(https://www.bwwdw.com/plus/\cn.provider=https://www.bwwdw.com/plus/\

yyy=https://www.bwwdw.com/plus/\cn.open yyy

set rs=server.CreateObject(https://www.bwwdw.com/plus/\ t1=request.form(https://www.bwwdw.com/plus/\ t2=request.form(https://www.bwwdw.com/plus/\

sql=https://www.bwwdw.com/plus/\ or c_no='https://www.bwwdw.com/plus/\ set rs=cn.execute(sql) %>

无标题文档

response.writehttps://www.bwwdw.com/plus/\ for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ while not rs.eof

response.writehttps://www.bwwdw.com/plus/\

for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ rs.movenext wend

response.writehttps://www.bwwdw.com/plus/\ rs.close %>

 

5.教师查询系统:

进入到教师查询系统中,输入某个教师的有关资料,就可以查出该教师的基本情况。查询条件可以teacher表中所有字段。

程序运行和结果如图8-37 和图8-38 所示。

//jscx.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\

无标题文档

请输入您的查询条件(下列条件之一)

//jscxcheck.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\<%

set cn=serve https://www.bwwdw.com/plus/\

yyy=https://www.bwwdw.com/plus/\cn.open yyy

set rs=server.CreateObject(https://www.bwwdw.com/plus/\

t1=request.form(https://www.bwwdw.com/plus/\ t2=request.form(https://www.bwwdw.com/plus/\ t3=request.form(https://www.bwwdw.com/plus/\ t4=request.form(https://www.bwwdw.com/plus/\

sql=https://www.bwwdw.com/plus/\* from teacher where t_name='https://www.bwwdw.com/plus/\ or t_no='https://www.bwwdw.com/plus/\or t_sex='https://www.bwwdw.com/plus/\ or t_duty='https://www.bwwdw.com/plus/\

set rs=cn.execute(sql) %>

无标题文档

您要找的教师资料如下:

 

<%

response.writehttps://www.bwwdw.com/plus/\ for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ while not rs.eof

response.writehttps://www.bwwdw.com/plus/\

for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ rs.movenext wend

response.writehttps://www.bwwdw.com/plus/\ rs.close %>

 

6.成绩查询系统:

这个子系统的后台数据库为teachdb中的表choice。输入学号,能查询该学生所选修的各门课程的成绩;输入课程号,可以查询该门课程都有哪些人选并且能显示成绩是多少。运行过程和运行结果如图8-39和图8-40所示。

cjcx.asp //cjcx.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\

无标题文档

请输入您的查询条件(下列条件之一)

cjcxcheck.asp //cjcxcheck.asp

<%@ LANGUAGE=https://www.bwwdw.com/plus/\<%

set cn=server.createobject(https://www.bwwdw.com/plus/\cn.provider=https://www.bwwdw.com/plus/\

yyy=https://www.bwwdw.com/plus/\cn.open yyy

set rs=server.CreateObject(https://www.bwwdw.com/plus/\ t1=request.form(https://www.bwwdw.com/plus/\ t2=request.form(https://www.bwwdw.com/plus/\

sql=https://www.bwwdw.com/plus/\ or c_no='https://www.bwwdw.com/plus/\ set rs=cn.execute(sql) %>

无标题文档

您要找的资料如下:

 

<%

response.writehttps://www.bwwdw.com/plus/\ for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ while not rs.eof

response.writehttps://www.bwwdw.com/plus/\

for i=0 to rs.fields.count-1

response.write https://www.bwwdw.com/plus/\ next

response.writehttps://www.bwwdw.com/plus/\ rs.movenext wend

response.writehttps://www.bwwdw.com/plus/\ rs.close %>

 

本文来源:https://www.bwwdw.com/article/7ycg.html

Top