RB
Informações não são persistidas no banco
Ola,
Fiz algumas alterações da classe de grupo para obter dados de outro banco, porém quando vou salvar as alterações ( deletar / inativar, no meu caso), os dados não são persistidos, e depois de muito tempo aparece a seguinte mensagem:
SQLSTATE[HY000]: General error: 5 database is locked
segue trecho com alterações model system_group
Sgue imagem abaixo
Fiz algumas alterações da classe de grupo para obter dados de outro banco, porém quando vou salvar as alterações ( deletar / inativar, no meu caso), os dados não são persistidos, e depois de muito tempo aparece a seguinte mensagem:
SQLSTATE[HY000]: General error: 5 database is locked
segue trecho com alterações model system_group
- <?php
- .......
- private $organizacao;
- //banco permission
- public function __construct($id = NULL)
- {
- parent::__construct($id);
- parent::addAttribute('name');
- parent::addAttribute('organizacao_id');
- parent::addAttribute('ativo');
- }
- //metodo novo
- public function get_organizacao()
- {
- try {
- TTransaction::open('outro_banco');
- // loads the associated object
- if (empty($this->organizacao))
- $this->organizacao = new Organizacao($this->organizacao_id);
- // returns the associated object
- return $this->organizacao;
- TTransaction::close();
- } catch (Exception $e) {
- new TMessage('error',$e->getMessage());
- TTransaction::rollback();
- }
- }
- ?>
Sgue imagem abaixo
Essa mensagem é caracteristica do SQLite, vc deve ter aberto um foreach ou um for, e não fechou. ex:
Reinicie o pc que vc vai conseguir acessar a base de dados, e depois feche o laço de repetição com TTransaction::close(); Boa Sorte
Miuller,
verifiquei todos os foreach e estão todos fechados, ainda não consegui identificar onde esta o erro.
fonte completo
Tente fechar a transação antes de exibir a mensagem...
Leandro, bom dia.
Ao criar um novo grupo esta salvando perfeito, a questão é no método onDelete / onInative, que os dados não são persistidos.
porque você não simplifica o metodo inative deixando assim:
Leandro,
Na realidade, eu já tentei desta forma também, a questão é que os dados não são persistidos, já fiz e refiz o método, porém sem sucesso.
Mas valeu pela atenção, vou continuar tentando aqui.
Já que as informações não estão sendo persistidas, vc deve checar o código, tente adicionar essas linhas e veja como ficou
TTransaction::open('permission');
$key = $param['key']; //parâmetro
echo 'a váriavel key é: '.$key.'
';
$data = $this->form->getData();
$object->fromArray( ( array )$data);
$object = new SystemGroup($key); Abre os registros no model SystemGroup cuja chave é $key
$object->ativo = 0;
var_dump( $object )//cheque o que está chegado
//$object->store();
se não tiver dados no var_dump, tente substituir $key por uma session
Miuller,
Consegui resolver, passei a utilizar o parâmetro unit_id.
Valeu pela atenção.
Obrigado.