ASP数据库开发技术.ppt
11/7/2023,1,Web 程序设计,第二部分 ASP开发技术,11/7/2023,2,第五章 ASP数据库开发技术,5.1 ActiveX 数据对象组件ADO ADO组件的对象与功能(1)Connection对象:提供对数据库的连接服务。-建立并管理与远程数据库的连接(2)Command对象:定义对数据源操作的命令。-提供灵活的查询(3)Recordset对象:由数据库服务器所返回的记录集。-返回数据库查询的结果(4)Parameter对象:表示Command对象的参数。(5)Property对象:单独的一个Property对象,提供属性功(6)Error对象:提供处理错误的功能。(7)Field对象:由数据库服务器所返回的单一数据字段。,11/7/2023,3,第五章 ASP数据库开发技术,ODBC 连接技术 ODBC 连接数据库接口 ODBC 组成 ODBC API(定义数据库存取方法 提供接口 用同一方法对不 同数据库操作)ODBC 驱动程序(为每类数据库提供专用ODBC 驱动程序)ODBC 工作原理,11/7/2023,4,第五章 ASP数据库开发技术,创建一个系统DSN 通过 ODBC API 访问数据库,要建立数据源DSN(注册:ODBC 数据管理器中注册 确定DSN:确定该数据库的“系统DSN名称”)选择数据源驱动程序 创建新数据源名 选择数据库文件 添加数据源(系统DSN),11/7/2023,5,第五章 ASP数据库开发技术,5.2 用 Connection对象连接数据库Connection 组件作用(建立与管理远程数据库的连接)创建Connection对象 格式:Set Connection对象名=Server.CreateObject(“ADODB.Connection”)Connection 对象的方法 Open 方法(打开数据库 建立连接)格式:Connection对象名.Open“连接数据库信息字符串;用户帐号用户密码”.,(连接)对象(创建)方法 组件库.组件类,参数1:用DSN方法连数据库(由ODBC建立对应数据库DSN)参数2:用全路径DSN连数据库(ODBC驱动程序名,DB库名实路径),11/7/2023,6,第五章 ASP数据库开发技术,例1(用DSN方法连接数据源)例2(用全路径DSN方法连接Access AdWork.mdb数据库),建立Connection对象 Myconn,建立Connection对象 Myconn,ODBC驱动器程序名(库类型Access/SQL/Oracle),打开数据源(用全路径DSN),打开数据源(用DSN方法,由ODBC将数据库的DSN名设为Zhou),全路径DSN(映射为物理路径),11/7/2023,7,第五章 ASP数据库开发技术,Close 方法(关闭已建 Connection 对象及相关对象)格式:Connection对象名.Close.Set Connection对象名=nothing 例:Execute 方法(执行SQL指令或存储过程)格式:Connection对象名.Execute(SQL指令)Connection对象名.Execute(数据表名)例:,11/7/2023,8,第五章 ASP数据库开发技术,BeginTrans 方法(开始新事务 返回长整型数据类型)格式:Connection对象名.BeginTrans CommitTrans 方法(存储当前事务变更 并结束事务)格式:Connection对象名.CommitTrans RollBackTrans 方法(取消当前事务任何变更 并结束事务)格式:Connection对象名.RollBackTransConnection对象的属性 Attributes(运行事务控制)CommandTimeout(执行截至时间)ConnectionString(连接数据源信息),11/7/2023,9,第五章 ASP数据库开发技术,Connection 对象的属性 ConnectionTimeout(连接最长等待时间)CursorLocation(光标类型)DefauultDatabase(默认数据库名称)IsolationLevel(运行事务时机)Mode(共享数据库模式)Provider(内定数据库管理程序名称)Sate(连接状态)Version(ADO版本)*Connection对象的集合 Connection对象名.Errors(i)-运行出错 Connection对象名.Properties(i)-内部属性,11/7/2023,10,第五章 ASP数据库开发技术,5.3 用 Command 对象执行数据库操作 Command 组件作用(传递SQL指令 数据库存取操作 灵活的查询)建立 Command 对象 格式:Set Command对象名=Server.CreateObject(“ADODB.Command”)例:Command 对象属性 ActiveConnection属性-设置连接Connection对象值 CommandText属性-数据操作(SQL/存储过程/表)CommandTimeOut属性-运行超时 CommandType属性-指定库操作类型 Nane属性-对象名称 Prepared属性-预编译 State属性-对象状态,11/7/2023,11,第五章 ASP数据库开发技术,Command 对象的方法 CreateParameter 方法-创建传递参数对象 格式:Parameter对象名=Command对象名.CreateParameter(字段名,字段数据类型,参数类型,字段长度,字段初值)Execute 方法-执行SQL指令/存储过程 Set Recordset对象名=Command.Execute(RecordsAffected,Parameters,Opteions)Command.Execute RecordsAffected,Parameters,Opteions),=0 无法确定=1 输入=2 输出=3 返回值,库操作类型-1/1/2/3,访问后返回或影响的记录数,传递参数,11/7/2023,12,第五章 ASP数据库开发技术,5.4 用 Recordset 组件对象访问数据库 Recordset 组件作用(数据表存取操作 返回查询结果)建立 Recordset 对象 格式:Set Recordset对象名=Server.CreateObject(“ADODB.Recordset”)Set Recordset对象名=Connection.Execute(SQL指令)Set Recordset对象名=Connection.Execute(数据表名)例:,11/7/2023,13,例:Set Myconn=Server.CreateObject(“ADODB.Connection”)MyConn.Open“Zhou”Set MyRS=Server.CreateObject(“ADODB.Recordset”)SQL=“select*from UserTable”MyRS.Open SQL,MyConn,2,4,第五章 ASP数据库开发技术,Recordset 对象方法 Open 方法-执行向数据库提出的请求 格式:RecordSet对象名.Open SQL指令,Connection对象,RecordSet类型,锁定类型 RecordSet对象名.Open 数据表名,Connection对象,RecordSet类型,锁定类型,请求指令,当前操作,=0只读记录下移=3只读自由移=1读写自由移=2读写共自由移,=0只读=3悲观锁定=1乐观锁定=2批次乐观,打开数据表,建连接,打开库,建记录,打开表,11/7/2023,14,第五章 ASP数据库开发技术,Close 方法-关闭或释放Recordset对象 RecordSet对象名.Close Set RecordSet对象名=nothing Recordset对象的指针移动方法 MoveFirst Movelast MoveNext MovePrevious MoveNumRecord,start 引用:RecordSet对象名.指定移动方法名 Recordset对象的记录操作方法 Addnew Delete Update,11/7/2023,15,第五章 ASP数据库开发技术,CancelUpdate UpdateBatck 引用:RecordSet对象名.指定操作方法名 更新条件 Recordset 对象属性 CursorLocation属性-记录指针定位 CursorType属性-游标类型,=1 当前指针记录=2 符合Filter属性记录=3 所有记录,=2(AdUseServer)=3(AdUseClient)=4(AdUseClientBatc),=0(AdOpenForWardOnly)=1(AdOpenKeySet)=2(AdOpendyNamic)=3(AdUseClientBatc),11/7/2023,16,第五章 ASP数据库开发技术,Locktype属性-光标(锁)类型 Filter属性-数据显示方式 EditMode属性-显示编辑状态 State属性-记录对象状态 ActiveConnestion属性-连接Connestion对象 Source属性-连接Command对象(源)RecordCount属性-取记录条件 BOF属性-指针在表头 EOF属性-指针在表尾 Bookmark属性-提供指针/记录位置 MaxRecords属性-取记录最大条数 CaCheSize属性-取记录最小条数,11/7/2023,17,第五章 ASP数据库开发技术,*Command 组件与 Recordset 组件比较 创建查询子集-用Recordset方法,创建连接对象,全路径打开数据库,创建记录集对象,打开数据表 执行请求,映射实路径,SQL指令,11/7/2023,18,第五章 ASP数据库开发技术,创建查询子集-用Command方法,创建连接对象,全路径打开数据库,创建Command对象,打开数据表 执行请求,映射实路径,SQL指令,设置连接值,数据操作,11/7/2023,19,第五章 ASP数据库开发技术,Recordset 对象应用取Recordset 对象数据(记录集 读取字段值)记录集的记录移动(记录集游标 记录重定向)记录集的记录修改与记录锁定(用Recordset 对象的记录增删改方法修改记录)记录集的记录分页处理(每次读记录翻页显示 一次读记录,Recordset分页控制),11/7/2023,20,第五章 ASP数据库开发技术,5.5 Paramater 对象 Paramaters 数据集合(向存储过程传递参数)Count属性-取Paramaters数据集合中包含Paramaters对象个数 格式:LongInteger=Parameters.Count Append 方法-参数对象加入Paramaters集合 格式:Parameters.Append.Parameters 对象名 Delete 方法-删参数对象 Refresh 方法-重新取得Paramaters集合中包含所有参数对象 格式:Parameters.Refresh Iteam 方法()-取得参数对象 格式:Set 参数对象名=Parameters.Iteam(Index)格式:Set 参数对象名=Parameters.Index,11/7/2023,21,第五章 ASP数据库开发技术,Paramater 对象(记录集合中每个参数对象属性 ADO级对象)Name 属性 格式:StringName=Parameters.Name Value 属性 格式:FieldInitialValue=Parameters.Value Type 属性 格式:FieldDataType=Parameters.Type Attributes 属性 Direction 属性 Precision 属性 Size 属性 AppendChunk 方法 格式:ParameterObject.AppendChunk Data5.6 Property对象 Properties 数据集合与 Property 对象 Properties 数据集合(ADO中具有相同父对象的属性对象集合)Property 对象(保存ADO中每个对象的每个属性)Properties 数据集合引用格式:Set 集合名称=某对象名.Properties 某对象名.Properties,11/7/2023,22,第五章 ASP数据库开发技术,Properties 数据集合 Count属性-记录Properties数据集合中Property对象个数 格式:LongInteger=Properties.Count Refresh 方法-强制重新取得某属性数据 格式:Properties.Refresh Iteam 方法-取得Properties数据集合所含任一Property对象 格式:Set 参数对象名=Properties.Iteam(Index)格式:Set 参数对象名=Properties.(Index)Property 对象 Name 属性 格式:StringName=Property.Name Value 属性 格式:变量名=Property.Value Type 属性 格式:Property数据类型=Property.Type Attributes 属性 格式:LongInteger=Property.Attributes,11/7/2023,23,第五章 ASP数据库开发技术,5.7 Error对象 Errors 数据集合 与 Error对象(-Connection 对象)ADO中的错误信息处理(由Connection 对象的 Errors 数据集合管理,用Errors数据 集合和Error对象取得系统运行时发生的错误信息)Errors数据集合 Count属性-返回Errors 数据集合所含Error对象个数 格式:LongInteger=Errors.Count Clear 方法-所有Error对象个数 格式:Errors.Clear Iteam 方法-读取得Errors数据集合所含任一Error对象 格式:Set Errors对象名=Errors.Iteam(Index)格式:Set Errors对象名=Errors.(Index)Error对象(属性),11/7/2023,24,第五章 ASP数据库开发技术,Error对象(属性)Description 属性-错误说明 Number 属性-错误号 Source 属性-产生Error对象的字符串(对象类型)HelpFile 属性-帮助文件路径 HelpContext 属性-帮助信息ID值 SQLState 属性-Error对象的SQL状态*NativeError 属性-Error对象错误代码5.8 Field对象 Field对象方法 Item-返回集合的成员 Field对象属性 Count属性-集合中对象的个数,11/7/2023,25,第五章 ASP数据库开发技术,5.9 用 ADO 发布 Web 数据库实例创建和配置 ODBC 数据源 选择数据库系统,确定相应的 ODBC 驱动程序(Access Foxpro SQLServeer Oracle均有相应的 ODBC 驱动程序);为相应数据库建立数据源,确定系统DSN用 ADO 发布 Web 数据库关键步骤1 建立数据库与创建数据源 建立数据库:建立相应数据库 规划各数据表 定义表结构 存 放IIS/PWS服务器的根目录或其子目录下;建立数据源:选择“系统DSN”建数据源名 配置帐号与密码2 建立 Connection 对象,打开待访问据库 用Server对象CreateObject方法建立ADO的Connection组件对象,11/7/2023,26,第五章 ASP数据库开发技术,全路径DSN方法打开数据库:DSN方法打开数据库:3 建立RecordSet对象,打开数据表 Set MyRS=MyConn.Execute(数据表名)或 Set MyRS=MyConn.Execute(SQL指令)或 Set MyRS=Server.CreateObject(“ADODB.RecordSet”)MyRS.Open 数据表名 Connection对象名,RecordSet类型,锁 定类型 或 Set MyRS=Server.CreateObject(“ADODB.RecordSet”)MyRS.Open SQL指令 Connection对象名,RecordSet类型,锁 定类型,11/7/2023,27,第五章 ASP数据库开发技术,4 数据库各种操作 数据库的发布操作(使用SQL语句 ASP对象组件)5 关闭数据库 或 或,11/7/2023,28,第五章 ASP数据库开发技术,企业人事档案管理实例(数据库发布实例1)建立数据库与创建数据源 用 Access 数据库系统建立 company_rsgl数据库 建立数据库:建立数据库 company_rsgl,表名分别为:company_Info(职员信息表)UserID(管理员权限表)存放IIS/PWS服务器的 根目录或其子目录下(Inetpubwwwroot)。表结构为:Company_Info表结构(ID No Name Sex Age Duty Unit Work Salary Phone Address)UserID 表结构(ID UserName UserPW UserClass),11/7/2023,29,第五章 ASP数据库开发技术,企业人事档案管理表结构 Company_ Info表结构 UserID 表结构(),11/7/2023,30,第五章 ASP数据库开发技术,程序组成(主页 浏览 查询(模糊姓名/编码/职称)处理 共用 存储),一级网页(主页),二级网页(),三级网页(),结果网页(),三级网页(),11/7/2023,31,第五章 ASP数据库开发技术,“企业人事档案管理”主页(5-9-1.htm 5-9-1.ch05程序代码),一级网页(主页),超链接,11/7/2023,32,第五章 ASP数据库开发技术,“职员资料查询方式选择”主页(5-9-2.asp程序代码),超链接,二级网页,11/7/2023,33,第五章 ASP数据库开发技术,按“模糊姓名”查询(5-9-2_2.asp程序代码),三级网页,表单域隐藏,11/7/2023,34,第五章 ASP数据库开发技术,查询处理程序与结果显示(5-9-3.asp程序代码).-数据库处理部分,创建 MyConn,创建 MyRS,获取数据,11/7/2023,35,第五章 ASP数据库开发技术,各种查询处理程序(5-9-3.asp程序代码).-查询表处理部分,数据库查询,建立查询集 MyRS1,11/7/2023,36,第五章 ASP数据库开发技术,各种查询处理程序(5-9-3.asp程序代码)-结果显示部分,查询结果表格显示,11/7/2023,37,第四章 ASP技术,ASP 包含文件(公用信息“返回”按钮程序代码),