File: /home/centralexf/www/libraries/fof/query.sqlazure.php
<?php
/**
* @package FrameworkOnFramework
* @copyright Copyright (c)2010-2012 Nicholas K. Dionysopoulos
* @license GNU General Public License version 3, or later
*/
defined('_JEXEC') or die;
/**
* FrameworkOnFramework query building class; backported from Joomla! 1.7
*
* FrameworkOnFramework is a set of classes whcih extend Joomla! 1.5 and later's
* MVC framework with features making maintaining complex software much easier,
* without tedious repetitive copying of the same code over and over again.
*/
class FOFQuerySqlazure extends JDatabaseQuery
{
/**
* The character(s) used to quote SQL statement names such as table names or field names,
* etc. The child classes should define this as necessary. If a single character string the
* same character is used for both sides of the quoted name, else the first character will be
* used for the opening quote and the second for the closing quote.
*
* @var string
* @since 11.1
*/
protected $name_quotes = '';
/**
* The null or zero representation of a timestamp for the database driver. This should be
* defined in child classes to hold the appropriate value for the engine.
*
* @var string
* @since 11.1
*/
protected $null_date = '1900-01-01 00:00:00';
/**
* Magic function to convert the query to a string.
*
* @return string The completed query.
* @since 11.1
*/
public function __toString()
{
$query = '';
switch ($this->type)
{
case 'insert':
$query .= (string) $this->insert;
// Set method
if ($this->set) {
$query .= (string) $this->set;
}
// Columns-Values method
else if ($this->values) {
if ($this->columns) {
$query .= (string) $this->where;
}
$tableName = array_shift($this->insert->getElements());
$query .= 'VALUES ';
$query .= (string) $this->values;
$query = 'SET IDENTITY_INSERT '.$tableName.' ON;' .
$query .
'SET IDENTITY_INSERT '.$tableName.' OFF;';
}
break;
default:
$query = parent::__toString();
break;
}
return $query;
}
/**
* Casts a value to a char.
*
* Ensure that the value is properly quoted before passing to the method.
*
* @param string $value The value to cast as a char.
*
* @return string Returns the cast value.
* @since 11.1
*/
function castAsChar($value)
{
return 'CAST('.$value.' as NVARCHAR(10))';
}
/**
* Gets the function to determine the length of a character string.
*
* @param string $value A value.
*
* @return string The required char lenght call.
*
* @since 11.1
*/
function charLength($field)
{
return 'DATALENGTH('.$field.') IS NOT NULL';
}
/**
* Concatenates an array of column names or values.
*
* @param array $values An array of values to concatenate.
* @param string $separator As separator to place between each value.
*
* @return string The concatenated values.
*
* @since 11.1
*/
function concatenate($values, $separator = null)
{
if ($separator) {
return '('.implode('+'.$this->quote($separator).'+', $values).')';
}
else{
return '('.implode('+', $values).')';
}
}
/**
* Gets the current date and time.
*
* @return string
*
* @since 11.1
*/
function currentTimestamp()
{
return 'GETDATE()';
}
/**
* Get the length of a a string in bytes.
*
* @param string $value The string to measure.
*
* @return int
*
* @since 11.1
*/
function length($value)
{
return 'LEN('.$value.')';
}
}