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 = \Server;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdb\
cn.Open '打开连接 Set cmd.ActiveConnection = cn
cmd.ActiveConnection = cn '为一个有效的Connection对象 cmd.CommandType = adCmdStoredProc '表明执行的是一个存储过程
cmd.CommandText = \ ' 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=\ CODEPAGE=\
班级教学管理系统
如果您还没有注册,请先
2.登录验证界面:check.asp
验证输入信息,如果成功,出现各分系统的主界面,如果失败则出现要求注册的界面。 在程序中先进行后台数据库的连接,对index.asp页面上的表单信息进行接收后,到teachdb库中的表student中进行查找,如果找到即可登录成功,如果没有找到则要求注册。
例如:学号输入“101”,姓名输入“袁敏”,程序运行的结果如图8-32所示:
程序清单:check.asp
//【程序清单】check.asp <%@ Language=\<%
set cn=server.createobject(\cn.provider=\
yyy=\cn.open yyy
set rs=server.CreateObject(\
‘注:以上代码是连接数据库teachdb,并生成记录集实例。 t1=request.form(\ t2=request.form(\
‘注:这两句是接收来自前页的表单中输入的学号和姓名。
sql=\ and s_name='\ set rs=cn.execute(sql) %>
<% if rs.eof=true then
response.write \您还没有注册,请先注册,再登录!\ else %>
<%=request.form(\登录班级学习管理系统!今天是