oracle database access object

access|object|oracle

 
Calling example:
<?
$conn = OCILogon("www_cec", "webchn99", "unicorn");
#or you can just inclued file like "include("modcec_OCI_conn.php3");"

$newOda= new ODA($conn);
#################
#or you can use login method like this
#$newOda-=new ODA();
#$newOda->Logon("www","99","corn");
###############################################
$newOda->CmdString=" update test set nouse='dfs' where login_name='guoyafeng'";
if(!$newOda->Execute()) {
echo $newOda->err;
}
else
{
echo $newOda->Rows;  #get the affected row number.
}
#or you can call execute like this####
/*
$newOda->Execute(" update test set nouse='dfs' where login_name='guoyafeng'");
*/
#############################

#the following demostrate the open method.
$newOda->Open("select * from test")) or die $newOda->err;

#Get data from RS
echo "count is" .$newOda->Rows;
for($i=0;$i<$newOda->Rows;$i++)
   for($j=0;$j<$newOda->Cols;$j++)
    {
       echo $newOda->RS[$i][$j];
       
       }

$newOda->Logoff();
?>
<?
/********************************************************************************#
#  File Name:ODA.php3                                                            #
#  Author:Guo Yafeng                                    #
#  Function: Oracle DB Access.                          #
#  Maint History:                                                                #
#         Sept 18,2000 first release.                                            #
#                                                                                #
#                                                                                #
#********************************************************************************/

/********************************************************************************#
#Object interface description:                                                   #
#  Properties:                                                                   #
#       conn                Connection Object                                    #
#       err_no              Error No                                             #
#       err                 Error Description                                    #
#       CmdString           SQL Statements to execute.                           #
#       Rows               Affected Rows.                                      #
#       RS                  Return value array.                                  
#      Cols                                                                                         #
#                                                                                #
#  Method:                                                                       #
#       Open                Execute the CmdString and return value               #
#       Execute             Execute the CmdString.                               #
#********************************************************************************/

   file://$conn = OCILogon("www_ce", "ceonline99", "wsgp");
  // $conn = OCILogon("www_cec", "webchn99", "unicorn");
//  if ($SERVER_NAME == "")
//          $SERVER_NAME = $HTTP_HOST;

class ODA
{
  

  
  function ODA($cn="") {

   if($cn!="")
    $this->conn=$cn;
    return TRUE;
  
  }
  
  function Logon($user,$pass,$db) {
  
    if(!($this->conn = OCILogon($user, $pass, $db))){
    
     $this->err_no=106;
     $this->err="Error 106: Failed to logon.";
     return FALSE;
    };
    
    return TRUE;
    
  }
  function Open($sql="") file://$this->CmdString
  {
     if($this->conn=="") {
        $this->err_no=100;
        $this->err="Error 100,Connection Object Required.";
        return FALSE;
      }
     
     if($sql=="" and $this->CmdString=="") {
        $this->err_no=101;
        $this->err="Error 101,SQL Statement Required.";
        return FALSE;
      }
     if($sql=="")
        $sql=$this->CmdString;
    if(!($cursor=OCIParse($this->conn,$sql))) {
       $this->err_no=102;
       $this->err="Server Internal Error: Failed to parse SQL Statement.";
       return FALSE;
    }
    
    if(!OCIExecute($cursor))  {
      $this->err_no=103;
      $this->err="Server Internal Error: Failed to execute SQL Statement.";
      return FALSE;
    }
    $this->Rows=0;
    while(OCIFetchInto($cursor,$this->RS[$this->Rows])){
    
      $this->Rows++;
      
     }
     $this->Cols=OCINumCols($cursor);

    if($this->Rows==0) {
    
     $this->err_no=104;
     $this->err="Warning: No rows affectted.RS result is not available.";
    }

     OCIFreeStatement($cursor);
     
     return TRUE;
  }
  
  
    function Execute($sql="") {
     if($this->conn=="") {
        $this->err_no=100;
        $this->err="Error 100,Connection Object Required.";
        return FALSE;
      }
    
     if($sql=="" and $this->CmdString=="") {
        $this->err_no=101;
        $this->err="Error 101,SQL Statement Required.";
        return FALSE;
      }
     if($sql=="")
        $sql=$this->CmdString;
    
    if(!($cursor=OCIParse($this->conn,$sql))) {
       $this->err_no=102;
       $this->err="Server Internal Error: Failed to parse SQL Statement.";
       return FALSE;
    }
   
    
    if(!OCIExecute($cursor))  {
      $this->err_no=103;
      $this->err="Server Internal Error: Failed to execute SQL Statement.";
      return FALSE;
    }
    $this->Rows=OCIRowCount($cursor);
    OCIFreeStatement($cursor);
    
    return TRUE;
  }
  function LogOff(){
  
  if(!OCILogoff($conn)){
    
    $this->err_no=105;
    $this->err="Server Internal Error: Failed to logoff database.";
    return FALSE;
   }
  return TRUE;
  
  }
}
?>

时间: 2024-12-06 17:37:57

oracle database access object的相关文章

什么是DAO Database Access Object_应用技巧

DAO(Database Access Object)使用Microsoft Jet数据库引擎来访问数据库. Microsoft Jet为象Access和Visual Basic这样的产品提供了数据引擎. 与ODBC一样,DAO提供了一组API供编程使用.MFC也提供了一组DAO类,封装了 底层的API,从而大大简化了程序的开发.利用MFC的DAO类,用户可以编写独立于 DBMS的应用程序. DAO是从Visual C++4.0版开始引入的.一般地讲,DAO类提供了比ODBC类更广 泛的支持.一

Oracle Database 10g:删除表

oracle 使用 Oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 - 当然是意外地删除 - 并需要尽快地恢复.(在某些时候,这个不幸的用户可能就是 DBA!) Oracle9i Database 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作.唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据

Oracle Database 10g:最佳新特性(第四周:高速的导出/导入)

oracle 第 4 周高速的导出/导入:Oracle Data Pump 利用 Oracle Database 10g 实用工具数据移动得到了很大的提高. 迄今为止,导出/导入工具集仍是跨多个平台转移数据所需劳动强度最小的首选实用工具,尽管人们常常抱怨它速度太慢.导入只是将每条记录从导出转储文件中读出来,然后使用常见的 INSERT INTO 命令将其插入到目标表中,因此导入可能是个很慢的过程,这一点并不让人感到吃惊. 进入 Oracle Data Pump,Oracle Database 1

Grid+ASM+Oracle Database 12c安装配置教程

备注:工作需要开始学习oracle,之前只学习过mysql的一些基础东东,oracle对我而言是一个新的数据体系,作为初学者,很多地方可能写的不对,只是个人理解,误导之处,请谅解,求指正![Byrd:2016年7月3日]   环境基础:   虚拟机IP(LINUX):1.1.1.212  本地IP(WIN):1.1.1.1  变量配置:   [root@oracle01 ~]# uname -a  Linux oracle01.db.hangzhou.t4x.org 2.6.32-358.el6

Services in Oracle Database 10g

        基于RAC环境中使用的应用程序,有时候希望某个特定的应用程序仅仅运行在RAC的子节点,或者说为某些应用程序分配一个首要节点.对此,Oracle 10g可以使用services来实现.   一.集群配置 在使用services之前,需要首先检查集群的配置是否正确. 下面的命令输出了数据库ORCL运行于三个不同的节点. srvctl config database -d ORCL server01 ORCL1 /u01/app/oracle/product/10.1.0/db_1 s

oracle database link

原文整理自网络: database link基础知识 什么是database link? database link,它是用来更方便的一个数据库中访问另一个数据库(包括本地和远程的,道理是一样的),一开始,很多人会发生误解,其实是在本地建立的.即数据库连接只是连到别的数据库的快捷方式. database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,database都是必要的.另外要注意的是database li

Auditing Database Access

转自:http://www.dbspecialists.com/december-2003.html Ask DB Specialists: Auditing Database Access We've been testing the AUDIT feature on our Oracle 8.1.7 instance. We entered AUDIT ALL, AUDIT INSERT TABLE BY username, AUDIT UPDATE TABLE BY username, A

Chapter1:Oracle 10g Oracle DAB [Oracle? Database 2 Day DBA

oracle Oracle DAB 两日速成课程   本课程的目的是补充 DBA 两日速成 (2 Day DBA) 手册.在本课程中,您将了解到关于在 DBA 两日速成 (2 Day DBA) 手册中概述的任务的详细信息,并包括逐步指导.要查看本课程的资料,请单击下面的章节标题: 课程列表 1 管理数据库的要素是什么(没有本章对应的附加资料) 2 安装 Oracle 和构建数据库 3 Oracle Enterprise Manager 数据库控制入门 4 配置网络环境 5 管理 Oracle 例

Oracle Database 10g:闪回版本查询

oracle 不需要设置,立即识别对行的所有更改 在 Oracle9i Database 中,我们看到它推出了以闪回查询形式表示的"时间机器".该特性允许 DBA 看到特定时间的列值,只要在还原段中提供该数据块此前镜像的拷贝即可.但是,闪回查询只提供某时刻数据的固定快照,而不是在两个时间点之间被更改数据的运行状态表示.某些应用程序,如涉及到外币管理的应用程序,可能需要了解一段时期内数值数据的变化,而不仅仅是两个时间点的数值.由于闪回版本查询特性,Oracle Database 10g