存储过程和二进制存储.ppt
Version 3.0第七章第七章存储过程和二进制存储存储过程和二进制存储回顾回顾使用使用WordWord应用程序、文档对象实现桌面文档交互;应用程序、文档对象实现桌面文档交互;使用使用 ExcelExcel工作簿、工作表对象实现文档自动化;工作簿、工作表对象实现文档自动化;ApplicationApplication、DocumentDocument、WorkBookWorkBook、WorkSheetWorkSheet对对象象的属性、方法及使用;的属性、方法及使用;WordWord自定义宏及自定义设置;自定义宏及自定义设置;在在VBEVBE中使用应用程序、文档、工作簿和工作表对象;中使用应用程序、文档、工作簿和工作表对象;在在VBEVBE中进行宏代码的编写和文档控制;中进行宏代码的编写和文档控制;使用使用WithEventsWithEvents引用引用ApplicationApplication对象的事件;对象的事件;自定义文档模板及操作;自定义文档模板及操作;2 2目标目标了解了解ADOADO对象模型;对象模型;使用使用 ADO ADO 命令对象访问数据库的存储过程;命令对象访问数据库的存储过程;理解和掌握二进制文件的磁盘读写操作;理解和掌握二进制文件的磁盘读写操作;理解二进制数据的数据库方式的存取操作;理解二进制数据的数据库方式的存取操作;3 3复习:使用复习:使用ADO ADO 访问数据库访问数据库在分布式应用程序中,主要目的是将计算任务分为在分布式应用程序中,主要目的是将计算任务分为两个部分两个部分-客户端和服务器;客户端和服务器;ADO ADO 对象提供了大多数应用程序所需的全部数据访对象提供了大多数应用程序所需的全部数据访问和操纵功能;问和操纵功能;ADOADO能能更更好好地地控控制制应应用用程程序序如如何何与与数数据据源源交交互互,使使用用它它我我们们可可以以创创建建功功能能更更加加强强大大且且更更加加灵灵活活的的应应用用程序;程序;在创建在创建 ADO ADO 对象之前,必须引用对象之前,必须引用 ADOADO对象库;对象库;4 4事务和事务处理事务和事务处理 3-1被视为单一工作单元并标记特定功能的完成的处被视为单一工作单元并标记特定功能的完成的处理步骤序列称为理步骤序列称为“事务事务”;事务处理有助于将对数据库执行的一组修改、添事务处理有助于将对数据库执行的一组修改、添加或删除操作作为一个活动进行处理;加或删除操作作为一个活动进行处理;所有事务均具有所有事务均具有 ACID 属性属性5 5事务和事务处理事务和事务处理 3-2Atomicity(原子性):此属性可确保在特定事务中完原子性):此属性可确保在特定事务中完成的所有修改均成为永久性的成的所有修改均成为永久性的Consistency(一致性):此属性可确保在特定事务中一致性):此属性可确保在特定事务中完成的修改不会影响系统的一致状态完成的修改不会影响系统的一致状态Isolation(隔离性):此属性可确保处理并发事务时隔离性):此属性可确保处理并发事务时各事务不会相互干扰各事务不会相互干扰Durability(持久性):此属性可确保已提交的对托管持久性):此属性可确保已提交的对托管资源(例如,数据库记录)的修改能够经受失败资源(例如,数据库记录)的修改能够经受失败6 6ADO设置隔离级别设置隔离级别ADO 应用程序将应用程序将 Connection 对象的对象的 IsolationLevel 属性设置为属性设置为 adXactReadUncommitted、adXactReadCommitted、adXactRepeatableRead 或或 adXactReadSerializable。7 7事务和事务处理事务和事务处理 3-3Public Function ExecuteSQL()As BooleanOn Error GoTo ON_ERROR g_DBCon.BeginTrans g_DBCon.Execute(UPDATE ABC SET A=001 WHERE A=003)g_DBCon.Execute(UPDATE ABC SET B=002 WHERE B=001)g_DBCon.Execute(UPDATE ABC SET C=003 WHERE C=002)g_DBCon.CommitTrans ExecuteSQL=True Exit FunctionON_ERROR:g_DBCon.RollbackTrans MsgBox 错误代码:错误代码:&Err.Number&vbCrLf&_错误描述:错误描述:&Err.Description,vbCritical+vbOKOnly,连接错误连接错误End Function8 8ADOADO对象模型对象模型 2-1 2-19 9ADOADO对象模型对象模型 2-2 2-2ADO 对对象模型包括下列象模型包括下列对对象:象:-Connection-Command-Error-Field-Parameter-Property-Recordset1010使用使用COMMANDCOMMAND对象访问数据库对象访问数据库使用使用 Command 和和 Recordset 对象之前,首先需要对象之前,首先需要使用使用 Connection 对象与数据库建立连接;对象与数据库建立连接;可以使用可以使用 Command 来来查询查询数据数据库库以及以及访问访问从从该该 数数据据库库返回的返回的记录记录集集;如果要如果要执执行行带带参数的存参数的存储过储过程和程和SQL命令,需要使命令,需要使用用 Command 对对象;象;1111ADOADO的的Parameter Parameter 对象对象通过使用存储过程中的参数可以多次重用同一存储通过使用存储过程中的参数可以多次重用同一存储过程在数据库中搜索所需信息;过程在数据库中搜索所需信息;参数可以代替常量,但是,它无法代替表名、列名参数可以代替常量,但是,它无法代替表名、列名或其他任何数据库对象;或其他任何数据库对象;Command 对象具有对象具有 Parameters 集合。此集合。此 Parameters 集合由集合由 Parameter 对象组成;对象组成;Parameter 对象实际表示与基于带参数的查询或存储对象实际表示与基于带参数的查询或存储过程的过程的 Command 对象相关的参数;对象相关的参数;1212ADOADO的的ParametersParameters集合对象集合对象Parameters 集合由使用集合由使用 CreateParameter 方法创建的方法创建的Parameter 对象组成;对象组成;Parameter 对象表示与基于查询或存储过程的对象表示与基于查询或存储过程的Command 对象相关联的参数可以使用对象相关联的参数可以使用 Append 和和 CreateParameter 方法将参数添加到方法将参数添加到 Parameters 集合,集合,语法如下:语法如下:CommandObject.Parameters.Append object1313使用使用CommandCommand对象访问存储过程对象访问存储过程Dim cmd As New ADODB.CommandDim paraname As ADODB.ParameterSet cmd.ActiveConnection=COncmd.CommandText=Namelookupcmd.CommandType=adCmdStoredProcSet paraname=cmd.CreateParameter(startletter,adChar,adParamInput,1)cmd.Parameters.Append paranamecmd(startletter)=ASet rs=cmd.Execute1414二进制文件的磁盘存储二进制文件的磁盘存储 4-1根据文件包含的数据类型,需要使用相应的文件访根据文件包含的数据类型,需要使用相应的文件访问类型来访问该文件;问类型来访问该文件;二进制文件包含一些编码信息,这些编码信息需根二进制文件包含一些编码信息,这些编码信息需根据创建该文件的应用程序进行解释;据创建该文件的应用程序进行解释;可以使用随机文件访问或二进制文件访问方法访问可以使用随机文件访问或二进制文件访问方法访问二进制文件;二进制文件;1515通通过过使用二使用二进进制制访问访问方法方法对对文件文件执执行操作,可以行操作,可以维维持持对对文件的完全控制;文件的完全控制;要要对对文件文件执执行任何行任何读读取或写入操作,取或写入操作,请请首先通首先通过过指定适当的指定适当的访问访问模式打开模式打开该该文件;文件;用于打开文件的用于打开文件的语语法:法:语法如下:语法如下:Open For Binary As 二进制文件的磁盘存储二进制文件的磁盘存储 4-21616打开文件后,可以使用打开文件后,可以使用 Put Put 语句将变量中的数据写入该文语句将变量中的数据写入该文件。件。Put Put 语句的语法如下:语句的语法如下:Put#filenumber,recnumber,varname 要读取使用要读取使用 Put Put 语句存储在文件中的数据,可以使用语句存储在文件中的数据,可以使用 Get Get 语句。语句。Get Get 语句语法如下:语句语法如下:Get#filenumber,recnumber,varname 二进制文件的二进制文件的磁盘存储磁盘存储 4-31717ADO ADO 提供了一种名为提供了一种名为 AppendChunkAppendChunk()()的方法,通的方法,通过该方法,可以将二进制文件中的数据追加到数据过该方法,可以将二进制文件中的数据追加到数据库表中;库表中;ADO ADO 提供了一种名为提供了一种名为 GetChunk GetChunk 的方法,可用于从的方法,可用于从二进制数据字段对象中检索二进制数据;二进制数据字段对象中检索二进制数据;与与 AppendChunk AppendChunk 方法相似,方法相似,GetChunk GetChunk 方法可以检方法可以检索部分数据而不必完整地检索数据;索部分数据而不必完整地检索数据;二进制文件的二进制文件的数据库存储数据库存储 4-11818二进制文件的二进制文件的数据库存储数据库存储 4-21919二进制文件的二进制文件的数据库存储数据库存储 4-3演示实现二进制数据存储的代码演示实现二进制数据存储的代码2020二进制文件的二进制文件的数据库存储数据库存储 4-42121总结总结ADOADO提供了层次化的对象模型,在设计自己的对象模提供了层次化的对象模型,在设计自己的对象模型的时候,这中思路可以提供参考;型的时候,这中思路可以提供参考;ADOADO中的中的CommandCommand对象,可以用来执行带参数的对象,可以用来执行带参数的SQLSQL和和访问数据库存储过程;访问数据库存储过程;二进制文件操作与文本文件操作大体一致,但在关二进制文件操作与文本文件操作大体一致,但在关键词的使用少有一些差别;键词的使用少有一些差别;可以使用可以使用AppendChunkAppendChunk和和GetChunkGetChunk方法访问数据库的方法访问数据库的二进制数据,但是,同时也可以使用二进制数据,但是,同时也可以使用ByteByte数组,进数组,进行内存对象的赋值,使得二进制数据操作与其他数行内存对象的赋值,使得二进制数据操作与其他数据类型的访问保持一致;据类型的访问保持一致;2222