function buildDB($cacic_config)
 {
     $builDBOK = false;
     $connOk = InstallAjax::checkDBConnection($cacic_config);
     if (!$connOk) {
         // Se não conectar para o processo
         die;
     }
     $cacic_dbdet = $cacic_config['dbdet'];
     $installType = $cacic_config['install']['type'];
     /*
      * processo de criação do banco e tabelas
      */
     /*
      * Conexao ao banco de dados
      */
     echo "<br>" . InstallAjax::_('kciq_msg inst connecting to database server');
     $oDB = new ADO($cacic_config['db_type']);
     if ($installType == 'createDB') {
         // instalação nova
         $oDB->setDsn($cacic_config['db_host'], $cacic_config['db_admin'], $cacic_config['db_admin_pass'], $cacic_config['db_name']);
         $oDB->addDBUser($cacic_config['db_user'], $cacic_config['db_pass']);
     } else {
         // atualização da base
         $oDB->setDsn($cacic_config['db_host'], $cacic_config['db_user'], $cacic_config['db_pass'], $cacic_config['db_name']);
     }
     if (!$oDB->conecta()) {
         $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
         $msg .= InstallAjax::_('kciq_msg database connect fail') . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
         $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
         die($msg);
     } else {
         echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
     }
     if ($installType == 'createDB') {
         // instalação nova
         $oDB_result = $oDB->addDBUser($cacic_config['db_user'], $cacic_config['db_pass']);
         echo "<br>" . InstallAjax::_('kciq_msg inst make database permissions', array($cacic_config['db_user']));
         if (!$oDB_result) {
             $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
             $msg .= InstallAjax::_('kciq_msg user insert error', array($cacic_config['db_user'])) . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
             $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
             die($msg);
         } else {
             echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
         }
     }
     /*
      * Cria banco de dados
      */
     if ($installType == 'createDB') {
         echo "<br>" . InstallAjax::_('kciq_msg inst build database', array($cacic_config['db_name']));
         if (!$oDB->selectDB($cacic_config['db_name'])) {
             if (!$oDB->createDB()) {
                 $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
                 $msg .= InstallAjax::_('kciq_msg inst build database error', array($cacic_config['db_name'])) . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
                 $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
                 die($msg);
             } else {
                 echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
             }
         } else {
             $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
             $msg .= InstallAjax::_('kciq_msg inst database exist', array($cacic_config['db_name'])) . '</span>';
             die($msg);
         }
     }
     if (!$oDB->selectDB()) {
         $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
         $msg .= InstallAjax::_('kciq_msg database not exist', array($cacic_config['db_name'])) . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
         $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
         die($msg);
     }
     if ($installType == 'createDB') {
         /*
          * Cria as tabelas do banco de dados
          */
         $fileName = $cacic_config['path'] . 'instalador/sql/' . CACIC_SQLFILE_CREATEDB;
         if (is_readable($fileName)) {
             $cacic_sql_create_tables = $fileName;
             echo "<br>" . InstallAjax::_('kciq_msg inst building tables on database', array($cacic_config['db_name']));
             $oDB_result = $oDB->parse_mysql_dump($cacic_sql_create_tables);
             if (!$oDB_result) {
                 $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
                 $msg .= InstallAjax::_('kciq_msg inst database build fail') . '</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
                 $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
                 die($msg);
             } else {
                 echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
             }
         } else {
             $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
             $msg .= InstallAjax::_('kciq_msg inst tables build error') . '</span>';
             die($msg);
         }
     } else {
         /*
          * Atualiza as tabelas do banco de dados
          */
         $fileName = $cacic_config['path'] . 'instalador' . CACIC_DS . 'sql' . CACIC_DS . 'cacic_' . strtolower($cacic_config['install']['updateFromVersion']) . '.sql';
         if (is_readable($fileName)) {
             $cacic_sql_create_tables = $fileName;
             echo "<br>" . InstallAjax::_('kciq_msg inst update tables on database', array($cacic_config['db_name']));
             $oDB_result = $oDB->parse_mysql_dump($cacic_sql_create_tables);
             if (!$oDB_result) {
                 $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
                 $msg .= InstallAjax::_('kciq_msg inst update tables on database', array($cacic_config['db_name'])) . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
                 $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
                 die($msg);
             } else {
                 echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
             }
         } else {
             $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
             $msg .= InstallAjax::_('kciq_msg inst tables update error') . '</span>';
             die($msg);
         }
     }
     if ($installType == 'createDB') {
         /*
          * Inclui dados básicos para CACIC, do idioma selecionado ou, caso não exista, do idioma padrão
          */
         $fileNameTgt = str_replace("LANGUAGE", $cacic_config['cacic_language'], CACIC_SQLFILE_STDDATA);
         $fileName = $cacic_config['path'] . 'instalador' . CACIC_DS . 'sql' . CACIC_DS . $fileNameTgt;
         if (!is_readable($fileName)) {
             $fileName = str_replace("LANGUAGE", CACIC_LANGUAGE_STANDARD, CACIC_SQLFILE_STDDATA);
             $fileName = $cacic_config['path'] . 'instalador' . CACIC_DS . 'sql' . CACIC_DS . $fileName;
         }
         if (is_readable($fileName)) {
             $cacic_sql_dadosbase = $fileName;
             echo "<br>" . InstallAjax::_('kciq_msg inst insert basic data', array($cacic_config['db_name']));
             $oDB_result = $oDB->parse_mysql_dump($cacic_sql_dadosbase);
             if (!$oDB_result) {
                 $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
                 $msg .= InstallAjax::_('kciq_msg inst insert basic data', array($cacic_config['db_name'])) . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
                 $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
                 die($msg);
             } else {
                 echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
             }
         } else {
             $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
             $msg .= InstallAjax::_('kciq_msg inst insert basic data error') . '</span>';
             die($msg);
         }
         /*
          * Inclui dados nas tabelas para demonstração do cacic
          */
         if ($cacic_dbdet['demo'] == 'demo') {
             echo "<br>" . InstallAjax::_('kciq_msg inst insert demo data');
             $fileName = $cacic_config['path'] . 'instalador/sql/' . CACIC_SQLFILE_DEMODATA;
             if (is_readable($fileName)) {
                 $cacic_sql_demonstracao = $fileName;
                 $oDB_result = $oDB->parse_mysql_dump($cacic_sql_demonstracao);
                 if (!$oDB_result) {
                     $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
                     $msg .= InstallAjax::_('kciq_msg inst insert demo data') . '!</span>' . '<br>' . InstallAjax::_('kciq_msg server msg') . ':';
                     $msg .= '<pre>' . $oDB->getMessage() . '</pre>';
                     die($msg);
                 } else {
                     echo "[ " . InstallAjax::_('kciq_msg ok') . "! ]";
                 }
             } else {
                 $msg = '<span class="Erro">[' . InstallAjax::_('kciq_msg error', '', 2) . "! ] - ";
                 $msg .= InstallAjax::_('kciq_msg inst insert demo data error') . '</span>';
                 die($msg);
             }
         }
     }
     echo "<br><span class='OkImg'>" . InstallAjax::_('kciq_msg inst database build process ok', array($cacic_config['db_name'])) . "</span>";
     $_SESSION['buildDBOK'] = true;
 }