⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adodb-netezza.inc.php

📁 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 它通过snmpget来获取数据
💻 PHP
字号:
<?php/*  V4.54 5 Nov 2004  (c) 2000-2004 John Lim (jlim#natsoft.com.my). All rights reserved.   First cut at the Netezza Driver by Josh Eldridge joshuae74#hotmail.com Based on the previous postgres drivers. http://www.netezza.com/ Major Additions/Changes:    MetaDatabasesSQL, MetaTablesSQL, MetaColumnsSQL    Note: You have to have admin privileges to access the system tables    Removed non-working keys code (Netezza has no concept of keys)    Fixed the way data types and lengths are returned in MetaColumns()    as well as added the default lengths for certain types    Updated public variables for Netezza    Still need to remove blob functions, as Netezza doesn't suppport blob*/// security - hide pathsif (!defined('ADODB_DIR')) die();include_once(ADODB_DIR.'/drivers/adodb-postgres64.inc.php');class ADODB_netezza extends ADODB_postgres64 {    var $databaseType = 'netezza';		var $dataProvider = 'netezza';	var $hasInsertID = false;	var $_resultid = false;  	var $concat_operator='||';  	var $random = 'random';	var $metaDatabasesSQL = "select objname from _v_object_data where objtype='database' order by 1";    var $metaTablesSQL = "select objname from _v_object_data where objtype='table' order by 1";	var $isoDates = true; // accepts dates in ISO format	var $sysDate = "CURRENT_DATE";	var $sysTimeStamp = "CURRENT_TIMESTAMP";	var $blobEncodeType = 'C';	var $metaColumnsSQL = "SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum";	var $metaColumnsSQL1 = "SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum";	// netezza doesn't have keys. it does have distributions, so maybe this is 	// something that can be pulled from the system tables	var $metaKeySQL = "";	var $hasAffectedRows = true;	var $hasLimit = true;		var $true = 't';		// string that represents TRUE for a database	var $false = 'f';		// string that represents FALSE for a database	var $fmtDate = "'Y-m-d'";	// used by DBDate() as the default date format used by the database	var $fmtTimeStamp = "'Y-m-d G:i:s'"; // used by DBTimeStamp as the default timestamp fmt.	var $ansiOuter = true;	var $autoRollback = true; // apparently pgsql does not autorollback properly before 4.3.4							// http://bugs.php.net/bug.php?id=25404								function ADODB_netezza() 	{		}		function &MetaColumns($table,$upper=true) 	{		// Changed this function to support Netezza which has no concept of keys	// could posisbly work on other things from the system table later.		global $ADODB_FETCH_MODE;			$table = strtolower($table);		$save = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);				$rs =& $this->Execute(sprintf($this->metaColumnsSQL,$table,$table));		if (isset($savem)) $this->SetFetchMode($savem);		$ADODB_FETCH_MODE = $save;				if ($rs === false) return false;		$retarr = array();		while (!$rs->EOF) { 				$fld = new ADOFieldObject();			$fld->name = $rs->fields[0];						// since we're returning type and length as one string, 			// split them out here.						if ($first = strstr($rs->fields[1], "(")) {			 $fld->max_length = trim($first, "()");			} else {			 $fld->max_length = -1;			}					if ($first = strpos($rs->fields[1], "(")) {			 $fld->type = substr($rs->fields[1], 0, $first);			} else {			 $fld->type = $rs->fields[1];			}						switch ($fld->type) {			 case "byteint":			 case "boolean":			 $fld->max_length = 1;			 break;			 case "smallint":			 $fld->max_length = 2;			 break;			 case "integer":			 case "numeric":			 case "date":			 $fld->max_length = 4;			 break;			 case "bigint":			 case "time":			 case "timestamp":			 $fld->max_length = 8;			 break;			 case "timetz":			 case "time with time zone":			 $fld->max_length = 12;			 break;			}						if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;				else $retarr[($upper) ? strtoupper($fld->name) : $fld->name] = $fld;						$rs->MoveNext();		}		$rs->Close();		return $retarr;				}		}	/*--------------------------------------------------------------------------------------	 Class Name: Recordset--------------------------------------------------------------------------------------*/class ADORecordSet_netezza extends ADORecordSet_postgres64{	var $databaseType = "netezza";	var $canSeek = true;		function ADORecordSet_netezza($queryID,$mode=false) 	{		if ($mode === false) { 			global $ADODB_FETCH_MODE;			$mode = $ADODB_FETCH_MODE;		}		switch ($mode)		{		case ADODB_FETCH_NUM: $this->fetchMode = PGSQL_NUM; break;		case ADODB_FETCH_ASSOC:$this->fetchMode = PGSQL_ASSOC; break;		default:		case ADODB_FETCH_DEFAULT:		case ADODB_FETCH_BOTH:$this->fetchMode = PGSQL_BOTH; break;		}		$this->ADORecordSet($queryID);	}		// _initrs modified to disable blob handling	function _initrs()	{	global $ADODB_COUNTRECS;		$this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($this->_queryID):-1;		$this->_numOfFields = @pg_numfields($this->_queryID);	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -