VBNET学习笔记---MS VBnet数据库访问技术,概念,介绍,发展历程.

2013-02-20
1.数据库访问技术
a.JET与DAO
JET(Joint Engine Technology)数据连接引擎技术:
a.1991年末或92年初,MS发布了ACCESS作为其Windows桌面数据库,ACCESS使用了JET数据库 
引擎。
b.Microsoft Jet 数据库引擎(Microsoft Jet Database Engine )
一个数据库管理系统,它在用户及系统数据库中检索和存储数据。Microsoft Jet 数据库 
引擎可以被视为数据管理器组件,通过它可构建其他数据访问系统(例如,Microsoft    
Access 和 Microsoft Visual Basic)。
c.Microsoft Jet 数据库 
使用 Microsoft Jet 数据库引擎创建的数据库。Microsoft Jet 数据库的文件扩展名是  
.mdb。 JET仅为ACCESS数据库服务。
d.DAO(Data Access Object)数据访问对象
在开发JET引擎时,在其上增加了一个对象层,叫做数据访问对象(DAO)。
DAO可以打开DataBase的连接、访问或创建表,对表执行SQL语句
e.数据访问对象(Data Access Objects):是一种面向对象的界面接口。
通过DAO/Jet功能可以访问ISAM(顺序索引查找方法)数据库。
使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标  (
Cursor Less)类型的结果集,同DDL(数据描述语言)的功能很类似。
DAO模型是设计关系数据库系统结构的对象类的集合。
它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义 
表、字段和索引,建立表间的关系,定位和查询数据库等工具。 
-----------------------------------------------
2.ODBC与RDO
a.ODBC(Open Database Connectivity)开放数据库互连 
MS意识到许多人都拥有后端的数据库,如Oracle、DB2等,因此发布JET的同时也推出了一 
个数据访问层。
ODBC:
是MS建议并开发的数据库API标准,为异种数据库提供了统一的访问接口,屏蔽了不同DBMS 
的差异,使数据库应用系统不仅仅局限于某个DBMS。
ODBC的设计思想
是允许从桌面到中等范围以及大型机上数据库的透明访问。
b.RDO(Remot Data Object)远程数据对象
产生背景
在应用程序在直接访问ODBC时,由于ODBC不是基于对象的,主要是通过调用一些API(    
Application  Programming Interface 应用编程接口)访问后端数据库的,虽然ODBC的  
执行效率比DAO要快得多,但编程工作却非常困难,而且错误处理时也不友好。
例如:完成如下的数据库操作,打开一个DataBase并修改一个Table
使用DAO需要写5行代码
使用ODBC API函数大概需要30行代码
因此提出了RDO
c.RDO(Remot Data Object)远程数据对象
是建立在ODBC 之上的对象模型,提供如同DAO一样的易用性,同时又拥有几乎和ODBC API 
一样的速度。
使用DAO/ODBC Direct功能可以实现远程RDO功能
d.JET可以直接访问ACCESS数据库
JET通知ODBC访问服务器数据库
JET不能直接访问服务器
ODBC允许JET或RDO访问服务器数据库
e.DAO与RDO只能处理后台为关系数据库的DBMS,不能解决通用数据存储及通用数据访问。
例如:一个Email系统需要存储多媒体文件以及其他数据,比方说将一个Excel表格存储于 
该系统之中, DAO与RDO都不能访问。
f.OLE DB(Object Linking and Embedding for DataBase)数据库对象链接和嵌入
MS采用通用数据访问的方法,“你自己保存数据,我们给你提供一种方法来访问这些数据
实际上就是一种进行关系型数据和非关系型数据一样的技术。
OLE DB定义:
MS提供一种对各类应用程序均适用的,采用ODBC接口,通过结构化查询语言SQL对数据库  
进行访问操作的总体解决方案。
设计目的:
为了给多种多样的应用程序提供优化功能
g.ADO(ActiveX Data Object) ActiveX 数据对象 
OLE DB和ODBC一样是一种底层的API,其上层对象模型是ADO。ADO几乎兼容所用的数据库  
系统
定义
一种数据访问接口,可与符合 OLE DB 的数据源通信,以连接、检索、操作和更新数据。
优点:
与DAO和RDO相比,模型非常小
不是层次式结构,每个主要对象都可以独立创建。
OLE DB可以使用ODBC或自身提供的方法访问数据库
-------------------------------------------------------------
2.ADO 对象的组成
Connection,
Command,
Parameter,
Recordset,
Field,
Property,
Error.
四个集合:
Fields,
Properties,
Parameters,
Errors.
----------------
3.Connection对象
a.Connection对象(连接对象):
是ADO的首要对象,它建立与数据源的连接、管理程序对数据的一切操作。
对数据源的任何操作都需要建立一个Connection对象,因此Connection对象是ADO 的基础
主要功能:
Connection对象提供与包含路径,口令和连接选项的数据源的链接; 
声明:通常声明为全局变量
Dim cn As New ADODB.Connection
b.ConnectionString 属性 
包含用于建立连接数据源的信息。
ConnectionString用多项“设置项=值”的方式来设定与数据源的连接,每个项之间用分  
号隔开。
对于连接字符串的写法,精确固定的语法是没有的。因为不同类型数据库,有各自的设置 
例如:指定1个OLE DB连接,连接字符串可写为:
cn.ConnectionString = "Provider=SQLOLEDB.1; Password=sa; Persist Security      
Info=True; User ID=sa; Initial Catalog=library; Data Source=SERVER01\SHU03"
c.ConnectionTimeout 属性 
设置连接时的最长等待时间,缺省为15秒,超时还未连接成功的话,中止连接,并返回出 
错信息。 
d.Open方法:
建立与数据源的物理连接。
格式:connection.Open  [ConnectionString, UserID, Password, Options]
注意:该方法是使Connection获得初始化的方法,只有使用了该方法,Connection对象才 
真正在内存中存在。 
后面的参数都是可选参数,最简单如:cn.Open但如果这样则需要预先设置好            
ConnectionString等参数。
e.第一种,先为ConnectionString赋值
cn.ConnectionString = "Provider=SQLOLEDB.1; Password=sa; Persist Security      
Info=True; User ID=sa; Initial Catalog=library; Data Source=SERVER01\SHU03"
cn.Open
第二种,直接Open
cn.Open  "Provider=SQLOLEDB.1; Password=sa; Persist Security Info=True; User   
ID=sa; Initial Catalog=library; Data Source=SERVER01\SHU03"
f.Close方法:
关闭1个数据连接对象,使该连接对象只留在本机内存中,可对其属性更改后再重新建立  
连接。
注意:如果不是关闭对象,而是将对象从内存中清除,应使用 Set connection对象变量  
=Nothing. 
Set cn = Nothing
--------------------------------------------------------------------
4.Execute方法:
执行1个SQL查询,既可是选择查询,也可是动作查询。
如:Set rst = cn.Execute(“ select * From student where Sname like ‘张%’")
但要注意:使用Connection对象的Execute方法返回的游标类型是最基本的只能读和只能向 
前移动的游标adOpenForwardOnly,因此,如果该方法执行一个选择查询返回一个记录集时 
特别要明白。 
-----------------------------------------------
5.Recordset对象(记录集对象)
用来管理某个查询返回的记录集以及记录集中的游标。
声明:对每一个需要操作的查询结构可以声明一个Recordset对象
Dim cn As New ADODB. Recordset
-----------------------------------------------------------------
1、CursorType 属性 (游标类型)
AdOpenForwardOnly: 仅向前游标,默认值。
除了只能在记录中向前滚动外,与静态游标相同。
当只需要在记录集中单向移动时,使用它可提高性能。
顾名思义,这种游标只能向前移动。
AdOpenKeyset: 键集游标。
从你自己的记录集不能访问其他用户删除的记录,无法查看其他用户添加的记录,但仍然可
以看见其他用户更改的数据。
KeySet游标允许你看见自它创建起其他用户所做的修改,然而你却不能看到其他用户增加或
删除的记录。
---------------------------------------------------------
AdOpenDynamic :动态游标。
Dynamic游标可以看到他们保存记录集合的所有变化。
使用Dynamic游标的用户可以看到其他用户所做的编辑、增加、删除。
如果数据提供者允许这种类型的游标,那么它是通过每隔一段时间从数据源重取数据来支持
这种可视性的。毫无疑问这会需要很多的资源。
此类型的游标功能强大同时也是耗费系统资源最多的游标。
AdOpenStatic:静态游标。
可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改
或删除不可见。
Static类游标只是数据的一幅快照。这就是说,它无法看到自它创建以后其他用户对
RecordSet所做的修改。
采用这类游标你可以向前和向后航行。
由于其功能简单,资源的需求比Dynamic要小!  
--------------------------------------------------------------------------
2、LockType 属性 
在任何同时可被多用户修改的数据库应用程序中,你必须处理可能发生的多个用户同时对同
一条记录进行操作时的情况。
当这种情况出现时,数据的完整性就会受到威胁,这是因为一个用户可能会在不自觉地在保
存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有做事。
为了处理这种情况,ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型,当
一个用户编辑时,如何由他对记录进行锁定。这就是由LockType属性所决定的。 
-------------------------------------------------------------

VBNET学习笔记---MS VBnet数据库访问技术,概念,介绍,发展历程.相关推荐

  1. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  2. Qt学习笔记之MySQL数据库

    一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

  3. oracle查询当前归档scn_【学习笔记】Oracle数据库 查看归档日志存放的位置

    [学习笔记]Oracle数据库 查看归档日志存放的位置 时间:2016-10-21 19:19   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 分享一篇关于查看Oracle ...

  4. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  5. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  6. MySQL学习笔记01【数据库概念、MySQL安装与使用】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  7. 网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储

    Linux基础教程学习笔记28--使用Samba访问网络存储 SMB用于Windows和类Linux系统直接的文件共享 安装samba client包: [root@linuxidc~]# yum i ...

  8. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...

    天萃荷净 使用copy实现long类型转移表空间,表空间的数据文件损坏,在转移该表空间相关表时,遇到让人郁闷的long类型.不能使用ctas和move来实现转移,最后通过古老的copy来实现该项工作. ...

  9. oracle事务数统计,【学习笔记】Oracle数据库收集统计信息的两种方法介绍案例

    天萃荷净 分享一篇关于Oracle数据库收集统计信息的办法,Oracle DBMS_STATS与Oracle analyze使用方法案例 今天群里面讨论DBMS_STATS和analyze,这里进行了 ...

最新文章

  1. 能源利用率逼近理论极限 阿里巴巴展示液冷黑科技
  2. 树莓派3 mysql端口_树莓派3 之 安装Mysql服务
  3. 开关灯(jzoj 3926)
  4. Spring 框架基础(05):事务管理机制,和实现方式
  5. 定制Bootstrap
  6. 蓝桥杯 PREV-5历届试题 错误票据
  7. 常用设计模式的小结和实际中的应用
  8. DataSet数据导入到Excel
  9. Linux定时函数介绍
  10. JLINK-->JFlash烧录固件
  11. 统计分析 -- t分布
  12. MAX485芯片收发详解 实现485通信
  13. HDU 6319 Ascending Rating(单调队列)
  14. vue项目打包后index.html文件打开空白
  15. 使用ALLMAPS进行辅助组装得到准染色体水平基因组
  16. 实现单向选择题和多项选择题的选中状态-不使用radio和CheckBox
  17. 【Windows】修改已连接的蓝牙设备名称
  18. Android框架的详解
  19. 向量点乘(内积)和叉乘(外积、向量积)的几何意义和作用
  20. pandas美国人口分析实例

热门文章

  1. CMakeLists.txt的语法介绍和几个实例
  2. 小微型库(1.获取元素的API)
  3. 虚拟环境--virtualenv
  4. Android单元测试(五):依赖注入,将mock方便的用起来
  5. 20、在Linux中实现类似windows中获取配置文件的函数GetProfileString
  6. layer.prompt添加多个输入框
  7. c 宏变量/宏函数/log
  8. Python实例:11~20例
  9. php.ini设置详解
  10. [转载]如何决定要使用多少点来做FFT?(转载)