18 if (!defined(
'ADODB_DIR'))
die();
20 include_once(ADODB_DIR.
'/drivers/adodb-postgres64.inc.php');
29 var
$metaDatabasesSQL =
"select objname from _v_object_data where objtype='database' order by 1";
30 var
$metaTablesSQL =
"select objname from _v_object_data where objtype='table' order by 1";
35 var
$metaColumnsSQL =
"SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum";
36 var
$metaColumnsSQL1 =
"SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum";
62 global $ADODB_FETCH_MODE;
64 $table = strtolower($table);
66 $save = $ADODB_FETCH_MODE;
67 $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
68 if ($this->fetchMode !==
false) $savem = $this->SetFetchMode(
false);
70 $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table,$table));
71 if (isset($savem)) $this->SetFetchMode($savem);
72 $ADODB_FETCH_MODE = $save;
74 if (
$rs ===
false)
return false;
78 $fld =
new ADOFieldObject();
79 $fld->name =
$rs->fields[0];
84 if ($first = strstr(
$rs->fields[1],
"(")) {
85 $fld->max_length = trim($first,
"()");
87 $fld->max_length = -1;
90 if ($first = strpos(
$rs->fields[1],
"(")) {
91 $fld->type = substr(
$rs->fields[1], 0, $first);
93 $fld->type =
$rs->fields[1];
102 $fld->max_length = 2;
107 $fld->max_length = 4;
112 $fld->max_length = 8;
115 case "time with time zone":
116 $fld->max_length = 12;
120 if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;
121 else $retarr[($upper) ? strtoupper($fld->name) : $fld->name] = $fld;
144 if ($mode ===
false) {
145 global $ADODB_FETCH_MODE;
146 $mode = $ADODB_FETCH_MODE;
150 case ADODB_FETCH_NUM: $this->fetchMode = PGSQL_NUM;
break;
151 case ADODB_FETCH_ASSOC:$this->fetchMode = PGSQL_ASSOC;
break;
153 case ADODB_FETCH_DEFAULT:
154 case ADODB_FETCH_BOTH:
155 default: $this->fetchMode = PGSQL_BOTH;
break;
157 $this->adodbFetchMode = $mode;
158 $this->ADORecordSet($queryID);
164 global $ADODB_COUNTRECS;
165 $this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($this->_queryID):-1;
166 $this->_numOfFields = @pg_numfields($this->_queryID);
ADORecordSet_netezza($queryID, $mode=false)
if(isset($_REQUEST['nrows'])) else $rs
MetaColumns($table, $upper=true)