Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

73 lines (68 sloc) 2.025 kb
<?php
/**
* CMssqlColumnSchema class file.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @author Christophe Boulain <Christophe.Boulain@gmail.com>
* @link http://www.yiiframework.com/
* @copyright Copyright &copy; 2008-2011 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
/**
* CMssqlColumnSchema class describes the column meta data of a MSSQL table.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @author Christophe Boulain <Christophe.Boulain@gmail.com>
* @version $Id$
* @package system.db.schema.mssql
*/
class CMssqlColumnSchema extends CDbColumnSchema
{
/**
* Extracts the PHP type from DB type.
* @param string $dbType DB type
*/
protected function extractType($dbType)
{
if(strpos($dbType,'float')!==false || strpos($dbType,'real')!==false)
$this->type='double';
else if(strpos($dbType,'bigint')===false && (strpos($dbType,'int')!==false || strpos($dbType,'smallint')!==false || strpos($dbType,'tinyint')))
$this->type='integer';
else if(strpos($dbType,'bit')!==false)
$this->type='boolean';
else
$this->type='string';
}
/**
* Extracts the default value for the column.
* The value is typecasted to correct PHP type.
* @param mixed $defaultValue the default value obtained from metadata
*/
protected function extractDefault($defaultValue)
{
if($this->dbType==='timestamp' )
$this->defaultValue=null;
else
parent::extractDefault(str_replace(array('(',')',"'"), '', $defaultValue));
}
/**
* Extracts size, precision and scale information from column's DB type.
* We do nothing here, since sizes and precisions have been computed before.
* @param string $dbType the column's DB type
*/
protected function extractLimit($dbType)
{
}
/**
* Converts the input value to the type that this column is of.
* @param mixed $value input value
* @return mixed converted value
*/
public function typecast($value)
{
if($this->type==='boolean')
return $value ? 1 : 0;
else
return parent::typecast($value);
}
}
Jump to Line
Something went wrong with that request. Please try again.