版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 VB与数据库连接数据库访问技术将数据库外部与其通信的过程抽象化,通过提供访问接口,简化了客户端访问数据库的过程。 一、数据库访问技术目前Windows系统上常见的数据库接口包括:ODBC(开放数据库互连)DAO(数据访问对象)RDO(远程数据对象)OLE DB(对象链接嵌入数据库)ADO(ActiveX数据对象) 重点掌握ODBC是微软公司开放服务结构中有关数据库的一个组成部分,建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成大部分任务。1、ODBC 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,
2、所有的数据库操作由对应的DBMS的ODBC驱动程序完成。均可用ODBC API进行访问。最大的优点是以统一的方式处理所有的数据库。应用程序ODBC API(接口)驱动程序管理器驱动程序驱动程序驱动程序数据源数据源数据源数据库数据库数据库数据源包括用户要访问的数据和与它有关的操作系统、DBMS和访问DBMS使用的网络平台。应用程序要访问一个数据库,必须选择【控制面板】|【管理工具】中的“数据源(ODBC)”管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。只要应用程序把数据源名(data source name ,DSN
3、)提供给ODBC,ODBC就能建立起与相应数据库的连接。3、DAO DAO(Data Access Object)是一组MicrosoftAccess/Jet 数据库引擎的COM自动化接口。DAO直接与Access/Jet数据库通信,通过Jet数据库引擎,DAO也可以同其它数据库进行通信, 使用DAO对Access数据库访问非常方便。RDO是Remote Data Object的缩写,最初是作为ODBC API的抽象,为Visual Basic程序员提供的编程对象,因此RDO与Visual Basic密切相关。由于RDO直接使用ODBC API对远程数据源进行操作,而不像DAO要经过Jet引擎
4、,所以,RDO可以为使用关系数据库服务器的应用程序提供很好的性能。 4、RDO5、OLE DBOLE DB对ODBC进行了两个方面的扩展:一是提供了一个数据库编程的OLE接口,即COM;二是提供了一个可用于关系型和非关系型数据源的接口。 与ODBC API一样,OLE DB 也属于低层的数据库编程接口, 利用OLE DB进行软件开发应该包括两类软件:OLE DB客户程序(Consumer): 是使用OLE DB接口的应用程序.OLE DB供应程序(Provider):实现OLE DB接口并实际与数据库服务器通信的DLL.6、ADO(Activex Data Object)ADO是目前在Wind
5、ows环境中比较流行的数据库编程技术。它是建立在OLE DB底层技术之上的高级编程接口。对OLE DB进行了封装。 先使用数据库管理系统(例如:SQL Server)建立好数据库和数据表结构,然后在程序中通过使用ADODC数据库控件或引用ADO对象与数据库中的表建立连接,再通过数据控件(例如:DataGrid等)来进行数据库的各种操作。ADO技术有两种方法:ADO对象ADO控件二、ADO技术详解ADO对象模型定义了一个可编程的分层对象集合, 主要由三个对象成员Connection、Command和Recordset对象,以及几个集合对象Errors、Parameters和Fields等所组成。
6、Connection对象Errors集合Error对象Command对象Parameters集合Parameter对象Recordset对象Fields集合Field对象 表 ADO对象描述 对象名 描 述Connection 指定连接数据来源Command 发出命令信息从数据源获取所需数据Recordset 由一组记录组成的记录集Error 访问数据源时所返回的错误信息Parameter 与命令对象有关的参数Field 记录集中某个字段的信息Connection对象:使用ADO进行数据连接,如连接ODBC、SQL Server、Access等。 1)几个常用的属性: ConnectionSt
7、ring, CousorLocation ConnectionString=“Provider=SQLOLEDB.1; 指定OLE DB提供者Integrated Security=SSPI; 验证方式Persist Security Info=False; 是否保存安全信息Initial Catalog=library;Data Source=OWENABC()CousorLocation=aduserclient 以便调用支持批更新的“客户端游标提供者”User ID=sa;password=123;Open 方法 (ADO Connection)功能:打开到数据源的连接。语法connec
8、tion.Open ConnectionString, UserID, Password, OpenOptions以下参数均为可选项ConnectionString:包含连接信息的字符串。UserID:包含建立连接时所使用的用户名称。Password:字符串,包含建立连接时所用密码。OpenOptions:ConnectOptionEnum 值。如果设置为 adConnectAsync,则异步打开连接。如果设置为ConnectComplete当连接可用时将调用该事件。2)常用方法 Execute方法执行指定的查询、SQL语句、存储过程或特定提供者的文本等内容,返回一个RecordSet对象语法
9、如下: 1)对于没有返回结果的命令格式:connection.Execute CommandText, RecordsAffected, Options2)对于有返回结果的命令格式:Set recordSet = connection.Execute (CommandText, RecordsAffected, Options)CommandText是字符串类型,包含要执行的SQL语句、表名、存储过程或特定提供者的文本;RecordsAffected是长整型变量类型,其值是执行指定的操作所影响的记录数目;Options参数表示对数据库请求的类型。 Close方法关闭Connection对象以便
10、释放所有关联的系统资源。Connection.closeSet cn=nothing数据的获取、结果的检验以及数据库的更新。可以依照查询条件获取或显示所要的数据列与记录。Recordset对象会保留每项查询返回的记录所在的位置,以便逐项察看结果。记录集对象Recordset:1Open方法打开代表基本表、查询结果或者以前保存的RecordSet中记录的游标(指向数据库数据的位置,即指针),也就是说可以与数据库建立连接。recordSet.Open Source, ActiveConnection, CursorType, LockType, OptionsA、 Source :指定数据表的名称
11、B、 ActiveConnection :指定一个已经声明的Connection对象C、 CursorType :设置打开Recordset所返回的据记录指针类型,参数值0-3,见表D、LockType属性,见下表E、OptionsadOpenUnspecifed 光标类型不确定adOpenForwardOnly前滚静态光标。这种光标只能向前浏览记录集,比如用MoveNext向前滚动,这种方式可以提高浏览速度。 adOpenKeyset 键集游标采用这种光标的记录集看不到其他用户的新增、删除操作adOpenDynamic动态游标所有数据库的操作都会立即在客户记录集上反应出来。adOpenSta
12、tic静态光标产生一个静态的记录集,但其它用户的新增、删除、更新操作是不可见的。Recordset对象的CursorType属性Recordset对象的LockType属性(1)adLockReadOnly:只读,默认(2)adLockPessimistic:锁定被编辑的记录,直到执行 Update方法或移动记录时为止。(3)adLockOptimistic:执行Update方法或移动记录时锁定记录,直到操作完成为止。(4)adLockBatchOptimistic:可以同时更新多个记录-1:指示Source参数中的命令类型为未知1:指示被执行的字符串包含一个命令文本2:指示被执行的字符串包含
13、一个表的名字3:指示被执行的字符串包含一个存储过程名Options属性2、Recordset.MoveFirst:将数据记录指针移至第一条3、Recordset.MoveLast:将数据记录指针移至最后一条4、Recordset.MoveNext:将数据记录指针往后移一条5、Recordset.MovePrevious:将数据记录指针向前移一条6、Recordset.update:刷新记录集7Close方法用来关闭所指定的RecordSet对象。RecordSet.Close 1)Recordset.RecordCount:返回Recordset中数据记录的数目3、属性或函数3)Records
14、et(“字段名称”):返回指定字段名称的数据内容。如rs(“name”) rs(index)2)Recordset(i).Name:返回Recordset中第i个字段的名称,i由0开始,因此i的最大数是Recordset.RecordCount-15)Recordset.EOF:判断指针是否已超过Recordset的末端,如果是则返回true4)Recordset.BOF:判断指针是否已超过Recordset的顶端,如果是则返回true6)Field数据字段集合,可以采用以下方式:Rs.fields(“name”) rs.fields(index)Command对象定义将对数据源执行的指定命令
15、。 1)CommandText属性定义命令的可执行文本。 2)使用Execute方法执行命令并在适当的时候 返回Recordset对象。 3)通过设置ActiveConnection属性使打开的连 接与Command对象关联。 4)设置Name属性将Command标识为与Connection 对象关联的方法。三.用ADO操纵数据库使用ADO操作数据库的主要步骤和方法:打开数据库。 首先需要创建数据库连接对象(connection),然后调用该对象的Open方法即可打开数据库。操作数据库数据。 在数据库打开之后,通过Connection、Command对象执行SQL命令,或者创建记录集(Reco
16、rdset)对象,使用该对象的各种方法就可以进行数据库数据的查询、定位以及增加、删除和修改。关闭数据库。使用上面创建的数据库连接对象的close方法就可以进行数据库的关闭。ADO对象与数据源的连接:首先需要引用数据对象,然后才能进行数据连接。(1)引用数据对象 工程-引用-Microsoft ActiveX Data Objects 2.5 Library声明一个 Adodb.recordset的变量,作记录集用 Dim rs as Adodb.recordset声明一个类型为Connection的变量,供连接数据源使用。 Dim Cn as Connection(2)在程序中设置连接 (3)
17、具体连接 Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Set Cn = New ADODB.Connection Set Rs = New ADODB.Recordset Set 语句将对象引用赋给变量或属性。等价于:Dim cnn As New ADODB.Connection可选的。断绝 objectvar 与任何指定对象的关联。Nothing 必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式。 objectexpression 可选的。通常在声明时使用 New,以便可以隐式创建对
18、象。如果 New 与 Set 一起使用,则将创建该类的一个新实例。new必需的。变量或属性的名称。 objectvar 连接数据源,不需要用户名和密码Cn.ConnectionString= Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=book;Data Source=.“数据库连接需要用户名与密码的情况:cn.ConnectionString = Provider=SQLOLEDB.1;Persist Security Info=FALSE;User ID=
19、sa;password=123;Initial Catalog=library;Data Source=OWENABCRs.ActiveConnection = cn建立数据源Rs.Source =SQL语句Rs.Open , , adOpenDynamic, adLockOptimistic查询:Cn.CursorLocation = adUseClientCn.Open 建立数据源的物理连接,用close方法关闭例 类模块module1.bas(4)数据录入的AddNew方法分3步 使用Rs.AddNew语句向数据源中添加记录 通过赋值语句将数据传送给相应字段,如 Rs!姓名=text1.
20、text 使用Rs.Update语句更新记录集。(5)数据更新方法 Update方法将当前录入的数据从缓冲区存入数据库。四、ADODC数据控件不是VB的基本控件,需在工程-部件中引用Microsoft ADO Data Control 6.0(sp6 OLEDB)1、ADODC控件常用属性(1) ConnectionString属性与数据库建立连接。该属性包含了用于与数据源建立连接的相关信息。Adodc1.connectionString =“Provider=SQLOLEDB.1; 指定OLE DB提供者Integrated Security =SSPI; 验证方式Persist Secur
21、ity Info =False; 是否保存安全信息Initial Catalog =library; 指定数据库Data Source =OWENABC()“ 数据库服务器(2)CommandType确定记录源命令类型有4种adCmdUnkownadCmdTextadCmdTableadCmdStoredProcAdodc1.CommandType=adCmdTable (3) Recordsource属性该属性确定可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中单个表名、一个存储查询或者是使用SQL查询语言的查询字符串。Adodc1.RecordSource=S
22、QL语句等(4)RecordCount属性:获得数据库的记录总数 Adodc1.recordset.recordcount1(5)absolutePosition属性:记录指针当前位置,有3个预设值: adPosUnkown:-1,当前记录指针无法确定 adPosBOF: -2,当前记录指针位于第一条记录之前 adPosEOF:-3,当前记录指针位于最后一条记录之后2、Adodc控件的常用操作方法addNew增加:adodc1.recordset.addnewUpdate修改:adodc1.recordset.UpdateDelete删除: Adodc1.Recordset.DeleteRef
23、resh刷新:Adodc1.Refresh记录定位的方法: (1)向前移动一条记录 adodc1.Recordset.MovePrevious (2)向后移动一条记录 adodc1.Recordset.MoveNext (3)移动到尾记录 adodc1.Recordset.MoveLast (4)记录指针的相对移动 adodc1.Recordset.Move(+/-)n(5)数据删除Delete方法 在删除记录后需要进行记录更新。获取某个字段: Adodc1.Recordset.Fields(i) 五、数据绑定控件通过VB 6.0进行数据库开发时,需要同时和其它的控件结合使用,这就需要对控件进行绑定处理。这些能够与数据控件创建关联,配合数据控件实现记录内容显示的控件称为数据感知控件。常用数据感知控件有label、text、listbox等。它们有以下两个属性:DataSource属性:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专业高级顾问聘任协议范例版B版
- 2025年江西货运从业资格试题答案大全
- 建筑工程铝扣板施工合同
- 智能城市交通网络部署合同
- 会计师事务所公关部聘用合同
- 2025年正规商品代销合同书范文
- 港口物流船运租赁合同
- 食品公司品控员招聘合同模板
- 河北省张家口市2024届高三上学期期末考试数学试题(解析版)
- 图书馆建设拆迁施工合同
- 数据可视化技术智慧树知到期末考试答案2024年
- MOOC 警察礼仪-江苏警官学院 中国大学慕课答案
- 三基考试题库与答案
- 2024年广东省2024届高三二模英语试卷(含标准答案)
- 全飞秒激光近视手术
- 2024年制鞋工专业知识考试(重点)题库(含答案)
- 2023-2024学年广州大附属中学中考一模物理试题含解析
- 绿化养护工作日记录表
- 2024美的在线测评题库答案
- 2024版高考数学二轮复习:解析几何问题的方法技巧
- 舆情监测服务方案
评论
0/150
提交评论