亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adodb-odbc.inc.php

?? PhpWiki是sourceforge的一個開源項目
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php/* V4.22 15 Apr 2004  (c) 2000-2004 John Lim (jlim#natsoft.com.my). All rights reserved.  Released under both BSD license and Lesser GPL library license.   Whenever there is any discrepancy between the two licenses,   the BSD license will take precedence. Set tabs to 4 for best viewing.    Latest version is available at http://php.weblogs.com/    Requires ODBC. Works on Windows and Unix.*/  define("_ADODB_ODBC_LAYER", 2 );	 /*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/class ADODB_odbc extends ADOConnection {	var $databaseType = "odbc";		var $fmtDate = "'Y-m-d'";	var $fmtTimeStamp = "'Y-m-d, h:i:sA'";	var $replaceQuote = "''"; // string to use to replace quotes	var $dataProvider = "odbc";	var $hasAffectedRows = true;	var $binmode = ODBC_BINMODE_RETURN;	var $useFetchArray = false; // setting this to true will make array elements in FETCH_ASSOC mode case-sensitive								// breaking backward-compat	//var $longreadlen = 8000; // default number of chars to return for a Blob/Long field	var $_bindInputArray = false;		var $curmode = SQL_CUR_USE_DRIVER; // See sqlext.h, SQL_CUR_DEFAULT == SQL_CUR_USE_DRIVER == 2L	var $_genSeqSQL = "create table %s (id integer)";	var $_autocommit = true;	var $_haserrorfunctions = true;	var $_has_stupid_odbc_fetch_api_change = true;	var $_lastAffectedRows = 0;		function ADODB_odbc() 	{ 			$this->_haserrorfunctions = ADODB_PHPVER >= 0x4050;		$this->_has_stupid_odbc_fetch_api_change = ADODB_PHPVER >= 0x4200;	}		function ServerInfo()	{			if (!empty($this->host) && ADODB_PHPVER >= 0x4300) {			$dsn = strtoupper($this->host);			$first = true;			$found = false;						if (!function_exists('odbc_data_source')) return false;						while(true) {								$rez = odbc_data_source($this->_connectionID,					$first ? SQL_FETCH_FIRST : SQL_FETCH_NEXT);				$first = false;				if (!is_array($rez)) break;				if (strtoupper($rez['server']) == $dsn) {					$found = true;					break;				}			} 			if (!$found) return ADOConnection::ServerInfo();			if (!isset($rez['version'])) $rez['version'] = '';			return $rez;		} else {			return ADOConnection::ServerInfo();		}	}		function CreateSequence($seqname='adodbseq',$start=1)	{		if (empty($this->_genSeqSQL)) return false;		$ok = $this->Execute(sprintf($this->_genSeqSQL,$seqname));		if (!$ok) return false;		$start -= 1;		return $this->Execute("insert into $seqname values($start)");	}		var $_dropSeqSQL = 'drop table %s';	function DropSequence($seqname)	{		if (empty($this->_dropSeqSQL)) return false;		return $this->Execute(sprintf($this->_dropSeqSQL,$seqname));	}		/*		This algorithm is not very efficient, but works even if table locking		is not available.				Will return false if unable to generate an ID after $MAXLOOPS attempts.	*/	function GenID($seq='adodbseq',$start=1)	{			// if you have to modify the parameter below, your database is overloaded,		// or you need to implement generation of id's yourself!		$MAXLOOPS = 100;		//$this->debug=1;		while (--$MAXLOOPS>=0) {			$num = $this->GetOne("select id from $seq");			if ($num === false) {				$this->Execute(sprintf($this->_genSeqSQL ,$seq));					$start -= 1;				$num = '0';				$ok = $this->Execute("insert into $seq values($start)");				if (!$ok) return false;			} 			$this->Execute("update $seq set id=id+1 where id=$num");						if ($this->affected_rows() > 0) {				$num += 1;				$this->genID = $num;				return $num;			}		}		if ($fn = $this->raiseErrorFn) {			$fn($this->databaseType,'GENID',-32000,"Unable to generate unique id after $MAXLOOPS attempts",$seq,$num);		}		return false;	}	function ErrorMsg()	{		if ($this->_haserrorfunctions) {			if ($this->_errorMsg !== false) return $this->_errorMsg;			if (empty($this->_connectionID)) return @odbc_errormsg();			return @odbc_errormsg($this->_connectionID);		} else return ADOConnection::ErrorMsg();	}		function ErrorNo()	{				if ($this->_haserrorfunctions) {			if ($this->_errorCode !== false) {				// bug in 4.0.6, error number can be corrupted string (should be 6 digits)				return (strlen($this->_errorCode)<=2) ? 0 : $this->_errorCode;			}			if (empty($this->_connectionID)) $e = @odbc_error(); 			else $e = @odbc_error($this->_connectionID);						 // bug in 4.0.6, error number can be corrupted string (should be 6 digits)			 // so we check and patch			if (strlen($e)<=2) return 0;			return $e;		} else return ADOConnection::ErrorNo();	}			// returns true or false	function _connect($argDSN, $argUsername, $argPassword, $argDatabasename)	{	global $php_errormsg;				if (!function_exists('odbc_connect')) return false;				if ($this->debug && $argDatabasename && $this->databaseType != 'vfp') {			ADOConnection::outp("For odbc Connect(), $argDatabasename is not used. Place dsn in 1st parameter.");		}		$php_errormsg = '';		if ($this->curmode === false) $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword);		else $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword,$this->curmode);		$this->_errorMsg = $php_errormsg;		if (isset($this->connectStmt)) $this->Execute($this->connectStmt);				//if ($this->_connectionID) odbc_autocommit($this->_connectionID,true);		return $this->_connectionID != false;	}		// returns true or false	function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename)	{	global $php_errormsg;			if (!function_exists('odbc_connect')) return false;				$php_errormsg = '';		if ($this->debug && $argDatabasename) {			ADOConnection::outp("For odbc PConnect(), $argDatabasename is not used. Place dsn in 1st parameter.");		}	//	print "dsn=$argDSN u=$argUsername p=$argPassword<br>"; flush();		if ($this->curmode === false) $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword);		else $this->_connectionID = odbc_pconnect($argDSN,$argUsername,$argPassword,$this->curmode);				$this->_errorMsg = $php_errormsg;		if ($this->_connectionID && $this->autoRollback) @odbc_rollback($this->_connectionID);		if (isset($this->connectStmt)) $this->Execute($this->connectStmt);				return $this->_connectionID != false;	}	function BeginTrans()	{			if (!$this->hasTransactions) return false;		if ($this->transOff) return true; 		$this->transCnt += 1;		$this->_autocommit = false;		return odbc_autocommit($this->_connectionID,false);	}		function CommitTrans($ok=true) 	{ 		if ($this->transOff) return true; 		if (!$ok) return $this->RollbackTrans();		if ($this->transCnt) $this->transCnt -= 1;		$this->_autocommit = true;		$ret = odbc_commit($this->_connectionID);		odbc_autocommit($this->_connectionID,true);		return $ret;	}		function RollbackTrans()	{		if ($this->transOff) return true; 		if ($this->transCnt) $this->transCnt -= 1;		$this->_autocommit = true;		$ret = odbc_rollback($this->_connectionID);		odbc_autocommit($this->_connectionID,true);		return $ret;	}		function MetaPrimaryKeys($table)	{	global $ADODB_FETCH_MODE;			$savem = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		$qid = @odbc_primarykeys($this->_connectionID,'','',$table);				if (!$qid) {			$ADODB_FETCH_MODE = $savem;			return false;		}		$rs = new ADORecordSet_odbc($qid);		$ADODB_FETCH_MODE = $savem;				if (!$rs) return false;		$rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change;				$arr =& $rs->GetArray();		$rs->Close();		//print_r($arr);		$arr2 = array();		for ($i=0; $i < sizeof($arr); $i++) {			if ($arr[$i][3]) $arr2[] = $arr[$i][3];		}		return $arr2;	}				function &MetaTables($ttype=false)	{	global $ADODB_FETCH_MODE;			$savem = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		$qid = odbc_tables($this->_connectionID);				$rs = new ADORecordSet_odbc($qid);				$ADODB_FETCH_MODE = $savem;		if (!$rs) return false;				$rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change;				$arr =& $rs->GetArray();		//print_r($arr);				$rs->Close();		$arr2 = array();				if ($ttype) {			$isview = strncmp($ttype,'V',1) === 0;		}		for ($i=0; $i < sizeof($arr); $i++) {			if (!$arr[$i][2]) continue;			$type = $arr[$i][3];			if ($ttype) { 				if ($isview) {					if (strncmp($type,'V',1) === 0) $arr2[] = $arr[$i][2];				} else if (strncmp($type,'SYS',3) !== 0) $arr2[] = $arr[$i][2];			} else if (strncmp($type,'SYS',3) !== 0) $arr2[] = $arr[$i][2];		}		return $arr2;	}	/*/ SQL data type codes /#define	SQL_UNKNOWN_TYPE	0#define SQL_CHAR			1#define SQL_NUMERIC		 2#define SQL_DECIMAL		 3#define SQL_INTEGER		 4#define SQL_SMALLINT		5#define SQL_FLOAT		   6#define SQL_REAL			7#define SQL_DOUBLE		  8#if (ODBCVER >= 0x0300)#define SQL_DATETIME		9#endif#define SQL_VARCHAR		12/ One-parameter shortcuts for date/time data types /#if (ODBCVER >= 0x0300)#define SQL_TYPE_DATE	  91#define SQL_TYPE_TIME	  92#define SQL_TYPE_TIMESTAMP 93#define SQL_UNICODE                             (-95)#define SQL_UNICODE_VARCHAR                     (-96)#define SQL_UNICODE_LONGVARCHAR                 (-97)*/	function ODBCTypes($t)	{		switch ((integer)$t) {		case 1:			case 12:		case 0:		case -95:		case -96:			return 'C';		case -97:		case -1: //text			return 'X';		case -4: //image			return 'B';						case 91:		case 11:			return 'D';					case 92:		case 93:		case 9:	return 'T';		case 4:		case 5:		case -6:			return 'I';					case -11: // uniqidentifier			return 'R';		case -7: //bit			return 'L';				default:			return 'N';		}	}		function &MetaColumns($table)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品www牛牛影视| 欧美一级在线免费| 日韩一区二区三区三四区视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 国产精品国产三级国产普通话99 | 97se亚洲国产综合自在线不卡| 欧美日韩国产首页在线观看| 中文久久乱码一区二区| 毛片av一区二区三区| 色老汉一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 欧美高清dvd| 亚洲人成网站色在线观看| 九九精品一区二区| 91精品国产综合久久蜜臀| 亚洲一区免费在线观看| 色综合久久久久综合体| 欧美激情在线看| 国产乱子伦视频一区二区三区| 欧美一区二区在线视频| 亚洲bt欧美bt精品| 欧美三级乱人伦电影| 亚洲精品成人精品456| av一区二区三区黑人| 国产精品天美传媒沈樵| 国产综合久久久久影院| 精品久久国产老人久久综合| 日韩精品一级中文字幕精品视频免费观看 | 亚洲风情在线资源站| 一本久久精品一区二区| 日韩一区中文字幕| 成人性生交大合| 国产精品美女久久久久久久久 | 2014亚洲片线观看视频免费| 麻豆成人免费电影| 日韩三级伦理片妻子的秘密按摩| 日本不卡一区二区三区| 日韩一区二区三区免费观看| 精品一区二区三区在线播放| 久久网站最新地址| 国产成人免费在线| 国产精品嫩草久久久久| 色综合久久中文综合久久牛| 一区二区三区精品| 717成人午夜免费福利电影| 美国十次了思思久久精品导航| 日韩精品一区二区三区老鸭窝| 极品销魂美女一区二区三区| 久久你懂得1024| 成人深夜福利app| 亚洲色图都市小说| 欧美日韩一区国产| 久久精品国产99国产| 国产欧美一区二区在线观看| 国产v日产∨综合v精品视频| 欧美电影免费观看高清完整版在线 | 蜜臀国产一区二区三区在线播放 | 视频一区视频二区中文字幕| 91麻豆精品国产91久久久久| 美女在线视频一区| 久久精品视频一区| 91色九色蝌蚪| 国产69精品久久久久777| 国产女人18水真多18精品一级做| 美女视频第一区二区三区免费观看网站 | 国产成人免费xxxxxxxx| 亚洲色欲色欲www| 51精品视频一区二区三区| 国产精品一区在线观看乱码 | 99v久久综合狠狠综合久久| 亚洲综合一区在线| 精品国产3级a| 色先锋aa成人| 韩国av一区二区| 一片黄亚洲嫩模| 国产三级一区二区三区| 欧美日韩另类一区| 国产成a人亚洲| 日韩成人一区二区| 亚洲三级小视频| 欧美精品一区二区三区蜜桃| 在线视频你懂得一区二区三区| 丝袜脚交一区二区| 麻豆成人综合网| 国产日韩三级在线| 欧美猛男男办公室激情| 国产高清不卡一区| 日韩电影免费一区| 一区2区3区在线看| 国产三级久久久| 日韩一区二区电影网| 色狠狠av一区二区三区| 粉嫩嫩av羞羞动漫久久久| 麻豆精品视频在线观看视频| 亚洲第一成年网| 亚洲乱码国产乱码精品精98午夜| 久久久夜色精品亚洲| 欧美一区二区三区影视| 欧美日韩国产一区| 91免费视频观看| 99国产精品久久| 国产不卡高清在线观看视频| 精品亚洲国内自在自线福利| 天堂一区二区在线| 亚洲午夜一区二区三区| 一区二区在线观看免费视频播放| 中文字幕免费不卡| 久久久精品免费网站| 久久在线免费观看| 国产欧美一区二区三区沐欲 | 欧美猛男超大videosgay| 色香蕉成人二区免费| www.欧美.com| hitomi一区二区三区精品| 国产乱码精品一区二区三| 另类人妖一区二区av| 蜜臀av一区二区在线免费观看| 日韩在线卡一卡二| 欧美一区二区在线观看| 欧美少妇一区二区| 色综合一个色综合亚洲| 不卡一二三区首页| 91蜜桃视频在线| 色悠悠亚洲一区二区| 一本久久a久久精品亚洲| 91国偷自产一区二区开放时间 | 亚洲综合色噜噜狠狠| 一区二区三区四区激情| 亚洲一区二区精品视频| 亚洲v中文字幕| 丁香五精品蜜臀久久久久99网站| 国产曰批免费观看久久久| 黑人精品欧美一区二区蜜桃| 国产精品99久久久久久久vr| 欧美在线视频你懂得| 国产老女人精品毛片久久| 国产伦精品一区二区三区视频青涩| 久久精品国产成人一区二区三区| 国产在线播放一区| 成人免费视频caoporn| 日本国产一区二区| 欧美一区二区性放荡片| 久久色.com| 亚洲精品老司机| 青青草视频一区| 国产夫妻精品视频| 一本一道久久a久久精品| 欧美精品高清视频| 久久婷婷成人综合色| 亚洲精品ww久久久久久p站| 日韩在线一区二区| 大桥未久av一区二区三区中文| 色哟哟在线观看一区二区三区| 91精品国产综合久久久久| 久久久亚洲精品石原莉奈| 曰韩精品一区二区| 精品一区免费av| 色域天天综合网| 欧美一激情一区二区三区| 国产精品国产三级国产a| 日韩1区2区3区| 99re热视频精品| 欧美不卡一区二区三区| 亚洲精品免费看| 国产精品99久久久久久有的能看 | 精品亚洲porn| 在线观看国产精品网站| 国产欧美中文在线| 日本成人在线电影网| 色综合中文字幕国产| 2020国产精品| 男女男精品网站| 欧美三级一区二区| 亚洲欧洲成人自拍| 国产一区日韩二区欧美三区| 欧美精品日韩精品| 亚洲最大成人综合| av成人老司机| 国产精品美女视频| 国产精品456露脸| 日韩三级精品电影久久久 | 亚洲欧洲日韩综合一区二区| 久久99最新地址| 欧美一区二区人人喊爽| 自拍偷拍国产亚洲| 不卡的av电影| 国产欧美精品一区二区色综合| 久久成人18免费观看| 欧美日本不卡视频| 洋洋av久久久久久久一区| 91丨porny丨最新| 国产精品久久久久久久久搜平片| 国产精品99久久久久久似苏梦涵| 精品欧美黑人一区二区三区| 美脚の诱脚舐め脚责91| 日韩一级片在线播放| 人禽交欧美网站| 欧美成人一区二区三区片免费| 日本特黄久久久高潮| 日韩欧美国产综合一区|