• Main Page
  • Data Structures
  • Files
  • File List

db2Sequence.php

Go to the documentation of this file.
00001 <?php
00002 
00003 /**
00004  * DB2 database sequence class
00005  *
00006  * @package objSQL
00007  * @version 2.1.0
00008  * @author MT Jordan <mtjo62@gmail.com>
00009  * @link http://objsql.sourceforge.net
00010  * @copyright 2004-2010 openSource Partners
00011  * @license LGPL
00012  * @revision $Id: db2Sequence.php,v 1.7 2008-01-27 12:52:19-05 mt_jordan Exp $
00013  */
00014 
00015 class db2Sequence
00016 {
00017     /**********************************************
00018      * Internal variables
00019      *********************************************/
00020 
00021     /**
00022      * Database connection object
00023      *
00024      * @access private
00025      * @var    mixed
00026      */
00027     private $objConnection;
00028 
00029     /**
00030      * Sequence maximum value
00031      *
00032      * @access private
00033      * @var    int
00034      */
00035     private $objMax;
00036 
00037     /**
00038      * Sequence name
00039      *
00040      * @access private
00041      * @var    str
00042      */
00043     private $objSequence;
00044 
00045     /**********************************************
00046      * Class methods
00047      *********************************************/
00048 
00049     /**
00050      * Constructor
00051      *
00052      * @access public
00053      * @param  str   $sequence
00054      * @param  int   $max
00055      * @param  mixed $connection
00056      */
00057     public function __construct( $sequence, $max, $connection )
00058     {
00059         $this->objConnection = $connection;
00060         $this->objMax        = $max;
00061         $this->objSequence   = $sequence;
00062     }
00063 
00064     /**
00065      * Return int value for named sequence
00066      *
00067      * @access public
00068      * @return int
00069      */
00070     public function getSequence()
00071     {
00072         $objStmt = db2_exec( $this->objConnection, 'SELECT NEXTVAL FOR ' . $this->objSequence . ' FROM SYSIBM.SYSDUMMY1' )
00073         or trigger_error( db2_stmt_errormsg(), E_USER_WARNING );
00074 
00075         $objResult = db2_fetch_array( $objStmt );
00076         return $objResult[0];
00077     }
00078 
00079     /**
00080      * Create sequence
00081      *
00082      * @access public
00083      * @return mixed
00084      */
00085     public function setSequence()
00086     {
00087         //make sure $this->objMax is an unsigned int > 0
00088         $objMax   = ( is_numeric( $this->objMax ) && $this->objMax > 0 ) ? ' MAXVALUE ' . ( int )$this->objMax : '';
00089         $objQuery = 'CREATE SEQUENCE ' . $this->objSequence . ' INCREMENT BY 1 START WITH 1 MINVALUE 1' . $objMax . ' NO CACHE';
00090 
00091         return db2_exec( $this->objConnection, $objQuery )
00092         or trigger_error( db2_stmt_errormsg(), E_USER_WARNING );
00093     }
00094 }
00095 
00096 ?>

Generated on Sat Jul 10 2010 15:14:38 for objSQL 2.1.0 by  doxygen 1.7.1