Spec-Zone.ru › Yii 1.1

CCubridSchema

Пакет system.db.schema.cubrid
Наследование класс CCubridSchema » CDbSchema » CComponent
С момента 1.1.16
Исходный код framework/db/schema/cubrid/CCubridSchema.php
CCubridSchema — класс для получения метаданных из базы данных CUBRID (версия 8.4.0 и выше).

Публичные свойства

Свойство Тип Описание Определено в
columnTypes CCubridSchema
commandBuilder CDbCommandBuilder построитель SQL-команд для этого подключения. CDbSchema
dbConnection CDbConnection подключение к базе данных. CDbSchema
tableNames массив Возвращает все имена таблиц в базе данных. CDbSchema
tables массив Возвращает метаданные для всех таблиц в базе данных. CDbSchema

Защищенные свойства

Свойство Тип Описание Определено в
serverVersion float версия сервера. CCubridSchema

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CDbSchema
__get() Возвращает значение свойства, список обработчиков событий или поведение по его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
addColumn() Создаёт SQL-запрос для добавления нового столбца БД. CDbSchema
addForeignKey() Создаёт SQL-запрос для добавления ограничения внешнего ключа к существующей таблице. CDbSchema
addPrimaryKey() Создаёт SQL-запрос для добавления ограничения первичного ключа к существующей таблице. CDbSchema
alterColumn() Создаёт SQL-запрос для изменения определения столбца. CDbSchema
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к данному компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
checkIntegrity() Включает или отключает проверку целостности. CDbSchema
compareTableNames() Сравнивает два имени таблиц. CCubridSchema
createIndex() Создаёт SQL-запрос для создания нового индекса. CDbSchema
createTable() Создаёт SQL-запрос для создания новой таблицы БД. CDbSchema
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые поведения данного компонента. CComponent
dropColumn() Создаёт SQL-запрос для удаления столбца БД. CDbSchema
dropForeignKey() Создаёт SQL-запрос для удаления ограничения внешнего ключа. CDbSchema
dropIndex() Создаёт SQL-запрос для удаления индекса. CDbSchema
dropPrimaryKey() Создаёт SQL-запрос для удаления ограничения первичного ключа из существующей таблицы. CDbSchema
dropTable() Создаёт SQL-запрос для удаления таблицы БД. CDbSchema
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые поведения данного компонента. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте данного компонента. CComponent
getColumnType() Преобразует абстрактный тип столбца в физический тип столбца. CDbSchema
getCommandBuilder() Возвращает создатель SQL-команд для данного соединения. CDbSchema
getDbConnection() Возвращает соединение с базой данных. Соединение активно. CDbSchema
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getTable() Получает метаданные для указанной таблицы. CDbSchema
getTableNames() Возвращает все имена таблиц в базе данных. CDbSchema
getTables() Возвращает метаданные для всех таблиц в базе данных. CDbSchema
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеет ли указанное событие присоединённые обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
quoteColumnName() Приводит имя столбца к цитируемому виду для использования в запросе. CDbSchema
quoteSimpleColumnName() Приводит имя столбца к цитируемому виду для использования в запросе. CCubridSchema
quoteSimpleTableName() Приводит имя таблицы к цитируемому виду для использования в запросе. CCubridSchema
quoteTableName() Приводит имя таблицы к цитируемому виду для использования в запросе. CDbSchema
raiseEvent() Вызывает событие. CComponent
refresh() Обновляет схему. CDbSchema
renameColumn() Создаёт SQL-запрос для переименования столбца. CDbSchema
renameTable() Создаёт SQL-запрос для переименования таблицы БД. CDbSchema
resetSequence() Сбрасывает значение последовательности первичного ключа таблицы. CCubridSchema
truncateTable() Создаёт SQL-запрос для обнуления таблицы БД. CDbSchema

Защищенные методы

Метод Описание Определено в
createColumn() Создаёт столбец таблицы. CCubridSchema
createCommandBuilder() Создаёт билдер команд для базы данных. CDbSchema
findColumns() Собрать метаданные столбцов таблицы. CCubridSchema
findConstraints() Собрать данные о столбцах внешних ключей для заданной таблицы. CCubridSchema
findPrimaryKeys() Собрать данные о столбцах первичного ключа для заданной таблицы. CCubridSchema
findTableNames() Возвращает все имена таблиц в базе данных. CCubridSchema
getServerVersion() Возвращает версию сервера. CCubridSchema
loadTable() Создаёт экземпляр таблицы, представляющий метаданные для указанной таблицы. CCubridSchema
resolveTableNames() Генерирует различные типы имён таблиц. CCubridSchema

Подробное описание свойств

columnTypes свойство

public $columnTypes;

serverVersion свойство только для чтения

protected float getServerVersion()

версия сервера.

Подробное описание методов

compareTableNames() метод

public boolean compareTableNames(string $name1, string $name2)
$name1 строка имя таблицы 1
$name2 строка имя таблицы 2
{return} логическое являются ли два имени таблиц ссылками на одну и ту же таблицу.
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#69 (показать)
public function compareTableNames($name1,$name2)
{
    return 
parent::compareTableNames(strtolower($name1),strtolower($name2));
}

Сравнивает два имени таблиц. Имена таблиц могут быть как с кавычками, так и без. Этот метод учитывает оба случая.

createColumn() метод

protected CDbColumnSchema createColumn(array $column)
$column массив метаданные столбца
{return} CDbColumnSchema нормализованные метаданные столбца
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#165 (показать)
protected function createColumn($column)
{
    
$c=new CCubridColumnSchema;
    
$c->name=$column['Field'];
    
$c->rawName=$this->quoteColumnName($c->name);
    
$c->allowNull=$column['Null']==='YES';
    
$c->isPrimaryKey=strpos($column['Key'],'PRI')!==false;
    
$c->isForeignKey=false;
    
$c->init($column['Type'],$column['Default']);
    
$c->autoIncrement=strpos(strtolower($column['Extra']),'auto_increment')!==false;

    return 
$c;
}

Создаёт столбец таблицы.

findColumns() метод

protected boolean findColumns(CCubridTableSchema $table)
$table CCubridTableSchema метаданные таблицы
{return} логическое существует ли таблица в базе данных
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#140 (показать)
protected function findColumns($table)
{
    
// it may be good to use CUBRID PHP API to retrieve column info.
    
$sql='SHOW COLUMNS FROM '.$table->rawName;
    try
    {
        
$columns=$this->getDbConnection()->createCommand($sql)->queryAll();
    }
    catch(
Exception $e)
    {
        return 
false;
    }
    foreach(
$columns as $column)
    {
        
$c=$this->createColumn($column);
        
$table->columns[$c->name]=$c;
    }
    return 
true;
}

Собрать метаданные столбцов таблицы.

findConstraints() метод

protected void findConstraints(CCubridTableSchema $table)
$table CCubridTableSchema метаданные таблицы
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#194 (показать)
protected function findConstraints($table)
{
    
$schemas=$this->getDbConnection()->getPdoInstance()->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS,$table->name);

    foreach(
$schemas as $schema)
    {
        
$table->foreignKeys[$schema["FKCOLUMN_NAME"]]=array($schema["PKTABLE_NAME"],$schema["PKCOLUMN_NAME"]);
        if(isset(
$table->columns[$schema["FKCOLUMN_NAME"]]))
            
$table->columns[$schema["FKCOLUMN_NAME"]]->isForeignKey=true;
    }
}

Собрать данные о столбцах внешних ключей для заданной таблицы.

findPrimaryKeys() метод

protected void findPrimaryKeys(CCubridTableSchema $table)
$table CCubridTableSchema метаданные таблицы
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#210 (показать)
protected function findPrimaryKeys($table)
{
    
$pks=$this->getDbConnection()->getPdoInstance()->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY,$table->name);

    foreach(
$pks as $pk)
    {
        
$c = $table->columns[$pk['ATTR_NAME']];
        
$c->isPrimaryKey = true;

        if(
$table->primaryKey===null)
            
$table->primaryKey=$c->name;
        elseif(
is_string($table->primaryKey))
            
$table->primaryKey=array($table->primaryKey,$c->name);
        else
            
$table->primaryKey[]=$c->name;
        if(
$c->autoIncrement)
            
$table->sequenceName='';
    }
}

Собрать данные о столбцах первичного ключа для заданной таблицы.

findTableNames() метод

protected array findTableNames(string $schema='')
$schema строка схема таблиц. По умолчанию пустая строка, что означает текущую или стандартную схему. Если не пустая, возвращаемые имена таблиц будут с префиксом имени схемы.
{return} массив все имена таблиц в базе данных.
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#236 (показать)
protected function findTableNames($schema='')
{
    
// CUBRID does not allow to look into another database from within another connection.
    // If necessary user has to establish a connection to that particular database and
    // query to show all tables. For this reason if a user executes this funtion
    // we will return all table names of the currently connected database.
    
return $this->getDbConnection()->createCommand('SHOW TABLES')->queryColumn();
}

Возвращает все имена таблиц в базе данных.

getServerVersion() метод

protected float getServerVersion()
{return} вещественное версия сервера.
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#182 (показать)
protected function getServerVersion()
{
    
$version=$this->getDbConnection()->getAttribute(PDO::ATTR_SERVER_VERSION);
    
$digits=array();
    
preg_match('/(\d+)\.(\d+)\.(\d+).(\d+)/', $version, $digits);
    return 
floatval($digits[1].'.'.$digits[2].$digits[3].'.'.$digits[4]);
}

loadTable() метод

protected CCubridTableSchema loadTable(string $name)
$name строка имя таблицы
{return} CCubridTableSchema зависимая от драйвера метаданные таблицы. Нуль, если таблица не существует.
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#99 (показать)
protected function loadTable($name)
{
    
$table=new CCubridTableSchema;
    
$this->resolveTableNames($table,$name);

    if(
$this->findColumns($table))
    {
        
$this->findPrimaryKeys($table);
        
$this->findConstraints($table);
        return 
$table;
    }
    else
        return 
null;
}

Создаёт экземпляр таблицы, представляющий метаданные для указанной таблицы.

quoteSimpleColumnName() метод

public string quoteSimpleColumnName(string $name)
$name строка имя столбца
{return} строка правильно обрамленное имя столбца
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#56 (показать)
public function quoteSimpleColumnName($name)
{
    return 
'`'.$name.'`';
}

Обрамляет имя столбца для использования в запросе. Простое имя столбца не содержит префикса.

quoteSimpleTableName() метод

public string quoteSimpleTableName(string $name)
$name строка имя таблицы
{return} строка правильно обрамленное имя таблицы
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#45 (показать)
public function quoteSimpleTableName($name)
{
    return 
'`'.$name.'`';
}

Обрамляет имя таблицы для использования в запросе. Простое имя таблицы не имеет префикса схемы.

resetSequence() метод

public void resetSequence(CDbTableSchema $table, mixed $value=NULL)
$table CDbTableSchema схема таблицы, последовательность первичного ключа которой будет сброшена
$value смешанный значение первичного ключа для следующей новой вставленной строки. Если не задано, первичный ключ следующей новой строки будет равен 1.
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#82 (показать)
public function resetSequence($table,$value=null)
{
    if(
$table->sequenceName!==null)
    {
        if(
$value===null)
            
$value=$this->getDbConnection()->createCommand("SELECT MAX(`{$table->primaryKey}`) FROM {$table->rawName}")->queryScalar()+1;
        else
            
$value=(int)$value;
        
$this->getDbConnection()->createCommand("ALTER TABLE {$table->rawName} AUTO_INCREMENT=$value")->execute();
    }
}

Сбрасывает значение последовательности первичного ключа таблицы. Последовательность будет сброшена таким образом, что первичный ключ следующей новой вставленной строки будет иметь указанное значение или 1.

resolveTableNames() метод

protected void resolveTableNames(CCubridTableSchema $table, string $name)
$table CCubridTableSchema экземпляр таблицы
$name строка необработанное имя таблицы
Исходный код: framework/db/schema/cubrid/CCubridSchema.php#119 (показать)
protected function resolveTableNames($table,$name)
{
    
$parts=explode('.',str_replace('`','',$name));
    if(isset(
$parts[1]))
    {
        
$table->schemaName=$parts[0];
        
$table->name=$parts[1];
        
$table->rawName=$this->quoteTableName($table->schemaName).'.'.$this->quoteTableName($table->name);
    }
    else
    {
        
$table->name=$parts[0];
        
$table->rawName=$this->quoteTableName($table->name);
    }
}

Генерирует различные виды имен таблиц.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CCubridSchema

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API