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