Exemple #1
0
 public function retorna($valor, $fase, $condicao, $estrutura)
 {
     $schema = $estrutura[EstruturaQuery::SCHEMA];
     $tabela = $estrutura[EstruturaQuery::TABELA];
     $coluna = $estrutura[EstruturaQuery::COLUNA];
     $sequences = $estrutura[EstruturaQuery::SEQUENCE];
     GerenciadorSequence::sobreCarregaCriados($sequences);
     $sequences = GerenciadorSequence::getCriados();
     $string = "";
     if (isset($valor)) {
         if (substr($valor, 0, strlen("nextval('")) == "nextval('" && $fase != FaseQuery::CREATE) {
             $fimSequence = strpos($valor, "':") - strlen("nextval('");
             $sequence = substr($valor, strlen("nextval('"), $fimSequence);
             if ($schema == "public") {
                 $sequence = "public." . $sequence;
             }
             if (isset($sequences)) {
                 if (!in_array($sequence, $sequences)) {
                     GerenciadorSequence::adicionaCriados($sequence);
                     $createSequence = "\n\n-------------------- CREATE DA SEQUENCE --------------------";
                     $createSequence .= "\nCREATE SEQUENCE {$sequence};";
                     GerenciadorSequence::adicionaQueryCriado($createSequence);
                     $setSequence = "\n\n-------------------- SET DA SEQUENCE --------------------";
                     $setSequence .= "\nSELECT setval('{$sequence}', MAX({$coluna})) FROM {$tabela};";
                     GerenciadorSequence::adicionaQuerySetado($setSequence);
                 } else {
                     $setSequence = "\n\n-------------------- SET DA SEQUENCE --------------------";
                     $setSequence .= "\nSELECT setval('{$sequence}', MAX({$coluna})) FROM {$tabela};";
                     GerenciadorSequence::adicionaQuerySetado($setSequence);
                 }
             }
         }
         switch ($fase) {
             case FaseQuery::CREATE:
                 $string = " DEFAULT {$valor} ";
                 break;
             case FaseQuery::ADD:
                 $string = "\n\tDEFAULT {$valor} ";
                 break;
             case FaseQuery::ALTER:
                 $string = "\nALTER TABLE {$tabela} ALTER COLUMN {$coluna} DROP DEFAULT;";
                 $string .= "\nALTER TABLE {$tabela} ALTER COLUMN {$coluna} SET DEFAULT {$valor};";
                 break;
             default:
                 break;
         }
         return $string;
     }
 }
Exemple #2
0
 public function createTable()
 {
     $empresa = $this->estrutura[EstruturaQuery::COMPANY];
     $schema = $this->estrutura[EstruturaQuery::SCHEMA];
     $sequence = $this->estrutura[EstruturaQuery::SEQUENCE];
     $tabelas = $this->diff_dev_homologQuery();
     $colunas = array();
     $stringResult = "\n\n-------------------- CREATE TABLE --------------------";
     if (!empty($tabelas)) {
         foreach ($tabelas as $tabela) {
             $string = "\n\nCREATE TABLE {$tabela}";
             $string .= "\n(\n";
             $colunaBO = new ColunaBO($empresa, $schema, $tabela, $sequence);
             $string .= $colunaBO->createColumn();
             $string .= "\n);";
             $stringResult .= GerenciadorSequence::getQueryCriado() . $string . GerenciadorSequence::getQuerySetado();
             $string = "";
         }
         return $stringResult;
     }
 }
Exemple #3
0
 public function resetSeqGerenciamento()
 {
     GerenciadorSequence::resetCriados();
     GerenciadorSequence::resetQueryCriado();
     GerenciadorSequence::resetQuerySetado();
 }
Exemple #4
0
<?php

class GerenciadorSequence
{
    public static $criado = array();
    public static $setado = array();
}
class Teste
{
    public function adicionar($valor)
    {
        GerenciadorSequence::$criado[] = $valor;
    }
}
$teste = new Teste();
$teste->adicionar("dfs");
$teste->adicionar("sfdsf");
echo "<pre>";
print_r(GerenciadorSequence::$criado);
echo "</pre>";
$teste->adicionar("dfs");
$teste->adicionar("sfdsf");
echo "<pre>";
print_r(GerenciadorSequence::$criado);
echo "</pre>";
GerenciadorSequence::$criado = array_unique(GerenciadorSequence::$criado);
echo "<pre>";
print_r(GerenciadorSequence::$criado);
echo "</pre>";
Exemple #5
0
 public function alterTable()
 {
     $empresa = $this->estrutura[EstruturaQuery::COMPANY];
     $schema = $this->estrutura[EstruturaQuery::SCHEMA];
     $sequence = $this->estrutura[EstruturaQuery::SEQUENCE];
     //$user = $this->estrutura[EstruturaQuery::USER];
     $fase = FaseQuery::ALTER;
     $tabelas = $this->intersect_homolog_devQuery();
     $colunas = array();
     $stringResult = "\n\n\n------------------------------ ALTER TABLE ------------------------------";
     $string = "";
     if (!empty($tabelas)) {
         foreach ($tabelas as $tabela) {
             $colunaBO = new ColunaBO($empresa, $schema, $tabela, $sequence, $fase);
             $string .= $colunaBO->dropColumn();
             $string .= $colunaBO->addColumn();
             $string .= $colunaBO->alterColumn();
             $indiceBO = new IndiceBO($empresa, $schema, $tabela);
             $string .= $indiceBO->dropIndice();
             $string .= $indiceBO->createIndex();
             $constraintBO = new ConstraintBO($empresa, $schema, $tabela, $fase);
             $string .= $constraintBO->dropConstraint();
             $string .= $constraintBO->addConstraint();
             $triggerBO = new TriggerBO($empresa, $schema, $tabela);
             $string .= $triggerBO->dropTrigger();
             $string .= $triggerBO->createTrigger();
             $stringResult .= GerenciadorSequence::getQueryCriado() . $string . GerenciadorSequence::getQuerySetado();
             $string = "";
         }
         return $stringResult . $string;
     }
 }
 public static function resetCriados()
 {
     self::$criados = array();
 }