您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > VB程序设计基础教程第8章
魏豪明制作第8章数据库编程基础数据库基础数据库的定义8.1.1数据库基本概念数据库是以一定的组织形式存储在计算机中的相关数据集合。数据库的模型主要有层次型、网状型、关系型,其中关系型数据库是当今世界数据库的主流模型。数据库系统则是具有数据管理功能的计算机系统,是按一定的数据模型进行组织、存储、维护,并提供数据服务支持系统。比较常用的数据库有Oracle、Sybase、DB2、SQLServer、Access、VF等。魏豪明制作数据库系统的组成对数据的操作能力数据库的管理功能数据库的描述功能通常数据库管理系统具有以下功能数据库(DataBase,简称DB)数据库管理系统(DataBaseManagementSystem,简称DBMS)。魏豪明制作数据库的设计需求分析概念设计逻辑设计物理设计数据库的使用和维护魏豪明制作数据库基本术语记录数据表字段索引魏豪明制作记录集(Recordset)类型表类型(Table)动态集类型(DynaSet)快照类型(SnapShot)魏豪明制作VB数据库应用程序的组成8.1.2VisualBasic数据库体系结构用户界面Jet引擎数据库图8-1数据库应用程序的组成魏豪明制作数据库应用程序的存放图8-2客户机/服务器数据库与远程数据库的存放魏豪明制作8.2SQL语言简介8.2.1Select语句在众多的SQL命令中,Select语句应该算是使用最频繁的。Select语句主要被用来对数据库进行查询并返回符合查询标准的结果数据。Select语句的语法格式如下:selectcolumn1[,column2,etc]fromtablename[wherecondition];([]表示可选项)Select语句中位于Select关键词之后的列名,用来决定哪些列将作为查询结果返回。可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。Select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。Select语句中的where可选从句,用来规定哪些数据值或哪些行将被作为查询结果返回或显示。魏豪明制作8.2.2Insert语句SQL语言使用Insert语句向数据库表格中插入或添加新的数据行。Insert语句的使用格式如下:Insertintotablename(first_column,…last_column)values(first_value,…last_value);例如:Insertintoemployee(firstname,lastname,age,address,city)values("'wang','Ming',35,'No.11ChanganRoad','Chengdu'");魏豪明制作8.2.3Update语句SQL语言使用Update语句更新或修改满足规定条件的现有记录。其格式为:UpdatetablenameSetcolumnname=newvalue[,nextcolumn=newvalue2…]WherecolumnnameOPERATORvalue[and|orcolumnOPERATORvalue];例如:UpdateemployeeSetage=age+1Wherefirst_name='Mary'andlast_name='Williams';使用Update语句时,关键一点就是要设定好用于进行判断的Where条件从句。魏豪明制作8.2.4Delete语句SQL语言使用Delete语句删除数据库表格中的行或记录。Delete语句的格式为:DeletefromtablenameWherecolumnnameOPERATORvalue[and|orcolumnOPERATORvalue];例如:DeletefromemployeeWherelastname=May;魏豪明制作8.2.5Create语句SQL语言中的Createtable语句被用来建立新的数据库表格。Createtable语句的使用格式如下:Createtabletablename(column1datatype,column2datatype,column3datatype);如果希望在建立新表格时规定列的限制条件,可以使用可选的条件选项:Createtabletablename(column1datatype[constraint],column2datatype[constraint],column3datatype[constraint]);魏豪明制作8.2.6Drop语句在SQL语言中使用Droptable命令删除某个表格以及该表格中的所有记录。Droptable命令的使用格式为:Droptabletablename;例如:Droptableemployee;魏豪明制作8.3数据控件8.3.1Data控件图8-3创建Data魏豪明制作Data控件的常用属性1.DataBase属性2.DataBaseName属性3.RecordSource属性4.Connect属性5.RecordsetType属性6.Exclusive属性7.ReadOnly属性8.Option属性9.DefaultType属性10.EditMode属性11.BOFAction属性12.EOFAction属性魏豪明制作表8-1RecordSetType属性的3种设置值常数数值说明VbRSTypeTable0为一个表的类型RecordsetVbRSTypeDynaset1默认设置,为一个dynaset类型RecordSetVbRSTypeSnapshot2一个快照类型RecordSet魏豪明制作表8-2Option属性的设置值常数值说明dbDenyWrite1在多用户环境中一些用户不能修改RecordSet的记录dbDenyRead2在多用户环境中一些用户不能读取记录集(仅用于表类型Recordset)dbReadOnly4Recordset中的记录是不能改变的dbAppendOnly8可以在RecordSet中添加新纪录,但不能读取现有的记录dbInconsistent16可以将更新应用到Recordset的所有字段上,即使它们违反了连接条件dbConsistent32(系统默认值)更新仅应用到那些不违反连接条件的字段上dbSQLPassThrough64当在Recordsource属性中使用SQL语句的Data控件时,将此SQL语句发送给ODBC数据库,比如SQlSever或Oracle数据库来进行处理dbForwardOnly256Recordset对象只支持向前的滚动。唯一允许的移动方法是MvoveNext。此选项不能用在以Data控件操作的Recordset对象上dbSeeChanges512如果一个用户正在改变您正在编辑的数据,则会产生一个可捕获的错误魏豪明制作表8-3DefaultType属性的设置值常数值说明dbUseODBC1表示使用ODBCDirect来访问数据。此值可以使DAO通过远程数据对象(RDO)DLL来进行所有数据访问操作dbUseJet2系统默认设置,表示使MicrosoftJet数据库引擎来访问数据表8-4EditMode属性的设置值常数说明dbEditNone表示没有进行编辑操作dbEditInProgress表示Edit方法已被调用,并且当前的记录已经被复制到缓冲器中dbEditAdd表示AddNew方法已经被调用,缓冲器中的记录是一个没有被保存的新记录魏豪明制作表8-5BOFAction属性的设置值常数值说明vbBOFActionMoveFirst0MoveFirst(默认设置):将第一个记录表示为当前记录vbBOFActionBOF1BOF:在Recordset的开头移动过去将在第一个记录上触发的Data控件Validate事件,紧跟着是非法(BOF)记录上的Reposition事件。此刻禁止Data控件上的MovePrevious按钮表8-6BOFAction属性的设置值常数值说明vbEOFActionMoveLast0MoveLast(默认设置):将最后一个记录设置为当前记录vbEOFActionEOF1EOF:在Recordset的结尾移过去,将在最后一个记录上触发Data控件的Validate事件,紧跟着触发非法(EOF)记录上的Reposition事件。此刻禁止Data控件上的MoveNext按钮vbEOFActionAddNew2AddNew:移过最后一个记录将在当前记录上触发Data控件的Validate事件,紧跟着是自动的AddNew,接下来是在新记录上的Reposition事件魏豪明制作Data控件的常用事件(1)Validate事件当记录集中的记录指针发生变化、指向其他记录时,触发该事件,而且此时,激烈指针仍然还在原来的记录处。其一般格式为:PrivateSubobject_Valite([IndexAsInteger,]actionAsInteger,saveAsInteger)其中,Index是控件数组的标号;action为一整数,用来指出引发此事件的原因;save为一布尔常量,用来指定被连接的数据是否已经改变(值为True,表示被连接的数据已经改变;值为False,表示被连接的数据未被改变)。魏豪明制作(2)Reposition事件当一条记录成为当前记录之后便会引发此事件,其一般语法格式为:PrivateSubobject.Reposition([IndexAsInteger])其中,Index是控件数组的标号。当加载Data控件时,Recordset对象中的第一条记录会成为当前记录,便会引发reposition事件。使用该事件可以进行基于当前记录中数据的计算,或者改变窗体来响应当前记录中的数据。魏豪明制作Data控件的常用方法CancelUpdate方法用于将数据库中的数据重新读入到绑定在数据控件上的绑定控件里,其一般语法格式为:[对象].CancelUpdate常用方法UpdateRecord方法用于保持被连接控件的当前值,其一般语法格式为:[对象].UpdateRecord魏豪明制作8.3.2数据绑定控件属性DataChahgedDataFieldDataSource魏豪明制作8.4数据库编程对象DBEngine:Jet数据库引擎WorkSpace:可容纳一个或多个数据库的区域Database:表格的集合TableDef:表格定义QureyDef:查询定义Recordset:作为查询结果的一组记录Field:表格中的一列Index:记录的有序列表Relation:有关表格之间特定关系的存储信息8.4.1数据访问对象(DAO)魏豪明制作8.4.2远程数据对象(RDO)远程数据对象(RDO)利用ODBC连接在数据库上,可以利用Windows控制面板中的ODBC项建立与数据库的ODBC连接,然后利用RDO对象中的任何一种连接方式。RDO与DAO在设计上是平行的,如数据库引擎是rdoEngine而不是DBEngine,那么Recordset会变成rdoResultsets,TableDefs会变成rdoTables,Workspace会变成rdoEnvironments,Field对象会变成rdoColumn对象。尽管名称发生了变化,但命令组与RDO仍是相同的。与数据控件一样,远程数据控件也会访问数据库并在约束控件中显示数据。与数据控件的不同之处在于,使用远程数据控件可以访问ODBC数据源(它包括用所有流行的商业数据库程序建立的数据库)。魏豪明制作8.4.3ActiveX数据对象(ADO)连接(Connection)命令(Command)参数(Parameter)记录集(Recordset)字段(Fie
本文标题:VB程序设计基础教程第8章
链接地址:https://www.777doc.com/doc-3611537 .html