summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmitry-radyno <dmitry.radyno@gmail.com>2012-12-04 13:51:02 +0200
committerdmitry-radyno <dmitry.radyno@gmail.com>2012-12-04 13:51:02 +0200
commitb3379dafcc6f3df12c63563a2a8123759c180c16 (patch)
tree2a5546d18aab56fa3c810f885de129393ac707d9
parent2fc255776e42d3a39cc83a0ea90ee4f60e75f0eb (diff)
downloadconnector-php-b3379dafcc6f3df12c63563a2a8123759c180c16.zip
connector-php-b3379dafcc6f3df12c63563a2a8123759c180c16.tar.gz
connector-php-b3379dafcc6f3df12c63563a2a8123759c180c16.tar.bz2
adodb database driver
-rw-r--r--codebase/db_adodb.php72
-rw-r--r--samples/grid/xx_adodb.html48
-rw-r--r--samples/grid/xx_adodb.php15
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">&lt;?php
+<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">require_once(</span><span style="color: #DD0000">"../config.php"</span><span style="color: #007700">);
+<br />&nbsp;&nbsp;&nbsp;&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;require(</span><span style="color: #DD0000">"../../codebase/grid_connector.php"</span><span style="color: #007700">);
+<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$grid&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">GridConnector</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">);
+<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$grid</span><span style="color: #007700">-&gt;</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 />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$grid</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dynamic_loading</span><span style="color: #007700">(</span><span style="color: #0000BB">100</span><span style="color: #007700">);
+<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$grid</span><span style="color: #007700">-&gt;</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">?&gt;</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