Example #1
0
 public function getFieldKey()
 {
     for ($i = 0; $i < sizeof($this->arrCampos); $i++) {
         $nomeCampo = $this->arrCampos[$i];
         $campo = $this->{$nomeCampo};
         if (false) {
             $campo = new BDField();
         }
         if ($campo->getChave()) {
             return $campo;
         }
     }
     return false;
 }
Example #2
0
function geraClasse($sql, $cnx, $util)
{
    $cr = "\r\n";
    $ntab = "\t";
    $bdf = new BDField();
    ?>
<textarea rows="30" cols="150" ><?php 
    if (isset($_GET['ed_tabela'])) {
        $tabnome = $_GET['ed_tabela'];
        $crud = true;
    } else {
        $tabnome = 'sql';
        $crud = false;
    }
    echo '<?php' . $cr;
    echo $cr;
    echo "class " . ucfirst($tabnome) . "Model extends Query { " . $cr;
    $rs = $cnx->runSQL($sql);
    $virgula = '';
    $arrCampos = '';
    for ($i = 0; $i < $cnx->fieldCount($rs); $i++) {
        $nome = $cnx->fieldName($rs, $i);
        echo $ntab . 'public $' . strtolower($nome) . ';' . $cr;
        $arrCampos .= $virgula . "'" . strtolower($nome) . "'";
        $virgula = ',';
    }
    echo $ntab . 'public $arrCampos = array(' . $arrCampos . '); ';
    echo $cr;
    echo $ntab . 'function __construct ($cnx) { ' . $cr;
    echo $ntab . $ntab . 'parent::__construct($cnx);' . $cr;
    $updatecmd = "update " . $tabnome . ' set ' . $cr;
    $virgulaUpdate = '';
    $virgulaSelect = '';
    $selectcmd = "select " . $cr;
    $insertInto = "insert into " . $tabnome . '(' . $cr;
    $insertValue = '';
    $whereCmd = "where ";
    $where = '';
    for ($i = 0; $i < $cnx->fieldCount($rs); $i++) {
        $tipo = $cnx->fieldType($rs, $i);
        $nome = strtolower($cnx->fieldName($rs, $i));
        $displayName = ucfirst($nome);
        $tabela = $cnx->fieldTable($rs, $i);
        $flags = explode(' ', $cnx->fieldFlags($rs, $i));
        $tam = $cnx->fieldSize($rs, $i);
        $tipoField = $bdf->associaTipo($tipo, $nome, $tam);
        $requerido = 'false';
        $chave = false;
        $readonly = false;
        if ($flags) {
            for ($j = 0; $j < sizeof($flags); $j++) {
                if ($flags[$j] == 'not_null') {
                    $requerido = 'true';
                }
                if ($flags[$j] == 'primary_key') {
                    $chave = true;
                }
                if ($flags[$j] == 'auto_increment') {
                    $chave = true;
                    $readonly = true;
                }
                //echo $flags[$j].$cr;
            }
        }
        //print_r($flags);
        //echo $tabela.':'.$nome.':'.$tipo.$cr;
        echo $ntab . $ntab . '$this->' . $nome . ' = new BDField(' . "'{$tipoField}'" . "," . $requerido . ",'" . $nome . "'," . $tam . ');' . $cr;
        //'.$tipo.' - '.$tam.$cr;
        if ($chave) {
            echo $ntab . $ntab . '$this->' . $nome . '->setChave(true);' . $cr;
            $where .= $whereCmd . $nome . ' = :' . $nome . ":";
            $whereCmd = 'and';
            $selectcmd .= $ntab . $ntab . $ntab . $virgulaSelect . ' ' . $nome . $cr;
            $virgulaSelect = ',';
        } else {
            $updatecmd .= $ntab . $ntab . $ntab . $virgulaUpdate . ' ' . $nome . ' = :' . $nome . ":" . $cr;
            $insertValue .= $ntab . $ntab . $ntab . $virgulaUpdate . ' :' . $nome . ':' . $cr;
            /*	
            					if (($tipoField == 'int') || ($tipoField == 'float'))  {
            						$updatecmd .= $ntab.$ntab.$ntab.$virgulaUpdate.' '.$nome.' = :'.$nome.":".$cr;
            						$insertValue .= $ntab.$ntab.$ntab.$virgulaUpdate.' :'.$nome.':'.$cr;
            						
            					}  else {
            						$updatecmd .= $ntab.$ntab.$ntab.$virgulaUpdate.' '.$nome.' = \':'.$nome.":'".$cr;
            						$insertValue .= $ntab.$ntab.$ntab.$virgulaUpdate.' \':'.$nome.':\''.$cr;
            					}
            * 
            */
            $selectcmd .= $ntab . $ntab . $ntab . $virgulaSelect . ' ' . $nome . $cr;
            $insertInto .= $ntab . $ntab . $ntab . $virgulaUpdate . ' ' . $nome . $cr;
            $virgulaUpdate = ',';
            $virgulaSelect = ',';
        }
        if ($readonly) {
            echo $ntab . $ntab . '$this->' . $nome . '->setReadOnly(true);' . $cr;
        }
        echo $ntab . $ntab . '$this->' . $nome . '->setDisplayName(\'' . $displayName . '\');' . $cr;
        echo $ntab . $ntab . '$this->' . $nome . '->setDescription(\'' . $displayName . '\');' . $cr;
        $sqlDefault = "SHOW FULL COLUMNS FROM " . $tabnome . " where field = '" . $nome . "'";
        $vDefault = mysql_fetch_array($cnx->runSQL($sqlDefault));
        if (strlen($vDefault['Default']) > 0) {
            echo $ntab . $ntab . '$this->' . $nome . '->setDefaultValue(\'' . $vDefault['Default'] . '\');' . $cr;
            echo $ntab . $ntab . '$this->' . $nome . '->setValue(\'' . $vDefault['Default'] . '\');' . $cr;
        }
        echo $cr;
    }
    $updatecmd .= $ntab . $ntab . $where;
    $selectcmd .= $ntab . $ntab . 'from ' . $tabnome . $cr;
    $selectcmd .= $ntab . $ntab;
    $insertcmd = $insertInto . $ntab . $ntab . ') values (' . $cr . $insertValue . $ntab . $ntab . ')';
    $deletecmd = "delete from " . $tabnome . ' ' . $where;
    if ($crud) {
        echo $ntab . $ntab . '$this->sqlUpdate = "' . $updatecmd . '";' . $cr;
        echo $ntab . $ntab . '$this->sqlSelect = "' . $selectcmd . '";' . $cr;
        echo $ntab . $ntab . '$this->sqlInsert = "' . $insertcmd . '";' . $cr;
        echo $ntab . $ntab . '$this->sqlDelete = "' . $deletecmd . '";' . $cr;
    }
    echo $ntab . $ntab . '//$this->outrasDefinicoes();' . $cr;
    //echo $ntab.$ntab.'$this->setSQLs();'.$cr;
    echo $ntab . "}" . $cr;
    if (!$crud) {
        echo $cr . $cr . $cr;
        echo $ntab . '//Função executa a busca e associa o retorno ao obj.' . $cr;
        echo $ntab . 'function buscaPersonalizada($p) {' . $cr;
        $sql = str_ireplace("\n", "\n" . $ntab . $ntab . $ntab, $sql);
        echo $ntab . $ntab . '$sql = "' . $sql . '";' . $cr;
        echo $ntab . $ntab . 'return $this->buscaSQL($sql);' . $cr;
        echo $ntab . '}' . $cr;
    }
    echo "}" . $cr . $cr;
    echo '?>' . $cr;
    ?>
</textarea><?php 
}