public function getSocial()
 {
     //RECUPERA CONEXAO BANCO DE DADOS
     TTransaction::open('my_bd_site');
     //TABELA exposition_gallery
     $criteria = new TCriteria();
     $criteria->setProperty('order', 'nome ASC');
     // instancia a instrução de SELECT
     $sql = new TSqlSelect();
     $sql->addColumn('*');
     $sql->setEntity('social');
     //  atribui o critério passado como parâmetro
     $sql->setCriteria($criteria);
     // obtém transação ativa
     if ($conn = TTransaction::get()) {
         // registra mensagem de log
         TTransaction::log($sql->getInstruction());
         // executa a consulta no banco de dados
         $result = $conn->Query($sql->getInstruction());
         $this->results = array();
         if ($result) {
             // percorre os resultados da consulta, retornando um objeto
             while ($row = $result->fetchObject()) {
                 // armazena no array $this->results;
                 $this->results[] = $row;
             }
         }
     }
     TTransaction::close();
     return $this->results;
 }
 public static function run()
 {
     self::$time_start = microtime(true);
     $log_msg = "";
     // TODO: Substituir por $_POST
     if (isset($_GET['class'])) {
         $class_name = $_GET['class'];
         if (class_exists($class_name)) {
             try {
                 /** @var SimpleAction $action */
                 $action = new $class_name();
                 $result = $action->run();
                 self::$result = array_merge(self::$result, $result);
                 TTransaction::close();
             } catch (PDOException $pdo_e) {
                 // Grava a excessão que ocorreu.
                 $log_msg = $pdo_e->getMessage();
                 switch ($pdo_e->errorInfo[1]) {
                     case 1062:
                     case 1452:
                         self::$result["error"] = $pdo_e->errorInfo[1];
                         break;
                     default:
                         self::$result["error"] = 101;
                 }
                 TTransaction::rollback();
             } catch (Exception $e) {
                 // Grava a excessão que ocorreu.
                 $log_msg = $e->getMessage();
                 self::$result["error"] = 1;
                 TTransaction::rollback();
             }
         } else {
             self::$result["error"] = 2;
         }
         if (self::$result["msg"] == null) {
             self::$result["msg"] = Tools::get_error_msg(self::$result["error"]);
         }
         $log_msg = $log_msg ? $log_msg : self::$result["msg"];
         if (isset(self::$result["error"]) && self::$result["error"] != 0) {
             TTransaction::log($log_msg, 'error');
         }
         self::addCurrentTime('Fim de chamada');
         self::$result['time'] = self::$times;
         echo json_encode(self::$result);
     }
 }
 function count(TCriteria $criteria)
 {
     $sql = new TSqlSelect();
     $sql->addColumn(' count(*) ');
     $sql->setEntity(constant($this->class . '::TABLENAME'));
     $sql->setCriteria($criteria);
     if ($conn = TTransaction::get()) {
         TTransaction::log($sql->getInstruction());
         $result = $conn->query($sql->getInstruction());
         if ($result) {
             $row = $result->fetch();
         }
         return $row[0];
     } else {
         throw new Exception('Não há transação ativa!');
     }
 }
 public function __construct()
 {
     parent::__construct();
     try {
         TTransaction::open('samples');
         // abre uma transação
         // define o log
         TTransaction::setLogger(new TLoggerTXT('/tmp/log.txt'));
         TTransaction::log("** inserindo cidade");
         $cidade = new City();
         // cria novo objeto
         $cidade->name = 'Porto Alegre';
         $cidade->store();
         // armazena o objeto
         new TMessage('info', 'Objeto armazenado com sucesso');
         TTransaction::close();
         // fecha a transação.
     } catch (Exception $e) {
         new TMessage('error', $e->getMessage());
     }
 }
Exemple #5
0
 public function __construct()
 {
     parent::__construct();
     try {
         TTransaction::open('samples');
         // open transaction
         // define log
         TTransaction::setLogger(new TLoggerTXT('/tmp/log.txt'));
         TTransaction::log("** inserting city");
         $cidade = new City();
         // create new object
         $cidade->name = 'Porto Alegre';
         $cidade->store();
         // store the object
         new TMessage('info', 'Objeto stored successfully');
         TTransaction::close();
         // close transaction
     } catch (Exception $e) {
         new TMessage('error', $e->getMessage());
     }
 }
 public function action()
 {
     parent::get_input('mailTo');
     //SMTP needs accurate times, and the PHP time zone MUST be set
     //This should be done in your php.ini, but this is how to do it if you don't have access to that
     date_default_timezone_set('Etc/UTC');
     //Create a new PHPMailer instance
     $mail = new PHPMailer();
     $this->setupDebug($mail);
     //$mail->isMail();
     //$this->setupSendMail($mail);
     $this->setupSMTP($mail);
     //Set who the message is to be sent from
     $mail->setFrom(parent::get_input('from_mail'), parent::get_input('from_name'));
     //Set who the message is to be sent to
     $mail->addAddress(parent::get_input('to_mail'), parent::get_input('to_name'));
     //Set an alternative reply-to address
     $mail->addReplyTo(parent::get_input('reply_mail'), parent::get_input('reply_name'));
     //Set the subject line
     $mail->Subject = parent::get_input('subject');
     //Read an HTML message body from an external file, convert referenced images to embedded,
     //convert HTML into a basic plain-text alternative body
     $mail->msgHTML(parent::get_input('body'));
     //Replace the plain text body with one created manually
     $mail->AltBody = parent::get_input('alt_body');
     //Attach an image file
     //$mail->addAttachment('images/phpmailer_mini.gif');
     //send the message, check for errors
     if (!$mail->send()) {
         TTransaction::log($mail->ErrorInfo);
         parent::set_error(1, "Mensagem não enviada!");
     } else {
         parent::set_result('Enviado', date('d.m.Y H:i:sy'));
     }
     return parent::get_result();
 }
    $criteria = new TCriteria();
    $criteria->add(new TFilter('turno', '=', 'T'));
    // instancia repositório de Turmas
    $repository = new TRepository('Turma');
    // retorna todos objetos que satisfazem o critério
    $turmas = $repository->load($criteria);
    // verifica se retornou alguma turma
    if ($turmas) {
        // percorre todas turmas retornadas
        foreach ($turmas as $turma) {
            // exclui a turma
            $turma->delete();
        }
    }
    // segundo exemplo, exclui as inscrições do aluno "1"
    TTransaction::log("** exclui as inscrições do aluno '1'");
    // instancia critério de seleção de dados ref_aluno ='1'
    $criteria = new TCriteria();
    $criteria->add(new TFilter('ref_aluno', '=', 1));
    // instancia repositório de Inscrição
    $repository = new TRepository('Inscricao');
    // exclui todos objetos que satisfaçam este critério de seleção
    $repository->delete($criteria);
    echo "registros excluídos com sucesso <br>\n";
    // finaliza a transação
    TTransaction::close();
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
    echo '<b>Erro</b>' . $e->getMessage();
    // desfaz todas alterações no banco de dados
    TTransaction::rollback();
 $daline->nome = 'Daline Dall Oglio';
 $daline->endereco = 'Rua da Conceição';
 $daline->telefone = '(51) 1111-2222';
 $daline->cidade = 'Cruzeiro do Sul';
 $daline->store();
 // armazena o objeto
 // instancia um novo objeto Aluno
 $william = new Aluno();
 $william->nome = 'William Scatolla';
 $william->endereco = 'Rua de Fátima';
 $william->telefone = '(51) 1111-4444';
 $william->cidade = 'Encantado';
 $william->store();
 // armazena o objeto
 // armazena esta frase no arquivo de LOG
 TTransaction::log("** inserindo cursos");
 // instancia um novo objeto Curso
 $curso = new Curso();
 $curso->descricao = 'Orientação a Objetos com PHP';
 $curso->duracao = 24;
 $curso->store();
 // armazena o objeto
 // instancia um novo objeto Curso
 $curso = new Curso();
 $curso->descricao = 'Desenvolvendo em PHP-GTK';
 $curso->duracao = 32;
 $curso->store();
 // armazena o objeto
 // finaliza a transação
 TTransaction::close();
 echo "Registros inseridos com Sucesso<br>\n";
Exemple #9
0
    //Escreva Mensagem de LOG
    TTransaction::log("Inserindo Registo Martins Isata");
    //Criar uma instrução INSERT
    $sql = new TSqlInsert();
    $sql->setEntity(' famosos ');
    $sql->setRowData(' codigo ', 3);
    $sql->setRowData(' nome ', 'Martins Isata');
    //Obtêm a conexão activa
    $conn = TTransaction::get();
    $result = $conn->Query($sql->getInstruction());
    //Escreve a mensagem
    TTransaction::log($sql->getInstruction());
    //Definir a Etrstegia de LOG
    TTransaction::setLogger(new TLoggerXML('C:\\Apache24\\htdocs\\programandoComOO\\tmp\\arquivo.xml'));
    //Escreve a Mensagem de LOG
    TTransaction::log("Inserindo Registo de Nerilia Tavares");
    //Criar uma instrução INSERT
    $sql = new TSqlInsert();
    $sql->setEntity('famosos');
    $sql->setRowData(' codigo ', 4);
    $sql->setRowData(' nome ', ' Nerilia Tavares ');
    //Obter a conexão activa
    $conn = TTransaction::get();
    $result = $conn->Query($sql->getInstruction());
    //fecha a Transação aplicado todas as operações
    TTransaction::close();
} catch (Exception $e) {
    // Exibe a mensagem de erro
    echo $e->getMessage();
    //desfazer operações realizadas pela transação
    TTransaction::rollback();
    TTransaction::setLogger(new TLoggerTXT('/tmp/log10.txt'));
    // armazena esta frase no arquivo de LOG
    TTransaction::log("** inserindo turma 1");
    // instancia um novo objeto Turma
    $turma = new Turma();
    $turma->dia_semana = 1;
    $turma->turno = 'M';
    $turma->professor = 'Carlo Bellini';
    $turma->sala = '100';
    $turma->data_inicio = '2002-09-01';
    $turma->encerrada = FALSE;
    $turma->ref_curso = 2;
    $turma->store();
    // armazena o objeto
    // armazena esta frase no arquivo de LOG
    TTransaction::log("** inserindo turma 2");
    $turma = new Turma();
    $turma->dia_semana = 'Segunda';
    $turma->turno = 'Manhã';
    $turma->professor = 'Sérgio Crespo';
    $turma->sala = '200';
    $turma->data_inicio = '2004-09-01';
    $turma->encerrada = FALSE;
    $turma->ref_curso = 3;
    $turma->store();
    // armazena o objeto
    // finaliza a transação
    TTransaction::close();
    echo "Registros inseridos com Sucesso<br>\n";
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
 private function getLast()
 {
     if ($conn = TTransaction::get()) {
         // cria instrução SQL
         $sql = new TSqlSelect();
         $sql->addColumn('max(ID) as ID');
         $sql->setEntity($this->getEntity());
         TTransaction::log($sql->getInstruction());
         $result = $conn->query($sql->getInstruction());
         $row = $result->fetch();
         return $row[0];
     } else {
         throw new Exception('Não há transação ativa');
     }
 }
    // obtém o Aluno de ID 1
    $aluno = $record->load(1);
    if ($aluno) {
        // altera o telefone
        $aluno->telefone = '(51) 1111-3333';
        TTransaction::log("** persistindo o aluno 1");
        // armazena o objeto
        $aluno->store();
    }
    TTransaction::log("** obtendo o curso 1");
    // instancia registro de Curso
    $record = new Curso();
    // obtém o Curso de ID 1
    $curso = $record->load(1);
    if ($curso) {
        // altera a duração
        $curso->duracao = 28;
        TTransaction::log("** persistindo o curso 1");
        // armazena o objeto
        $curso->store();
    }
    // finaliza a transação
    TTransaction::close();
    // exibe mensagem de sucesso
    echo "Registros alterados com sucesso<br>\n";
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
    echo '<b>Erro</b>' . $e->getMessage();
    // desfaz todas alterações no banco de dados
    TTransaction::rollback();
}
 /**
  * Return the amount of objects that satisfy a given criteria
  * @param $criteria  An TCriteria object, specifiyng the filters
  * @return           An Integer containing the amount of objects that satisfy the criteria
  */
 public function count(TCriteria $criteria = NULL)
 {
     if (!$criteria) {
         $criteria = isset($this->criteria) ? $this->criteria : new TCriteria();
     }
     // creates a SELECT statement
     $sql = new TSqlSelect();
     $sql->addColumn('count(*)');
     $sql->setEntity($this->getEntity());
     // assign the criteria to the SELECT statement
     $sql->setCriteria($criteria);
     // get the connection of the active transaction
     if ($conn = TTransaction::get()) {
         // register the operation in the LOG file
         TTransaction::log($sql->getInstruction());
         // executes the SELECT statement
         $result = $conn->Query($sql->getInstruction());
         if ($result) {
             $row = $result->fetch();
         }
         // returns the result
         return $row[0];
     } else {
         // if there's no active transaction opened
         throw new Exception(TAdiantiCoreTranslator::translate('No active transactions') . ': ' . __METHOD__ . ' ' . $this->getEntity());
     }
 }
 /** Prepara e executa uma query na conexão atual
  * @param $query string
  * @param $params array
  * @param bool $types
  * @return bool|PDOStatement
  * @throws Exception
  */
 public static function safe_execute($query, $params = null, $types = false)
 {
     if (self::$conn) {
         try {
             // Salva a query que será executada
             TTransaction::log($query, $params);
             $statement = self::$conn->prepare($query);
             if ($params != null) {
                 if (is_array($params[0])) {
                     foreach ($params as $sub_params) {
                         self::bindArrayValue($statement, $sub_params, $types);
                     }
                 } else {
                     self::bindArrayValue($statement, $params, $types);
                 }
             }
             return $statement->execute() ? $statement : false;
         } catch (Exception $e) {
             throw $e;
         }
     }
     return false;
 }
 // inicia transação com o banco 'pg_livro'
 TTransaction::open('pg_livro');
 // define o arquivo para LOG
 TTransaction::setLogger(new TLoggerTXT('/tmp/log11.txt'));
 // armazena esta frase no arquivo de LOG
 TTransaction::log("** obtendo o aluno de uma inscrição");
 // instancia a Inscrição cujo ID é "2"
 $inscricao = new Inscricao(2);
 // exibe os dados relacionados de aluno (associação)
 echo "Dados da inscrição<br>\n";
 echo "==================<br>\n";
 echo 'Nome     : ' . $inscricao->aluno->nome . "<br>\n";
 echo 'Endereço : ' . $inscricao->aluno->endereco . "<br>\n";
 echo 'Cidade   : ' . $inscricao->aluno->cidade . "<br>\n";
 // armazena esta frase no arquivo de LOG
 TTransaction::log("** obtendo as inscrições de um aluno");
 // instancia o Aluno cujo ID é "2"
 $aluno = new Aluno(2);
 echo "<br>\n";
 echo "Inscrições do Aluno<br>\n";
 echo "===================<br>\n";
 // exibe os dados relacionados de inscrições (agregação)
 foreach ($aluno->inscricoes as $inscricao) {
     echo ' ID    : ' . $inscricao->id;
     echo ' Turma : ' . $inscricao->ref_turma;
     echo ' Nota : ' . $inscricao->nota;
     echo ' Freq. : ' . $inscricao->frequencia;
     echo "<br>\n";
 }
 // finaliza a transação
 TTransaction::close();
 function count(TCriteria $criteria)
 {
     // instancia instrução de SELECT
     $sql = new TSqlSelect();
     $sql->addColumn('count(*)');
     $sql->setEntity(constant($this->class . '::TABLENAME'));
     // atribui o critério passado como parâmetro
     $sql->setCriteria($criteria);
     // obtém transação ativa
     if ($conn = TTransaction::get()) {
         // registra mensagem de log
         TTransaction::log($sql->getInstruction());
         // executa instrução de SELECT
         $result = $conn->Query($sql->getInstruction());
         if ($result) {
             $row = $result->fetch();
         }
         // retorna o resultado
         return $row[0];
     } else {
         // se não tiver transação, retorna uma exceção
         throw new Exception('Não há transação ativa!!');
     }
 }
 /** @param $params bool|array|null */
 public function __construct($params = null)
 {
     if ($params === 'SKIP') {
         return 'SKIPPED';
     }
     if ($this->get_error() != 0) {
         return 'ERROR';
     }
     $this->is_called_within = $params != null;
     TTransaction::open("my_db");
     TTransaction::setLogger(new TLoggerTXT(get_class($this)));
     // Se houver parâmetros no construtor, trabalha com eles, caso contrário, utiliza o _POST
     if (!$this->is_called_within) {
         $params = $_GET;
         /// TODO: substituir por _POST após a fase de testes
     }
     // Se entre os parâmetros todas as entradas existirem, guarda os parâmetros, caso contrário há um erro
     $missing_input = array_diff_key($this->input_vars, $params);
     if (count($missing_input) == 0) {
         // Carrega os parâmetros padrão
         foreach (array_keys($this->input_vars) as $var_name) {
             $this->set_input($var_name, $params[$var_name]);
         }
         // Se foi chamado internamente, carrega os paramêtros não-padrão
         if ($this->is_called_within) {
             foreach (array_diff_key($params, $this->input_vars) as $var_name) {
                 $this->set_input($var_name, $params[$var_name]);
             }
         }
     } else {
         $this->set_error(100);
         // Grava a entrada que faltou.
         TTransaction::log(Tools::get_error_msg($this->get_error()), $missing_input, 'error');
     }
     return 0;
 }
 // define o arquivo para LOG
 TTransaction::setLogger(new TLoggerTXT('/tmp/log8.txt'));
 // primeiro exemplo, conta todos alunos de Porto Alegre #
 TTransaction::log("** Conta Alunos de Porto Alegre");
 // instancia um critério de seleção
 $criteria = new TCriteria();
 $criteria->add(new TFilter('cidade', '=', 'Porto Alegre'));
 // instancia um reposotório de Alunos
 $repository = new TRepository('Aluno');
 // obtém o total de alunos que satisfazem o critério
 $count = $repository->count($criteria);
 // exibe o total na tela
 echo "Total de alunos de Porto Alegre: {$count} <br>\n";
 // segundo exemplo, Contar todas as turmas com aula na sala
 // "100" no turno da Tarde OU na "200" pelo turno da manha.
 TTransaction::log("** Conta Turmas");
 // instancia um critério de seleção
 // sala "100" e turno "T" (tarde)
 $criteria1 = new TCriteria();
 $criteria1->add(new TFilter('sala', '=', '100'));
 $criteria1->add(new TFilter('turno', '=', 'T'));
 // instancia um critério de seleção
 // sala "200" e turno "M" (manha)
 $criteria2 = new TCriteria();
 $criteria2->add(new TFilter('sala', '=', '200'));
 $criteria2->add(new TFilter('turno', '=', 'M'));
 // instancia um critério de seleção
 // com OU para juntar os critérios anteriores
 $criteria = new TCriteria();
 $criteria->add($criteria1, TExpression::OR_OPERATOR);
 $criteria->add($criteria2, TExpression::OR_OPERATOR);
    TTransaction::open('pg_livro');
    // define o arquivo para LOG
    TTransaction::setLogger(new TLoggerTXT('/tmp/log7.txt'));
    TTransaction::log("** seleciona inscrições da turma 2");
    // instancia critério de seleção de dados
    // seleciona todas inscrições da turma "2"
    $criteria = new TCriteria();
    $criteria->add(new TFilter('ref_turma', '=', 2));
    $criteria->add(new TFilter('cancelada', '=', FALSE));
    // instancia repositório de Inscrição
    $repository = new TRepository('Inscricao');
    // retorna todos objetos que satisfazem o critério
    $inscricoes = $repository->load($criteria);
    // verifica se retornou alguma inscrição
    if ($inscricoes) {
        TTransaction::log("** altera as inscrições");
        // percorre todas inscrições retornadas
        foreach ($inscricoes as $inscricao) {
            // altera algumas propriedades
            $inscricao->nota = 8;
            $inscricao->frequencia = 75;
            // armazena o objeto no banco de dados
            $inscricao->store();
        }
    }
    // finaliza a transação
    TTransaction::close();
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
    echo '<b>Erro</b>' . $e->getMessage();
    // desfaz todas alterações no banco de dados
 private function getLast()
 {
     // inicia transação
     if ($conn = TTransaction::get()) {
         // instancia instrução de SELECT
         $sql = new TSqlSelect();
         $sql->addColumn('max(ID) as ID');
         $sql->setEntity($this->getEntity());
         // cria log e executa instrução SQL
         TTransaction::log($sql->getInstruction());
         $result = $conn->Query($sql->getInstruction());
         // retorna os dados do banco
         $row = $result->fetch();
         return $row[0];
     } else {
         // se não tiver transação, retorna uma exceção
         throw new Exception('Não há transação ativa!!');
     }
 }
$fabio = new Aluno();
// define algumas propriedades
$fabio->nome = 'Fábio Locatelli';
$fabio->endereco = 'Rua Merlin';
$fabio->telefone = '(51) 2222-1111';
$fabio->cidade = 'Lajeado';
// clona o objeto $fabio
$julia = clone $fabio;
// altera algumas propriedades
$julia->nome = 'Júlia Haubert';
$julia->telefone = '(51) 2222-2222';
try {
    // inicia transação com o banco 'pg_livro'
    TTransaction::open('pg_livro');
    // define o arquivo para LOG
    TTransaction::setLogger(new TLoggerTXT('/tmp/log4.txt'));
    // armazena o objeto $fabio
    TTransaction::log("** persistindo o aluno \$fabio");
    $fabio->store();
    // armazena o objeto $julia
    TTransaction::log("** persistindo o aluno \$julia");
    $julia->store();
    // finaliza a transação
    TTransaction::close();
    echo "clonagem realizada com sucesso <br>\n";
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
    echo '<b>Erro</b>' . $e->getMessage();
    // desfaz todas alterações no banco de dados
    TTransaction::rollback();
}
Exemple #22
0
 /**
  * Returns the LAST Object ID from database
  * @return      An Integer containing the LAST Object ID from database
  * @exception   Exception if there's no active transaction opened
  */
 private function getLast()
 {
     $pk = $this->getPrimaryKey();
     // get the connection of the active transaction
     if ($conn = TTransaction::get()) {
         // instancia instrução de SELECT
         $sql = new TSqlSelect();
         $sql->addColumn("max({$pk}) as {$pk}");
         $sql->setEntity($this->getEntity());
         // register the operation in the LOG file
         TTransaction::log($sql->getInstruction());
         $result = $conn->Query($sql->getInstruction());
         // retorna os dados do banco
         $row = $result->fetch();
         return $row[0];
     } else {
         // if there's no active transaction opened
         throw new Exception(TAdiantiCoreTranslator::translate('No active transactions') . ': ' . __METHOD__ . ' ' . $this->getEntity());
     }
 }
    const TABLENAME = 'inscricao';
}
// insere novos objetos no banco de dados
try {
    // inicia transação com o banco 'pg_livro'
    TTransaction::open('pg_livro');
    // define o arquivo para LOG
    TTransaction::setLogger(new TLoggerTXT('/tmp/log12.txt'));
    // armazena esta frase no arquivo de LOG
    TTransaction::log("** inserindo o aluno \$carlos");
    // instancia um aluno novo
    $carlos = new Aluno();
    $carlos->nome = "Carlos Ranzi";
    $carlos->endereco = "Rua Francisco Oscar";
    $carlos->telefone = "(51) 1234-5678";
    $carlos->cidade = "Lajeado";
    // persiste o objeto aluno
    $carlos->store();
    // armazena esta frase no arquivo de LOG
    TTransaction::log("** inscrevendo o aluno nas turmas");
    // executa o método Inscrever (na turma 1 e 2)
    $carlos->Inscrever(1);
    $carlos->Inscrever(2);
    // finaliza a transação
    TTransaction::close();
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
    echo '<b>Erro</b>' . $e->getMessage();
    // desfaz todas alterações no banco de dados
    TTransaction::rollback();
}
    // obtém a conexão ativa
    $conn = TTransaction::get();
    // executa a instrução SQL
    $result = $conn->Query($sql->getInstruction());
    // escreve mensagem de LOG
    TTransaction::log($sql->getInstruction());
    // define a estratégia de LOG
    TTransaction::setLogger(new TLoggerXML('/tmp/arquivo.xml'));
    // escreve mensagem de LOG
    TTransaction::log("Inserindo registro Albert Einstein");
    // cria uma instrução de INSERT
    $sql = new TSqlInsert();
    // define o nome da entidade
    $sql->setEntity('famosos');
    // atribui o valor de cada coluna
    $sql->setRowData('codigo', 10);
    $sql->setRowData('nome', 'Albert Einstein');
    // obtém a conexão ativa
    $conn = TTransaction::get();
    // executa a instrução SQL
    $result = $conn->Query($sql->getInstruction());
    // escreve mensagem de LOG
    TTransaction::log($sql->getInstruction());
    // fecha a transação, aplicando todas as operações
    TTransaction::close();
} catch (Exception $e) {
    // exibe a mensagem de erro
    echo $e->getMessage();
    // desfaz operações realizadas durante a transação
    TTransaction::rollback();
}
class Curso extends TRecord
{
    const TABLENAME = 'curso';
}
// exclui objetos da base de dados
try {
    // inicia transação com o banco 'pg_livro'
    TTransaction::open('pg_livro');
    // define o arquivo para LOG
    TTransaction::setLogger(new TLoggerTXT('/tmp/log5.txt'));
    // armazena esta frase no arquivo de LOG
    TTransaction::log("** Apagando da primeira forma");
    // carrrega o objeto
    $aluno = new Aluno(1);
    // delete o objeto
    $aluno->delete();
    // armazena esta frase no arquivo de LOG
    TTransaction::log("** Apagando da segunda forma");
    // instancia o modelo
    $modelo = new Aluno();
    // delete o objeto
    $modelo->delete(2);
    // finaliza a transação
    TTransaction::close();
    echo "Exclusão realizada com sucesso <br>\n";
} catch (Exception $e) {
    // exibe a mensagem gerada pela exceção
    echo '<b>Erro</b>' . $e->getMessage();
    // desfaz todas alterações no banco de dados
    TTransaction::rollback();
}