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.
Utilizar duas bases de dados simultâneas
-
- 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
Desenvolvedor
Logus Informática
Formiga - MG
-
- 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
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}
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}
-
- 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
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
será muito útil para nós. Informe criação da base segundaria e etc...
Obrigado,
Leão
-
- 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
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.
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.
-
- 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
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
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
-
- 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
Desenvolvedor
Logus Informática
Formiga - MG
-
- 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
Olá Hudnet, se possivel responda a minha pergunta, qual .pas fazer esse modificação lugar detalhes e etc...
Obrigado,
Leão
Obrigado,
Leão
-
- 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
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
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
-
- 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
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.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes