Oracle数据库中通过ADO数据存取分析
2007-05-13 12:28:03 来源:WEB开发网ADO是Active Data Object的缩写,称为ActiveX数据对象。利用ADO对象,通过ODBC驱动程序或OLE DB连接字符串,可实现对任意数据库的存取和访问。
OLE DB是微软用来替代ODBC的一种数据库访问技术。是一种对关系型数据库和非关系型数据库均有效的一种数据库访问技术。
ADO提供了7个独立的对象,利用这些对象,可实现对数据库的存取和访问:
·Connection 连接对象。
·Command 命令对象,利用命令对象可执行一个SQL存储过程或有参数的查询。
·Parameter 参数对象。
·Recordset 记录集对象,代表从数据表中通过查询所获得的一组记录。通过该对象的方法和属性,可实现对记录的存取和操作。
·Field 字段对象,代表记录集中的一个字段。Fields为字段集合,代表一条记录的全部字段。
·Property 属性对象。
·Error 错误对象。
Connection,Command和Recordset是整个ADO的核心,通过Connection对象与一个数据库建立连接,然后利用Command对象执行查询,从而返回查询结果,并将结果(记录集)存入Recordset对象中,利用服务器端脚本,通过访问Recordset对象,便可获得查询到的记录内容。
另外,利用Connection对象的Execute方法和Recordset对象的Open方法,也可执行一个查询,返回一个记录集。
ODBC数据源的用户数据源,系统数据源和文件数据源。用户和系统DSN存储在WindowsNT注册表中,系统DSN可被登录的所有用户访问和使用,用户DSN只能提供特定的用户访问和使用。 文件DSN是存储在一个扩展名为.dsn的文本文件中,可供多个用户访问和使用,并可实现复制,通用性强,一般采用此方式。
ADO连接对象
连接对象在使用前必须先创建该对象的实例:
Set 实例名=Server.CreateObject("ADODB.Connection")
连接对象的方法:
·Open方法
连接对象.Open 数据源名 | 连接字符串
带参数调用Open方法时,其参数实质是传递给连接对象的ConnectionString属性的。因此,可事先设置ConnectionString属性的值,然后再调用不带参数的Open方法。
·Close方法
连接对象.Close 释放:Set conn=Nothing
·Execute方法
该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:
1.执行SQL查询语句时,将返回查询得到的记录集。
用法为:
Set 对象变量名=连接对象.Execute("SQL 查询语言")
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。
2.执行SQL的操作性语言时,没有记录集的返回。
此时用法为:
连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]
·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。
·BeginTrans、RollbackTrans、CommitTrans方法
这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。
事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。
BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。
另外,利用SQL本身所提供的事务处理语句,通过编写存储过程,然后利用ADO命令对象的相关方法,通过调用执行存储过程,也可实现事务。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
赞助商链接