您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > VB程序设计与数据管理.
VB程序设计与数据管理浙江省定海第一中学夏祎华Windows732位VisualBasic6.0SP6Access2010软硬件环境目录二、ADO数据访问技术三、ADO对象使用实例四、ADO控件简介一、SQL查询基础SQL语言及其功能、特点SQL:StructuredQueryLanguage结构化查询语言,是对数据操作的命令集。SQL功能:可以面向数据库执行查询、从数据库取回数据、可在数据库中插入新的纪录、可更新数据库中的数据、可从数据库删除记录、可创建新数据库、可在数据库中创建新表等。其功能可归结为查询、定义、操纵和控制等几个方面:SQL功能常用语句数据查询SELECT数据定义CREATE,DROP数据操纵INSERT,DELETE,UPDATE数据控制GRANT,REVOKESELECT语句的用法SELECT[DISTINCT]目标列表达式1[AS别名][,目标列表达式2][AS别名],…FROM表名1[,表名2]…[WHERE条件表达式][GROUPBY列名1[HAVING组条件表达式]][ORDERBY列名2[ASC|DESC]];从数据库中查询数据,并以表格形式返回查询结果。多表查询一个数据库中的多个数据表之间一般都存在某种内在联系,它们共同提供有用信息。若一个查询同时涉及两个及以上的表,称之为多表查询或链接查询。两张表间有一个相同的字段,才能进行有效的多表查询。查询时列名前加表名或表别名前辍,如果字段在两个表中是唯一的可以不加。内连接查询出的是两个表满足条件的公共列共有记录。【例】在景区表、等级表中,查询北京各景区的名称、等级和评定年度。SELECTScenic.ScenicName,Grade.Grade,Grade.EvalYearFROMScenicINNERJOINGradeONScenic.ScenicId=Grade.ScenicIdWHEREGrade.Area=北京;删除数据--DELETE语句DELETEFROM表名[WHERE条件]DELETE语句的功能为删除表中指定的记录。DELETE语句对满足WHERE子句中条件的所有记录执行删除操作。省略WHERE子句,则删除表中全部记录,但表结构仍在,即DELETE语句删除的是表中的数据。DELETE语句删除部分记录【例】删除用户名为“lee”的所有记录。DELETEFROMTravelPlanWHEREUserName=lee;lee所在两条记录均被删除,记录数由4变为2。数据更新--UPDATE语句UPDATE表名SET字段1=表达式[,字段2=表达式2,……,字段N=表达式N][WHERE条件]UPDATE语句的功能是更新表中指定记录中指定字段的值。UPDATE语句对指定表中满足WHERE子句中条件的记录进行修改,具体修改内容在SET子句中设定。表达式的值必须与其对应字段的数据类型吻合。UPDATE的操作是不可逆的,即做出的修改是无法撤消的。ADO数据访问技术(一)ADO数据模型(二)Connection对象及应用(三)Command对象及应用(四)Recordset对象及应用一、ADO对象模型ADO(ActiveXDataObjects)数据库访问技术,采用OLEDB的数据访问模式。1.ADO对象模型组成三个对象成员:ConnectionCommandRecordset几个集合对象:ErrorsParametersFieldsProperties指定连接数据来源发出命令信息从数据源获取所需数据查询命令的返回的记录集访问数据源时所返回的错误信息与命令对象有关的参数记录集中某个字段的信息每个ADO对象都有一组惟一的属性,用来描述或控制对象2.ADO对象基本操作流程(1)初始化COM库,引入ADO库定义文件;(2)用Connection对象连接数据库;(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理;(4)使用完毕后关闭连接释放对象。3.引入ADO库定义文件在VisualBasic程序中使用ADO对象,必须先为当前工程引用ADO的对象库。方法:执行“工程”菜单中“引用”命令,弹出“引用”对话框,如图所示。单击“确定”选择该选项(不同环境下ADO的版本号可能不同)二、Connection对象Connection用来创建到数据库建立连接。1.常用属性ConnectionString属性,指定用于建立连接数据源的信息。【例】创建到数据库Scenic.accdb的链接。DimconnAsADODB.ConnectionSetconn=newADODB.Connectionconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DataSource=+App.Path+\Scenic.accdb“Access2003连接语句Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&App.Path&\Scenic.mdbconn.ConnectionString=Mode属性Mode属性,指定Connection对象修改数据的权限。其值如下:常量说明adModeUnknown默认值。表明权限尚未设置或无法确定adModeRead只读权限adModeWrite只写权限adModeReadWrite读写权限adModeShareDenyRead禁止其他用户使用读权限打开连接adModeShareDenyWrite禁止其他用户使用写权限打开连接adModeShareExclusive禁止其他用户打开连接adModeShareDenyNone允许其他人以任何权限打开连接State属性State属性,返回Connection对象的状态。其值如下:常量说明adStateClosed对象已关闭adStateOpen对象已打开adStateConnecting对象正在连接adStateExecuting对象正在执行命令adStateFetching正在检索对象的行2.Connection对象的常用方法Open方法,打开到数据源的连接。语法如下:Connection对象.OpenConnectionString,UserID,PassWord,Options以下参数均为可选项ConnectionString:包含连接信息的字符串。UserID:包含建立连接时所使用的用户名称。Password:字符串,包含建立连接时所用密码。Options:设置为adConnectAsync,则异步打开连接;设置为ConnectComplete当连接可用时将调用该事件。Close方法,关闭到数据源的连接。Execute方法,在连接上执行命令。Cancel方法,取消Open或Execute方法的调用如果设置了Connection对象的ConnectionString属性,Open方法就不需要设置参数了3.Connection对象应用示例【例】使用Connection对象链接到数据库Scenic.accdb。PrivateSubForm_Load()DimconnAsNewADODB.Connectionconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DataSource=+App.Path+\Scenic.accdbconn.OpenIfconn.State=adStateOpenThenMsgBox链接已打开conn.CloseIfconn.State=adstatecolsedThenMsgBox链接已关闭EndSub创建Connection对象conn链接数据库路径打开到数据库的链接判断链接的状态关闭到数据库的链接判断链接的状态三、Command对象Command对象,定义将对数据源执行的命令。命令对象在操纵数据库前需要与一个已经打开的连接对象(Connection)建立关联。1.常用属性(1)ActiveConnection属性,设置到数据源的连接信息。通过设置该属性使打开的链接与Command对象关联。(2)CommandText属性,定义命令的可执行文本。2.常用方法(1)Execute方法,执行CommandText属性指定的查询、SQL语句或存储过程。(2)Cancel方法,取消Execute方法的调用3.Command对象应用示例Command1按钮“注册”按钮事件代码PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimcmdAsNewADODB.CommandDimstrSQLAsStringconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DATASource=&App.Path&\users1.accdbstrSQL=INSERTINTOusers(username,userpsd)VALUES('&Text1&','&Text2&')cmd.CommandText=strSQLconn.OpenSetcmd.ActiveConnection=conncmd.Execute:conn.Close:Setconn=NothingEndSub四、Recordset对象Recordset对象表示从数据库返回的一系列记录的集合。一个Recordset对象由记录和列(字段)组成。通过Recordset可以对记录及组成记录的列进行各种操作。1.Recordset对象的常用属性(1)ActiveConnection属性,设置或返回Recordset对象所属的Connection对象。(2)AbsolutePosition属性,指定Recordset对象中当前记录的序号位置。(3)BOF属性,若当前的记录位置在第一条记录之前,则返回true,否则返回fasle。EOF属性,若当前记录的位置在最后的记录之后,则返回true,否则返回fasle。1.Recordset对象的常用属性(4)RecordCount属性,返回Recordset对象中记录的当前数目。(5)CursorType属性,设置或返回一个Recordset对象的游标类型。常量值说明AdOpenForwardOnly0默认值,打开仅向前类型游标,只能用MoveNext读取,打开的同时建立的数据库的备份,不能即时体现数据库记录状态,比如记录的编辑和增删。AdOpenKeyset1打开键集类型游标,可上下滚动游标,给打开的记录创建了一个关键字列表,类似记录集的描述,访问的时候才去取得数据值,就是说可以即时看到修改信息,但是不能即时得到数据是否删除的信息,因为这个关键字列表是事先初始化好的。程序中常用此类型。AdOpenDynamic2打开动态类型游标,完全可滚动游标,可得到数据的最新状态,但执行效率也会有所降低。AdOpenStatic3打开静态类型游标,完全可滚动游标,它先将数据库备份文件之后进行操作,可以断开数据库连接后继续使用。(6)LockType属性,指定打开Recordset对象使用的锁定类型,其值如下表所示。常量值说明AdLockReadOnly1默认值,只读锁AdLockPessimistic2悲观锁,操作者打开之后立即上锁,直到修改完成或者放弃修改为止,此时其他人无法编辑AdLockOptimistic3乐观锁,当记录将要被更新的时候才开始上锁,但是不能保证在提交修改之前是否有人改动过AdLockBatchOptimistic4批量乐观锁(7)Sort属性,设置排序字段。(8)Filter属性,设置Recordset对象中的筛选条件。2.Recordset对象常用方法(1)AddNew方法,创建和初始化新记录,其语法为:Recordset对象.AddNewFieldList,ValuesAddNe
本文标题:VB程序设计与数据管理.
链接地址:https://www.777doc.com/doc-2865893 .html