网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.一个小技巧:工资超过5000元的员.
.ORACLE公司倾情中国软件人才培训.
.关于Oracle Database Block.
.Linux 网管 123 --- 概观 Linux.
.Oracle的SQL语句执行效率问题查找.
.在oracle中编写树级代码.
.C中设置oracle环境变量.
.基于已被证实的Oracle高可用性技.
.ORACLE应用中常见的傻瓜问题1000.
.ORA-12913: 错误简析,及处理心得.
.oracle与raw device问答.
.将Oracle的数据倒入EXCEL中的方法.
.Oracle数据库分区表操作方法.
.Oracle补丁开发将会更具选择性.
.实例讲解如何通过Oracle成功发送.
.Linux 磁盘与硬件管理.
.ORACLE入门之查看数据库的SQL.
.Oracle的一些资料.
.自动监控运行情况──事件.
.六大方面 教您学好 Oracle 数据库.

OO40编程教程

发表日期:2008-2-9



  OO4O应用
  Oracle Object for OLE(OO4O)是一个进程内OLE自动化服务器,它实现了一组用于连接ORACLE数据服务器和执行查询及处理结果的对象和接口。OO4O是非凡为与ORACLE数据库协同工作而开发并发展起来的,并且其实现并不依靠于使用ODBC API。 这种非依靠性使得OO4O能提供访问ORACLE独有特性的优化的API。当然,假如你想使用OO4O,必须在你的机器里装上ORACLE的net8。
  1.应用初步
  先来看一下下面的小程序(VB)
  Dim OracleDBSession As Object
  Dim SecDB As Object
  Dim Sec As Object
  Dim SecRecord As Object
  Set OracleDBSession = CreateObject("OracleInProcServer.XOraSession")
  Set SecDB = OracleDBSession.opendatabase("net8_name", "user_name/passWord", &H0&)
  Set Sec = SecDB.createdynaset("select * from user_tables", &H0&)
  Set SecRecord = Sec.fields
  Do While Not Sec.EOF
   Debug.Print SecRecord(0)
   Sec.movenext
  Loop
  要访问自动化服务器所提供的接口,就需要首先创建一个服务器的实例,在VB中,这是通过调用CreateOjbect函数来完成的。这个函数的参数是组件的ID。CreateObject返回一个接口,从此接口可以获得组件的其他接口。OraSession是调用CreateObject时由OO4O返回的接口。
  在前面的例子,是通过下面的语句来实现这一点的:
  Set OracleDBSession = CreateObject("OracleInProcServer.XOraSession")
  OracleInProcServer.XoraSession是用于OO4O的版本独立的程序ID,它由ORACLE客户安装程序在Windows Registry中注册,它是Class ID(CLSID)的符号名,CLSID是标识OO4O组件的全局唯一标识符。OracleDBSession是保存OraSession接口的实例的变量。OraSession主要用来作为创建OraDatabases的工厂对象。
  OraSession接口的OpenDatabase方法被用于记录到ORACLE数据库的连接。这个方法还返回到OraDatabase接口的引用。OraDatabase提供了用于执行SQL语句和PL/SQL块的方法。下面一句处理的是连接:
  Set SecDB = OracleDBSession.opendatabase("net8_name", "user_name/password", &H0&)
  其中net_name,user_name,password等几项替换成实际的名字。
  2.执行SQL和PL/SQL程序块
  Dynaset创建方法(CreateDynaset,CreatePlsqlset,CreateCustomDynaset和CreateCustomPlsqlset)与ExecuteSQL和CreateSQL一同组成了OraDatabase接口所提供的执行SQL语句和PL/SQL代码的所有方法。
  OraDynaset接口代表着SQL SELECT查询或存储过程返回的游标变量的结果集。它本质上是一个可滚动的(向前或向后)客户端游标,用来浏览执行查询所获得的记录行。
  CreateDynaset方法执行SQL SELECT,而CreatePlsqlDynaset执行PL/SQL存储过程。
  ExecuteSQL和CreateSQL方法执行SQL语句和PL/SQL块。它们都能执行所给的更新语句,不同的是CreateSQL除执行语句外还返回一个指向OraSqlStmt接口的引用。通过Refresh方法可以在以后用该接口执行同一个查询。由于该查询已经被服务器解析,所以对同一查询的执行会更快一些,非凡是在使用绑定参数时就更加如此。
  
  3.使用参数
  Set OracleDBSession = CreateObject("OracleInProcServer.XOraSession")
  Set SecDB = OracleDBSession.opendatabase(txtNet8, txtUser & "/" & txtPassword, &H0&)
  SecDB.Parameters.Add "P1", "A1", 2
  SecDB.Parameters.Add "P2", "A1", 2
  SecDB.Parameters.Add "P3", 0, 1
  SecDB.Parameters.Add "P4", 0, 1
  SQL="begin update_bv_securities( :P1, :P2, :P3,:P4) ;END;"
  Set SecQuery = SecDB.createsql(SQL, &H0&)
  上面是我实际使用中的一段例子,用到了一些参数,大家看一下就可以明白他的意思了,最后一句用的是PL/SQL块,把几个参数传给这个块,然后具体的任务可以交给这个存储过程来完成。

  当第二次调用的时候,可以重新给这些参数赋值,然后执行Refresh方法,如下:
  SecDB.Parameters("P1").Value = V1
  SecDB.Parameters("P2").Value = V2
  SecDB.Parameters("P3").Value = V3
  SecDB.Parameters("P4").Value = V4
  SecQuery.Refresh
  在频繁执行的SQL语句中与OraSqlStmt一同使用参数是比重复使用ExecuteSQL语句更为优化的方法。当执行OraSqlStmt中的Refresh方法时,该语句不必再被数据库服务器解释。在应用程序服务器上将能显著地节省Oracle数据库服务器的处理时间。使用参数和占位符还可以答应将本地的数据库类型按本地的格式传送到服务器上,因此能够去除转换的步骤并且减少在网格上传输的字节数。
  但是在我的实际使用中,发现这个方法在刷新频率太快时很轻易出错,而且效率的提高也不明显。
  
  -------------------------
  昨天看着书抄了一个晚上,假如错太多请看书吧《Oracle 8i Web开发指南》
上一篇:一个有用的东西:如何将数字转换为大写英文金额 人气:946
下一篇:用VC 开发基于ORACLE数据库应用程序的两种方法 人气:704
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐