mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-21 04:09:55 +09:00
DBCubrid class: removed duplicate fetch code from pagination, updates to update, delete, insert queries.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8442 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
251555245d
commit
2e122219f1
5 changed files with 99 additions and 181 deletions
|
|
@ -4,7 +4,6 @@ require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/ColumnTag.class.php');
|
|||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/SelectColumnsTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/InsertColumnsTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/UpdateColumnsTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/DeleteColumnsTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/table/TablesTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/condition/ConditionsTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/condition/JoinConditionsTag.class.php');
|
||||
|
|
@ -99,7 +98,7 @@ class QueryParser {
|
|||
}else if($this->action == 'update') {
|
||||
$columns = new UpdateColumnsTag($this->query->columns->column);
|
||||
}else if($this->action == 'delete') {
|
||||
$columns = new DeleteColumnsTag($this->query->columns->column);
|
||||
$columns = null;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -111,7 +110,8 @@ class QueryParser {
|
|||
$this->setTableColumnTypes($tables);
|
||||
|
||||
$arguments = array();
|
||||
$arguments = array_merge($arguments, $columns->getArguments());
|
||||
if($columns)
|
||||
$arguments = array_merge($arguments, $columns->getArguments());
|
||||
$arguments = array_merge($arguments, $conditions->getArguments());
|
||||
$arguments = array_merge($arguments, $navigation->getArguments());
|
||||
|
||||
|
|
@ -127,12 +127,14 @@ class QueryParser {
|
|||
$prebuff .= "\n";
|
||||
|
||||
$buff = '';
|
||||
$buff .= '$query->setColumns(' . $columns->toString() . ');'.PHP_EOL;
|
||||
if($columns)
|
||||
$buff .= '$query->setColumns(' . $columns->toString() . ');'.PHP_EOL;
|
||||
|
||||
$buff .= '$query->setTables(' . $tables->toString() .');'.PHP_EOL;
|
||||
$buff .= '$query->setConditions('.$conditions->toString() .');'.PHP_EOL;
|
||||
$buff .= '$query->setGroups(' . $groups->toString() . ');'.PHP_EOL;
|
||||
$buff .= '$query->setOrder(' . $navigation->getOrderByString() .');'.PHP_EOL;
|
||||
$buff .= $navigation->getLimitString()?'$query->setLimit(' . $navigation->getLimitString() .');'.PHP_EOL:"";
|
||||
$buff .= '$query->setLimit(' . $navigation->getLimitString() .');'.PHP_EOL;
|
||||
|
||||
return "<?php if(!defined('__ZBXE__')) exit();\n"
|
||||
. '$query = new Query();'.PHP_EOL
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class DeleteColumnTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'delete'
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
class DeleteColumnTag extends ColumnTag {
|
||||
var $argument;
|
||||
|
||||
function DeleteColumnTag($column) {
|
||||
parent::ColumnTag($column->attrs->name);
|
||||
$dbParser = XmlQueryParser::getDBParser();
|
||||
$this->name = $dbParser->parseColumnName($this->name);
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/queryargument/QueryArgument.class.php');
|
||||
$this->argument = new QueryArgument($column);
|
||||
}
|
||||
|
||||
function getExpressionString(){
|
||||
return sprintf('new DeleteExpression(\'%s\', $args->%s)'
|
||||
, $this->name
|
||||
, $this->argument->argument_name);
|
||||
}
|
||||
|
||||
function getArgument(){
|
||||
return $this->argument;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class DeleteColumnsTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'delete'
|
||||
*
|
||||
**/
|
||||
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/ColumnTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/DeleteColumnTag.class.php');
|
||||
|
||||
class DeleteColumnsTag{
|
||||
var $columns;
|
||||
|
||||
function DeleteColumnsTag($xml_columns) {
|
||||
$this->columns = array();
|
||||
|
||||
if(!$xml_columns)
|
||||
return;
|
||||
|
||||
if(!is_array($xml_columns)) $xml_columns = array($xml_columns);
|
||||
|
||||
foreach($xml_columns as $column){
|
||||
$this->columns[] = new DeleteColumnTag($column);
|
||||
}
|
||||
}
|
||||
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->columns as $column){
|
||||
$output_columns .= $column->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
|
||||
function getArguments(){
|
||||
$arguments = array();
|
||||
foreach($this->columns as $column){
|
||||
$arguments[] = $column->getArgument();
|
||||
}
|
||||
return $arguments;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue