diff options
author | dmitry-radyno <dmitry.radyno@gmail.com> | 2012-12-04 13:51:02 +0200 |
---|---|---|
committer | dmitry-radyno <dmitry.radyno@gmail.com> | 2012-12-04 13:51:02 +0200 |
commit | b3379dafcc6f3df12c63563a2a8123759c180c16 (patch) | |
tree | 2a5546d18aab56fa3c810f885de129393ac707d9 | |
parent | 2fc255776e42d3a39cc83a0ea90ee4f60e75f0eb (diff) | |
download | connector-php-b3379dafcc6f3df12c63563a2a8123759c180c16.zip connector-php-b3379dafcc6f3df12c63563a2a8123759c180c16.tar.gz connector-php-b3379dafcc6f3df12c63563a2a8123759c180c16.tar.bz2 |
adodb database driver
-rw-r--r-- | codebase/db_adodb.php | 72 | ||||
-rw-r--r-- | samples/grid/xx_adodb.html | 48 | ||||
-rw-r--r-- | samples/grid/xx_adodb.php | 15 |
3 files changed, 135 insertions, 0 deletions
diff --git a/codebase/db_adodb.php b/codebase/db_adodb.php new file mode 100644 index 0000000..5250c21 --- /dev/null +++ b/codebase/db_adodb.php @@ -0,0 +1,72 @@ +<?php +/* + @author dhtmlx.com + @license GPL, see license.txt +*/ +require_once("db_common.php"); +/*! Implementation of DataWrapper for PostgreSQL +**/ +class AdoDBDataWrapper extends DBDataWrapper{ + protected $last_result; + public function query($sql){ + LogMaster::log($sql); + if (is_array($sql)) { + $res = $this->connection->SelectLimit($sql['sql'], $sql['numrows'], $sql['offset']); + } else { + $res = $this->connection->Execute($sql); + } + + if ($res===false) throw new Exception("ADODB operation failed\n".$this->connection->ErrorMsg()); + $this->last_result = $res; + return $res; + } + + public function get_next($res){ + if (!$res) + $res = $this->last_result; + + if ($res->EOF) + return false; + + $row = $res->GetRowAssoc(false); + $res->MoveNext(); + return $row; + } + + protected function get_new_id(){ + return $this->connection->Insert_ID(); + } + + public function escape($data){ + return $this->connection->addq($data); + } + + /*! escape field name to prevent sql reserved words conflict + @param data + unescaped data + @return + escaped data + */ + public function escape_name($data){ + if ((strpos($data,"`")!==false || is_int($data)) || (strpos($data,".")!==false)) + return $data; + return '`'.$data.'`'; + } + + + protected function select_query($select,$from,$where,$sort,$start,$count){ + if (!$from) + return $select; + + $sql="SELECT ".$select." FROM ".$from; + if ($where) $sql.=" WHERE ".$where; + if ($sort) $sql.=" ORDER BY ".$sort; + + if ($start || $count) { + $sql=array("sql"=>$sql,'numrows'=>$count, 'offset'=>$start); + } + return $sql; + } + +} +?>
\ No newline at end of file diff --git a/samples/grid/xx_adodb.html b/samples/grid/xx_adodb.html new file mode 100644 index 0000000..041c0e6 --- /dev/null +++ b/samples/grid/xx_adodb.html @@ -0,0 +1,48 @@ + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>For demo purpose only :: &1</title> + + + + +<script src="../dhtmlx/dhtmlx.js" type="text/javascript" charset="utf-8"></script> +<script src="../dhtmlx/dhtmlxdataprocessor.js" type="text/javascript" charset="utf-8"></script> +<script src="../../codebase/connector.js" type="text/javascript" charset="utf-8"></script> +<link rel="stylesheet" href="../dhtmlx/dhtmlx.css" type="text/css" charset="utf-8"> +</head> +<body> + <div id="gridbox" width="350px" height="550px" style="background-color:white;overflow:hidden"></div> +<script> + mygrid = new dhtmlXGridObject('gridbox'); + mygrid.setImagePath("../dhtmlx/imgs/"); + mygrid.setHeader("Column A, Column B"); + mygrid.attachHeader("#connector_text_filter,#connector_text_filter") + mygrid.setInitWidths("100,*") + mygrid.setColTypes("edtxt,ed"); + mygrid.setColSorting("connector,connector") + mygrid.enableSmartRendering(true) + mygrid.enableMultiselect(true) + mygrid.init(); + mygrid.loadXML("xx_adodb.php"); + var dp = new dataProcessor("xx_adodb.php"); + dp.init(mygrid); +</script> +<input type="button" name="add" value="add row" onclick="var id=mygrid.uid(); mygrid.addRow(id,'',0); mygrid.showRow(id);"> +<input type="button" name="delete" value="delete row" onclick="mygrid.deleteSelectedRows()"> +<div class='code'><code><span style="color: #000000"> +<span style="color: #0000BB"><?php +<br /> </span><span style="color: #007700">require_once(</span><span style="color: #DD0000">"../config.php"</span><span style="color: #007700">); +<br /> </span><span style="color: #0000BB">$res</span><span style="color: #007700">=</span><span style="color: #0000BB">mysql_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysql_server</span><span style="color: #007700">,</span><span style="color: #0000BB">$mysql_user</span><span style="color: #007700">,</span><span style="color: #0000BB">$mysql_pass</span><span style="color: #007700">); +<br /> </span><span style="color: #0000BB">mysql_select_db</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysql_db</span><span style="color: #007700">); +<br /> +<br /> require(</span><span style="color: #DD0000">"../../codebase/grid_connector.php"</span><span style="color: #007700">); +<br /> </span><span style="color: #0000BB">$grid </span><span style="color: #007700">= new </span><span style="color: #0000BB">GridConnector</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">); +<br /> </span><span style="color: #0000BB">$grid</span><span style="color: #007700">-></span><span style="color: #0000BB">enable_log</span><span style="color: #007700">(</span><span style="color: #DD0000">"temp.log"</span><span style="color: #007700">,</span><span style="color: #0000BB">true</span><span style="color: #007700">); +<br /> </span><span style="color: #0000BB">$grid</span><span style="color: #007700">-></span><span style="color: #0000BB">dynamic_loading</span><span style="color: #007700">(</span><span style="color: #0000BB">100</span><span style="color: #007700">); +<br /> </span><span style="color: #0000BB">$grid</span><span style="color: #007700">-></span><span style="color: #0000BB">render_table</span><span style="color: #007700">(</span><span style="color: #DD0000">"grid50000"</span><span style="color: #007700">,</span><span style="color: #DD0000">"item_id"</span><span style="color: #007700">,</span><span style="color: #DD0000">"item_nm,item_cd"</span><span style="color: #007700">); +<br /></span><span style="color: #0000BB">?></span> +</span> +</code></div></body> +</html> diff --git a/samples/grid/xx_adodb.php b/samples/grid/xx_adodb.php new file mode 100644 index 0000000..2fd2f8e --- /dev/null +++ b/samples/grid/xx_adodb.php @@ -0,0 +1,15 @@ +<?php + + require_once("../config.php"); + require_once("./adodb5/adodb.inc.php"); + + $db = ADONewConnection('mysql'); + $db->Connect($mysql_server,$mysql_user,$mysql_pass, $mysql_db); + + require("../../codebase/grid_connector.php"); + require("../../codebase/db_adodb.php"); + $grid = new GridConnector($db, "Ado"); + $grid->dynamic_loading(100); + $grid->render_table("grid50000","item_id","item_nm,item_cd"); + +?>
\ No newline at end of file |