Erro ao chamar método PHP [RESOLVIDO]

Tenho o seguinte método PHP o qual ser executado dar erro somente se eu mantiver uma das 2 linhas comentadas:

MÉTODO PHP
function exclui_arquivos($nome_arquivo)

if($nome_arquivo==“all”){

    // DAR ERRO as tabelas existem e caso execute essa linha em outro local funciona normal
// sc_exec_sql('TRUNCATE TABLE arquivos_planilhas'); 
// sc_exec_sql('TRUNCATE TABLE arquivos_planilhas_colunas'); 

sc_exec_sql('TRUNCATE TABLE arquivos_tmp');
sc_exec_sql('TRUNCATE TABLE arquivos_erros');
sc_exec_sql('TRUNCATE TABLE vendas_tmp1');
sc_exec_sql('TRUNCATE TABLE vendas_tmp2');
sc_exec_sql('TRUNCATE TABLE vendas_tmp3');

}
if($nome_arquivo==“tmp”){
sc_exec_sql(‘TRUNCATE TABLE arquivos_tmp’);
}
if($nome_arquivo==“erros”){
sc_exec_sql(‘TRUNCATE TABLE arquivos_erros’);
}

ERRO AO EXECUTAR
atal error: Uncaught Error: Call to a member function mensagem() on null in C:\Program Files\netmake\v9\wwwroot\scriptcase\app\SysLoan\form_arquivos\form_arquivos_apl.php:4969 Stack trace: #0 C:\Program Files\netmake\v9\wwwroot\scriptcase\app\SysLoan\form_arquivos\form_arquivos_apl.php(469): form_arquivos_apl->exclui_arquivos(‘all’) #1 C:\Program Files\netmake\v9\wwwroot\scriptcase\app\SysLoan\form_arquivos\form_arquivos_apl.php(1194): form_arquivos_apl->ini_controle() #2 C:\Program Files\netmake\v9\wwwroot\scriptcase\app\SysLoan\form_arquivos\index.php(3847): form_arquivos_apl->controle() #3 {main} thrown in C:\Program Files\netmake\v9\wwwroot\scriptcase\app\SysLoan\form_arquivos\form_arquivos_apl.php on line 4969

Olá,

Essas tabelas (arquivos_planilhas e arquivos_planilhas_colunas) tem relacionamento de chaves entre si? Experimentaste executar o TRUNCATE diretamente no banco de dados?

Não tem relacionamentos, executando diretamente no BD funciona normal e como falei se eu executar o sc_exec_sql(‘TRUNCATE TABLE arquivos_planilhas’) e sc_exec_sql(‘TRUNCATE TABLE arquivos_planilhas_colunas’) em outro local funciona normalmente. Só dar erro se mantiver no método PHP e antes de ser executado na aplicação.

Não tem relacionamentos, executando diretamente no BD funciona normal e como falei se eu executar o sc_exec_sql(‘TRUNCATE TABLE arquivos_planilhas’) e sc_exec_sql(‘TRUNCATE TABLE arquivos_planilhas_colunas’) em outro local funciona normalmente. Só dar erro se mantiver no método PHP e antes de ser executado na aplicação.

E o que faz esta function mensagem()?

Essa função mensagem deve ser do SC9… Não criei nada disso…

Copiei o código gerado pelo SC9 no arquivo que mostra o erro.

function exclui_arquivos($nome_arquivo)
{
$_SESSION[‘scriptcase’][‘form_arquivos’][‘contr_erro’] = ‘on’;

if($nome_arquivo==“all”){

 $nm_select ='TRUNCATE TABLE arquivos_planilhas'; 
     $_SESSION['scriptcase']['sc_sql_ult_comando'] = $nm_select;
  $_SESSION['scriptcase']['sc_sql_ult_conexao'] = ''; 
     $rf = $this->Db->Execute($nm_select);
     if ($rf === false)
     { 
         // ******************* AQUI É A A LINHA DIZ TER ERRO. OBSERVE QUE É IDÊNTICA AS DEMAIS ABAIXO, EXCLUI MANUALMENTE E RODA NORMAL.
         $this->Erro->mensagem (__FILE__, __LINE__, "banco", $this->Ini->Nm_lang['lang_errm_dber'], $this->Db->ErrorMsg());
         $this->NM_rollback_db(); 
         if ($this->NM_ajax_flag)
         {
            form_arquivos_pack_ajax_response();
         }
         exit;
     }
     $rf->Close();
  ;


 $nm_select ='TRUNCATE TABLE arquivos_tmp'; 
     $_SESSION['scriptcase']['sc_sql_ult_comando'] = $nm_select;
  $_SESSION['scriptcase']['sc_sql_ult_conexao'] = ''; 
     $rf = $this->Db->Execute($nm_select);
     if ($rf === false)
     {
         $this->Erro->mensagem (__FILE__, __LINE__, "banco", $this->Ini->Nm_lang['lang_errm_dber'], $this->Db->ErrorMsg());
         $this->NM_rollback_db(); 
         if ($this->NM_ajax_flag)
         {
            form_arquivos_pack_ajax_response();
         }
         exit;
     }
     $rf->Close();
  ;


 $nm_select ='TRUNCATE TABLE arquivos_erros'; 
     $_SESSION['scriptcase']['sc_sql_ult_comando'] = $nm_select;
  $_SESSION['scriptcase']['sc_sql_ult_conexao'] = ''; 
     $rf = $this->Db->Execute($nm_select);
     if ($rf === false)
     {
         $this->Erro->mensagem (__FILE__, __LINE__, "banco", $this->Ini->Nm_lang['lang_errm_dber'], $this->Db->ErrorMsg());
         $this->NM_rollback_db(); 
         if ($this->NM_ajax_flag)
         {
            form_arquivos_pack_ajax_response();
         }
         exit;
     }
     $rf->Close();
  ;


 $nm_select ='TRUNCATE TABLE vendas_tmp1'; 
     $_SESSION['scriptcase']['sc_sql_ult_comando'] = $nm_select;
  $_SESSION['scriptcase']['sc_sql_ult_conexao'] = ''; 
     $rf = $this->Db->Execute($nm_select);
     if ($rf === false)
     {
         $this->Erro->mensagem (__FILE__, __LINE__, "banco", $this->Ini->Nm_lang['lang_errm_dber'], $this->Db->ErrorMsg());
         $this->NM_rollback_db(); 
         if ($this->NM_ajax_flag)
         {
            form_arquivos_pack_ajax_response();
         }
         exit;
     }
     $rf->Close();
  ;


 $nm_select ='TRUNCATE TABLE vendas_tmp2'; 
     $_SESSION['scriptcase']['sc_sql_ult_comando'] = $nm_select;
  $_SESSION['scriptcase']['sc_sql_ult_conexao'] = ''; 
     $rf = $this->Db->Execute($nm_select);
     if ($rf === false)
     {
         $this->Erro->mensagem (__FILE__, __LINE__, "banco", $this->Ini->Nm_lang['lang_errm_dber'], $this->Db->ErrorMsg());
         $this->NM_rollback_db(); 
         if ($this->NM_ajax_flag)
         {
            form_arquivos_pack_ajax_response();
         }
         exit;
     }
     $rf->Close();
  ;


 $nm_select ='TRUNCATE TABLE vendas_tmp3'; 
     $_SESSION['scriptcase']['sc_sql_ult_comando'] = $nm_select;
  $_SESSION['scriptcase']['sc_sql_ult_conexao'] = ''; 
     $rf = $this->Db->Execute($nm_select);
     if ($rf === false)
     {
         $this->Erro->mensagem (__FILE__, __LINE__, "banco", $this->Ini->Nm_lang['lang_errm_dber'], $this->Db->ErrorMsg());
         $this->NM_rollback_db(); 
         if ($this->NM_ajax_flag)
         {
            form_arquivos_pack_ajax_response();
         }
         exit;
     }
     $rf->Close();
  ;

}

Encontrei o ERRO.

Tenho um login o qual acessa uma base que consulta uma chave e edita a conexão com o sc_connection_edit. A base da conexão do login é a padrão e onde é desenvolvido todas as aplicações e não existe as tabelas sc_exec_sql(‘TRUNCATE TABLE arquivos_planilhas’) e sc_exec_sql(‘TRUNCATE TABLE arquivos_planilhas_colunas’). Criei as 2 tabelas nessa base padrão e rodou normal.

O SC9 não deveria verificar a existência dessas tabelas na conexão padrão e sim na conexão nova alterada após o login com o sc_connection_edit.