OCI8IdGenerator.php

Go to the documentation of this file.
00001 <?php 00002 /* 00003 * $Id: OCI8IdGenerator.php,v 1.1 2004/05/09 21:25:05 micha Exp $ 00004 * 00005 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00006 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00007 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00008 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00009 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00010 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00011 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00012 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00013 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00014 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00015 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00016 * 00017 * This software consists of voluntary contributions made by many individuals 00018 * and is licensed under the LGPL. For more information please see 00019 * <http://creole.phpdb.org>. 00020 */ 00021 00022 require_once 'creole/IdGenerator.php'; 00023 00032 class OCI8IdGenerator extends IdGenerator 00033 { 00035 var $conn; 00036 00042 function OCI8IdGenerator(/*Connection*/ $conn) 00043 { 00044 if (! is_a($conn, 'Connection')) { 00045 trigger_error( 00046 "OCI8IdGenerator::OCI8IdGenerator(): parameter 1 not of type 'Connection' !", 00047 E_USER_ERROR 00048 ); 00049 } 00050 00051 $this->conn =& $conn; 00052 } 00053 00057 function isBeforeInsert() 00058 { 00059 return true; 00060 } 00061 00065 function isAfterInsert() 00066 { 00067 return false; 00068 } 00069 00073 function getIdMethod() 00074 { 00075 return IdGenerator::SEQUENCE(); 00076 } 00077 00081 function getId($name = null) 00082 { 00083 if ($name === null) { 00084 return new SQLException(CREOLE_ERROR, "You must specify the sequence name when calling getId() method."); 00085 } 00086 $rs = $this->conn->executeQuery("select " . $name . ".nextval from dual", ResultSet::FETCHMODE_NUM()); 00087 if (Creole::isError($rs)) { return $rs; } 00088 $rs->next(); 00089 return $rs->getInt(1); 00090 } 00091 00092 } 00093

This file is part of the Creole[php4] library.


Copyright © 2004 Hans Lellelid  
Creole[php4] CVS