Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
36 kaklik 1
<?php
2
/* 
3
V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim@natsoft.com.my). All rights reserved.
4
  Released under both BSD license and Lesser GPL library license. 
5
  Whenever there is any discrepancy between the two licenses, 
6
  the BSD license will take precedence. 
7
Set tabs to 4 for best viewing.
8
 
9
  Latest version is available at http://adodb.sourceforge.net
10
 
11
  Oracle support via ODBC. Requires ODBC. Works on Windows. 
12
*/
13
// security - hide paths
14
if (!defined('ADODB_DIR')) die();
15
 
16
if (!defined('_ADODB_ODBC_LAYER')) {
17
	include(ADODB_DIR."/drivers/adodb-odbc.inc.php");
18
}
19
 
20
 
21
class  ADODB_odbc_oracle extends ADODB_odbc {	
22
	var $databaseType = 'odbc_oracle';
23
 	var $replaceQuote = "''"; // string to use to replace quotes
24
	var $concat_operator='||';
25
	var $fmtDate = "'Y-m-d 00:00:00'"; 
26
	var $fmtTimeStamp = "'Y-m-d h:i:sA'";
27
	var $metaTablesSQL = 'select table_name from cat';
28
	var $metaColumnsSQL = "select cname,coltype,width from col where tname='%s' order by colno";
29
	var $sysDate = "TRUNC(SYSDATE)";
30
	var $sysTimeStamp = 'SYSDATE';
31
 
32
	//var $_bindInputArray = false;
33
 
34
	function ADODB_odbc_oracle()
35
	{
36
		$this->ADODB_odbc();
37
	}
38
 
39
	function &MetaTables() 
40
	{
41
		$false = false;
42
		$rs = $this->Execute($this->metaTablesSQL);
43
		if ($rs === false) return $false;
44
		$arr = $rs->GetArray();
45
		$arr2 = array();
46
		for ($i=0; $i < sizeof($arr); $i++) {
47
			$arr2[] = $arr[$i][0];
48
		}
49
		$rs->Close();
50
		return $arr2;
51
	}
52
 
53
	function &MetaColumns($table) 
54
	{
55
	global $ADODB_FETCH_MODE;
56
 
57
		$rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table)));
58
		if ($rs === false) {	
59
			$false = false;
60
			return $false;
61
		}
62
		$retarr = array();
63
		while (!$rs->EOF) { //print_r($rs->fields);
64
			$fld = new ADOFieldObject();
65
			$fld->name = $rs->fields[0];
66
			$fld->type = $rs->fields[1];
67
			$fld->max_length = $rs->fields[2];
68
 
69
 
70
			if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;	
71
			else $retarr[strtoupper($fld->name)] = $fld;
72
 
73
			$rs->MoveNext();
74
		}
75
		$rs->Close();
76
		return $retarr;	
77
	}
78
 
79
	// returns true or false
80
	function _connect($argDSN, $argUsername, $argPassword, $argDatabasename)
81
	{
82
	global $php_errormsg;
83
 
84
		$php_errormsg = '';
85
		$this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword,SQL_CUR_USE_ODBC );
86
		$this->_errorMsg = $php_errormsg;
87
 
88
		$this->Execute("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'");
89
		//if ($this->_connectionID) odbc_autocommit($this->_connectionID,true);
90
		return $this->_connectionID != false;
91
	}
92
	// returns true or false
93
	function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename)
94
	{
95
	global $php_errormsg;
96
		$php_errormsg = '';
97
		$this->_connectionID = odbc_pconnect($argDSN,$argUsername,$argPassword,SQL_CUR_USE_ODBC );
98
		$this->_errorMsg = $php_errormsg;
99
 
100
		$this->Execute("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'");
101
		//if ($this->_connectionID) odbc_autocommit($this->_connectionID,true);
102
		return $this->_connectionID != false;
103
	}
104
} 
105
 
106
class  ADORecordSet_odbc_oracle extends ADORecordSet_odbc {	
107
 
108
	var $databaseType = 'odbc_oracle';
109
 
110
	function ADORecordSet_odbc_oracle($id,$mode=false)
111
	{
112
		return $this->ADORecordSet_odbc($id,$mode);
113
	}
114
}
115
?>