diff options
author | Stanislau <stanislau.wolski@gmail.com> | 2011-10-21 11:20:47 +0300 |
---|---|---|
committer | Stanislau <stanislau.wolski@gmail.com> | 2011-10-21 11:20:47 +0300 |
commit | 81ee5bbb46b7ff7f8ba422b226c5270ee3522831 (patch) | |
tree | c39dde09934db9b7d09249a1de5937d7194185a5 | |
parent | 03ded642b82d87380043f55a909f8765bec6cf2a (diff) | |
download | connector-php-81ee5bbb46b7ff7f8ba422b226c5270ee3522831.zip connector-php-81ee5bbb46b7ff7f8ba422b226c5270ee3522831.tar.gz connector-php-81ee5bbb46b7ff7f8ba422b226c5270ee3522831.tar.bz2 |
[add] SQL Anywhere DB wrapper
-rw-r--r-- | codebase/db_sasql.php | 51 | ||||
-rw-r--r-- | samples/config.php | 2 | ||||
-rw-r--r-- | samples/grid/xx_sample_sasql.html | 37 | ||||
-rw-r--r-- | samples/grid/xx_sample_sasql_connector.php | 11 |
4 files changed, 101 insertions, 0 deletions
diff --git a/codebase/db_sasql.php b/codebase/db_sasql.php new file mode 100644 index 0000000..f8eed78 --- /dev/null +++ b/codebase/db_sasql.php @@ -0,0 +1,51 @@ +<?php +require_once("db_common.php"); +/*! SaSQL implementation of DataWrapper +**/ +class SaSQLDBDataWrapper extends DBDataWrapper{ + private $last_id=""; //!< ID of previously inserted record + + public function query($sql){ + LogMaster::log($sql); + $res=sasql_query($this->connection, $sql); + if ($res===false) throw new Exception("SaSQL operation failed\n".sasql_error($this->connection)); + $this->last_result = $res; + return $res; + } + + public function get_next($res){ + if (!$res) + $res = $this->last_result; + + return sasql_fetch_assoc($res); + } + + protected function get_new_id(){ + return sasql_insert_id($this->connection); + } + + protected function insert_query($data,$request){ + $sql = parent::insert_query($data,$request); + $this->insert_operation=true; + return $sql; + } + + protected function select_query($select,$from,$where,$sort,$start,$count){ + $sql="SELECT " ; + if ($count) + $sql.=" TOP ".($count+$start); + $sql.=" ".$select." FROM ".$from; + if ($where) $sql.=" WHERE ".$where; + if ($sort) $sql.=" ORDER BY ".$sort; + return $sql; + } + + public function escape($data){ + return sasql_escape_string($this->connection, $data); + } + + public function begin_transaction(){ + $this->query("BEGIN TRAN"); + } +} +?>
\ No newline at end of file diff --git a/samples/config.php b/samples/config.php index 719e327..79d6843 100644 --- a/samples/config.php +++ b/samples/config.php @@ -9,4 +9,6 @@ $postrgre_connection = "host=localhost port=5432 dbname=sampleDB user=root password=1234"; //necessary for Oracle related samples only $oci_connection = "some here"; + //necessart for SQL Anywhere connection + $sasql_conn = "uid=DBA;pwd=sql"; ?>
\ No newline at end of file diff --git a/samples/grid/xx_sample_sasql.html b/samples/grid/xx_sample_sasql.html new file mode 100644 index 0000000..4d8b958 --- /dev/null +++ b/samples/grid/xx_sample_sasql.html @@ -0,0 +1,37 @@ +
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>For demo purpose only :: &1</title>
+
+
+
+
+<script src="../common/dhtmlx.js" type="text/javascript" charset="utf-8"></script>
+<script src="../../codebase/connector.js" type="text/javascript" charset="utf-8"></script>
+<link rel="stylesheet" href="../common/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("../common/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_sample_sasql_connector.php");
+ var dp = new dataProcessor("xx_sample_sasql_connector.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">pg_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$postrgre_connection</span><span style="color: #007700">);
<br />
<br /> require(</span><span style="color: #DD0000">"../../codebase/grid_connector.php"</span><span style="color: #007700">);
<br /> require(</span><span style="color: #DD0000">"../../codebase/db_postgre.php"</span><span style="color: #007700">);
<br />
<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">,</span><span style="color: #DD0000">"Postgre"</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">""</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_sample_sasql_connector.php b/samples/grid/xx_sample_sasql_connector.php new file mode 100644 index 0000000..798f84f --- /dev/null +++ b/samples/grid/xx_sample_sasql_connector.php @@ -0,0 +1,11 @@ +<?php + require_once("../config.php"); + $res = sasql_connect($sasql_conn); + + require("../../codebase/grid_connector.php"); + require("../../codebase/db_sasql.php"); + $grid = new GridConnector($res, "SaSQL"); + $grid->enable_log("temp.log",true); + $grid->dynamic_loading(100); + $grid->render_table("Contacts","ID","Surname,GivenName,Title"); +?>
\ No newline at end of file |