微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vb中数据库编程对象——ADO

先来一张胜过千言万语的图:

从上图我们可以清楚的看出ADO是数据库与应用程序交流的桥梁,他有承上启下的作用,对底层数据库的类型和上层数据消费者的类型支持性很强大!

ADO是(Activex Data Objects)的简称,属于ActiveX数据对象,是Microsoft提出的应用程序接口用以实现访问关系或非关系数据库中的数据。ADO是由RDO发展来的,而RDO与ODBC一起工作只能访问关系数据库,而不能访问非关系数据库;ADO克服了RDO的一些缺陷,逐渐的既能在本机上运行又能远程使用的ADO取代了DAO和RDO的地位。

ADO是微软开发的一种访问数据库方法的总称,也可以说是一个类;ADODB是实际的控件对象,我们可以把ADO比喻成模子,ADODB则是生产出的产品。

下图是ADO对象层次的关系图:


ADO对象模型中包含7类对象:Connection、Command、Recordset、Parameter、Property、Error。从上图中我们可以看出ADO的主要对象有三个:Connection(连接对象)、Command(命令对象)、Recordset(记录集对象),这是三个也是可以直接和VB打交道的对象。同时ADO还包含3个集合:Errors集合、Parameters集合、Fileds集合。

下面我们来详细介绍一下三大对象:

1.Connection对象

Connection对象用来与数据源建立连接、执行查询以及建立事务处理,在建立连接之前指定数据提供者。

例:

objCn.ConnectionString= "Provider = Microsoft.Jet.OLEDB.3.51;" & _
                         "Data Source=" & App.Path & "\数据库\实例1.mdb"
建立连接以后就可以用Connection对象的Execute方法进行查询,包含sql语句、存储过程或者OLE DB供应者,它从一个文本文件中返回数据,当把一个目录作为其数据源时,Execute方法的返回结果将是文本文件Custom.txt中的数据。

在事务处理方面Connection提供了三种方法:Begin Trans、Commit Trans、Rollback。Begin Trans使用该方法标识一个事务的开始,调用方法后就可以对连接的数据源进行任何需要的更改;Commit Trans使用该方法标识一个事务的结束,如果从事务开始到事务结束中的一切更改顺利进行,该方法保证事务成功执行,事务内对数据库所做的修改永久的保存;Rollback使用该方法标志一个事务的结束,但是,他使用在事务执行过程出现错误的情况,该方法能够使事务所作的修改回滚到事务执行之前的状态。

2.Command对象

Command对象用于执行数据库操作命令,使用Command对象的ActiveConection属性同样可以创建一个连接。如果"Activeconection"属性被设置为一个Connection对象的引用,那么Command对象就建立一个新的连接,并使用这个新连接。用Command对象执行一个查询子串,可以返回一个记录集,也可以返回多个记录集,甚至可以不返回记录集。一个查询可以是一个标准的sql数据操作语言,如SELECT、DELETE、UPDATE,等;也可以是任何数据定义语言,如CREATE、DROP等;还可以是一个存储过程或一个表。使用哪一种查询字串,由对象的“CommandType”属性决定。"CommandType"属性有四种不同的值:如果查询字串是一个sql语句,那么"CommandType"属性应设为"adCmdText";如果查询字串是一个存储过程的名字,那么"CommandType"属性应该为"adCmdstoreProc";如果查询字串是一个表名,那么"CommandType"属性应该设为"adCmdTable";如果"CommandType"属性被设置为"adCmdUnkNown",Command对象必须执行一些额外的步骤来决定查询字串的类型,这样会降低系统的性能如果要执行一个带参数的查询,或者要执行一个查询若干次,那么可以用Command对象的"Prepared"属性预先建立一个查询字串。

3.Recordset对象

Recordset对象用来操作查询返回的结果集,它可以在结果集中添加(rs.addnew)、删除(rs.delete)、刷新(rs.requery)、更新(rs.update)记录。当创建了一个Recordset对象时,一个游标也被自动创建了。可以用Recordset对象的CursorType属性来设置游标的类型。游标的类型有4种:仅能向前移动的游标(ForwardOnly)、静态的游标(Static)、键集游标(KeySet)和动态游标(Dynamic)。

总结的不是太全面,正在完善中,希望大家指正~~~

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr