Utilizar duas bases de dados simultâneas

Destinado ao auxílio e Troca de informações sobre a ferramenta Xmaker
vinizioWOW
Mensagens: 98
Registrado em: Abril 5th, 2011, 2:35 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Utilizar duas bases de dados simultâneas

Mensagempor vinizioWOW » Abril 15th, 2014, 4:27 pm

Boa tarde,

Alguém já conseguiu usar mais de uma base de dados simultaneamente num projeto do Xmaker?

Eu gostaria de separar a tabela user_log em outra base de dados afim de facilitar o backup e deixar o banco de dados "oficial" menor.

Trabalho com o Xmaker 5 e banco de dados MySQL 5.0.


Grato pela atenção.

Desenvolvedor
Logus Informática
Formiga - MG


hudnet
Mensagens: 21
Registrado em: Janeiro 24th, 2012, 9:47 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor hudnet » Abril 15th, 2014, 6:21 pm

Eu uso no meu sistema um para o sistema em si e outro para o log usando firebird e não tive problema algum. Realmente é melhor pois o log, em alguns casos, pode representar 60% do tamanho do banco, ou até mais. No meu caso foi só criar uma segunda conexão (Banco de Dados) e vincular a tabela user_log a esta conexão.
Vale ressaltar um pequeno bug que há neste caso, pois a rotina gravar_log no TTabela grava o log e comita, mas usando a conexão principal, quando o log está em uma segunda conexão este commit não é aplicado nesta conexão e sim na principal, o que faz com que o log só seja efetivamente comitado quando o sistema é encerrado. Isto traz um risco, pois se o sistema for interrompido abruptamente as transações do log se perderão.
No meu caso fiz o ajuste abaixo para corrigir o problema na procedure GravarLog.

{$IFDEF XSQL}
IF not TabGlobal.DUSER_LOG.DataBase.InTransaction THEN
TabGlobal.DUSER_LOG.DataBase.StartTransaction;
TabGlobal.DUSER_LOG.DataBase.Commit;
{$ENDIF}

{$IFDEF IBX}
TabGlobal.DUSER_LOG.Transaction.CommitRetaining;
{$ENDIF}

Leão
Mensagens: 149
Registrado em: Junho 24th, 2011, 10:06 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor Leão » Abril 28th, 2014, 1:55 pm

Olá hudnet, cara isso é realmente interessante, se possivel post, aqui o exemplo com mais detalhes, com certeza
será muito útil para nós. Informe criação da base segundaria e etc...

Obrigado,
Leão

hudnet
Mensagens: 21
Registrado em: Janeiro 24th, 2012, 9:47 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor hudnet » Maio 3rd, 2014, 10:26 am

Leão para usar um banco separado só para o log basta ir em Tabelas clicar na aba Banco de Dados e clicar em Inserir. Basta preencher as informações solicitadas. Depois vá na aba tabelas, clique na tabela User_Log e na propriedade banco de dados mude para a conexão que você acabou de criar.
Basta fechar, compilar e executar. Se o sistema não conseguir criar a tabela automaticamente, talvez você precise criá-la.
No mais faça somente a correção que indiquei no post anterior em gravar_log.
No mais o sistema todo funciona da mesma maneira.

Leão
Mensagens: 149
Registrado em: Junho 24th, 2011, 10:06 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor Leão » Maio 6th, 2014, 11:02 am

Olá Hudnet, estou com dificuldade para localizar a modificação o arquivo é Tabela.pas?
se for na procedure Gravarlog?
por favor, detalhe um pouco mais sobre:

No meu caso fiz o ajuste abaixo para corrigir o problema na procedure GravarLog.

{$IFDEF XSQL}
IF not TabGlobal.DUSER_LOG.DataBase.InTransaction THEN
TabGlobal.DUSER_LOG.DataBase.StartTransaction;
TabGlobal.DUSER_LOG.DataBase.Commit;
{$ENDIF}

{$IFDEF IBX}
TabGlobal.DUSER_LOG.Transaction.CommitRetaining;
{$ENDIF}


outro detalhe como referencia a tabela DUSER_LOG do novo banco, por exemplo meu banco
será chamado base_log.gdb
Obrigado,
Leão

hudnet
Mensagens: 21
Registrado em: Janeiro 24th, 2012, 9:47 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor hudnet » Maio 6th, 2014, 6:12 pm


vinizioWOW
Mensagens: 98
Registrado em: Abril 5th, 2011, 2:35 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor vinizioWOW » Maio 9th, 2014, 9:51 am


Desenvolvedor
Logus Informática
Formiga - MG


Leão
Mensagens: 149
Registrado em: Junho 24th, 2011, 10:06 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor Leão » Maio 13th, 2014, 9:13 pm

Olá Hudnet, se possivel responda a minha pergunta, qual .pas fazer esse modificação lugar detalhes e etc...

Obrigado,
Leão

Gilberto
Mensagens: 65
Registrado em: Janeiro 12th, 2011, 10:03 am
Localização: Ribeirão Preto SP
Contato:

Re: Utilizar duas bases de dados simultâneas

Mensagempor Gilberto » Agosto 8th, 2014, 9:37 am

Bom Dia.
Gostei desta solução de log.
Tentando implanta-la apos as explicações do Post apresenta na Busca : Usuarios/Log de Operações, quando e chamado :
"Dynamic SQL Error : Sql error = -204
Table unknown USER_NOMES
at line 10, column 28."

Esta tabela do erro esta ligada com a base normal e não com a Base_log.

Estou usando o Xmaker 6

Alguem esta usando este processo com sucessoalem do Hudnet ?

Att
Gilberto

hudnet
Mensagens: 21
Registrado em: Janeiro 24th, 2012, 9:47 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Utilizar duas bases de dados simultâneas

Mensagempor hudnet » Agosto 8th, 2014, 5:17 pm

Gilberto, não consegui identificar onde este problema dá, se possível poste a tela aqui e/ou o procedimento que vc chama que dá este erro.


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Voltar para “Xmaker”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes