marcioe Posted July 4, 2012 Report Share Posted July 4, 2012 Amigos Preciso sincronizar algumas tabelas de minha aplicação desktop com uma base de dados hospedada na web. as tabelas que quero sincronizar são iguais. Porem não será o banco todo,apenas 03 tabelas. agradeço a todos. informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb 32-9104-0562 .: TFA :. Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 4, 2012 Author Report Share Posted July 4, 2012 Amigos Preciso sincronizar algumas tabelas de minha aplicação desktop com uma base de dados hospedada na web. as tabelas que quero sincronizar são iguais. Porem não será o banco todo,apenas 03 tabelas. agradeço a todos. informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb 32-9104-0562 .: TFA :. Quote Link to comment Share on other sites More sharing options...
joaosolution Posted July 4, 2012 Report Share Posted July 4, 2012 Marcio Bom dia Qual a dúvida? Abro o banco da aplicação desktop, abro o banco da base web, leio um e alimento o outro. Verifique aqui no forum sobre abrir dois banco de dados. Att João Bosco Contagem/MG FWH 10.6b xHb 1.2.1 WorkShop 4.5 PellesC SQLLIB SQLRDD UltraEdit xDev MySql MS-Sql Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted July 4, 2012 Report Share Posted July 4, 2012 Monte uma trigger/procedure (já tem exempls aqui) que fara automaticamene toda e qualquer movimentação na tabela origem/destino. Dimob / SPED(pis/cofins) ..:: Este post é uma opnião pessoal, NAO DEVE SER ENCARADO COMO VERDADE ABSOLUTA ::.. Quote Link to comment Share on other sites More sharing options...
Erciley Junior Posted July 4, 2012 Report Share Posted July 4, 2012 Ou pesquise sobre replicação de dados GRANT REPLICATION..... Erciley Junior (FWH8.01 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY) NÃO ABANDONE O POST, QUEREMOS SABER SE SUA DÚVIDA/PROBLEMA TEVE SOLUÇÃO Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 4, 2012 Author Report Share Posted July 4, 2012 Obrigado amigo, amigo joaosolution a forma que voce passou não é viavel, pois fica lento demais. o lance do S.A.Oliveira parece ser mais rapido, se puder exemplificar fico grato. informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb .: 32-9104-0562 :. Quote Link to comment Share on other sites More sharing options...
fladimir Posted July 4, 2012 Report Share Posted July 4, 2012 Colega segue código sobre o assunto q peguei por ai em pesquisas na net, não testei o código, mas o mesmo dá uma idéia sobre o assunto... FUNCTION X() LOCAL oServer, cQuery, oQuery, i oServer:=TMYSQLSERVER():NEW(cHostName,cUserName,cPassword) IF oServer:NETERR() // Falha na conexão com o banco de dados MSGSTOP(oServer:ERROR()) oServer:DESTROY() RETURN ENDIF cQuery := 'USE MEU_BANCO' oQuery := oServer:QUERY(cQuery) IF oQuery:NETERR() // Falha na utilização do banco de dados MSGSTOP(cQuery+CRLF+; ALLTRIM(STR(oQuery:ERRORNO()))+CRLF+; oQuery:ERROR()) oQuery:DESTROY() RETURN ENDIF cQuery := 'SELECT * FROM MINHA_TABELA' // Como exemplo tem 3 campos oQuery := oServer:QUERY(cQuery) IF oQuery:NETERR() // Falha na leitura da tabela MSGSTOP(cQuery+CRLF+; ALLTRIM(STR(oQuery:ERRORNO()))+CRLF+; oQuery:ERROR()) oQuery:DESTROY() RETURN ENDIF USE MEU_DBF // Como exemplo tem 3 campos FOR i := 1 TO oQuery:LASTREC DBAPPEND() FIELDPUT(1,oQuery:GETROW(i):FIELDGET(1)) FIELDPUT(2,oQuery:GETROW(i):FIELDGET(2)) FIELDPUT(3,oQuery:GETROW(i):FIELDGET(3)) DBCOMMIT() DBUNLOCK() NEXT i RETURNid=code>id=code>[]´s Quote Link to comment Share on other sites More sharing options...
CIACPD Posted July 4, 2012 Report Share Posted July 4, 2012 MarcioE, É fácil, nas funções que voce grava dados nas tres tabelas voce cria um log e a cada X tempo voce dispara uma rotina que atualiza suas bases. Replicação automatica em mysql é muito sofrivel, e com trigger não da muito certo, pois qualquer alteração nos registros antes de efetivar a replicação ocorrem falhas. Eu replico a base de varias lojas usando o log de comandos enviados para o servidor. veja abaixo a tabela onde eu salvo o log de comandos. Function var_string_replica() return "(`CODEMP` char(3) default '000', "+; "`DATAHORA` char(16) default NULL, "+; "`DTMOV` date default NULL, "+; "`LOCALREAL` char(3) default NULL, "+; "`ATUALIZADO` char(1) default NULL, "+; "`COMANDO` blob, "+; "`DIAHORALOCAL` char(20) default NULL, "+; "`sql_rowid` bigint(10) NOT NULL auto_increment, "+; "`sql_deleted` enum('F','T') NOT NULL, "+; "PRIMARY KEY (`sql_rowid`), "+; "KEY `ATUALIZADO` (`ATUALIZADO`), "+; "KEY `DTMOV` (`DTMOV`), "+; "KEY `LOCALREAL` (`LOCALREAL`) "+; ") ENGINE=InnoDB DEFAULT CHARSET=latin1;" id=code>id=code>Daniel Segura daniel_segura@ig.com.br Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 5, 2012 Author Report Share Posted July 5, 2012 Amigo, pode ser replicado pelo banco mesmo, porem não é a cada registro incluido que será sincronizado. A atualização será feita em media 04 vezes por mes. Poderia ser via banco mesmo. ou seja o menor numero de código possivel. porem tem que ser via aplicação, ou seja o usaurio clica em um botão e o sistema faz o resto informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb .: 32-9104-0562 :. Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 6, 2012 Author Report Share Posted July 6, 2012 alguma novidade amigos informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb .: 32-9104-0562 :. Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 14, 2012 Author Report Share Posted July 14, 2012 O REPLICAR PELO QUE VI DARA CERTO, POREM NAO CONSEGUI CONFIGURAR. informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb .: 32-9104-0562 :. Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted July 14, 2012 Report Share Posted July 14, 2012 Marcio pergunto, qual seu conhecimento de coniguração de um BD, mais especÃficamente MySql que o seu caso "Melhor do que inventar um produto que todo mundo use, E fabricar um produto que todos usem, joguem fora, e depois voltem para comprar mais†Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 16, 2012 Author Report Share Posted July 16, 2012 Creio que pouco, Acredito que se fosse um grande conhecimento nem iria perguntar aqui. obrigado a todos informaisvrb@gmail.com MSN mastermarvrb@msn.com SKYPE informaisvrb .: 32-9104-0562 :. Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 13, 2013 Author Report Share Posted October 13, 2013 joao pode ser replicar apenas algumas tabelas em ambos servidores sao identicas EXEMPLO BANCO 1 TABELA DE CLIENTES quero que ao cadastrar dados no banco1 seja replicado no banco 2 a tabela de clientes. Quote Link to comment Share on other sites More sharing options...
joaosolution Posted October 14, 2013 Report Share Posted October 14, 2013 Marcio Acredito que com trigger fique mais fácil pois o próprio BD irá efetuar a atualização Att João Bosco Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 15, 2013 Author Report Share Posted October 15, 2013 amigo, tentei, mas sem exitos Posta algum exemplo do código SQL Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted October 15, 2013 Report Share Posted October 15, 2013 Sem êxitos, fazendo a triggers, ou o resultado não agradou ? Detalhe, se for gravar em bd local/remoto, deve-se estudar muito o caso, pois em mysql creio ve vai deixar a desejar. Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 15, 2013 Author Report Share Posted October 15, 2013 na verdade nem consegui fazer funcionar a triger. eu consegui é replicar o banco todo. mas ai não me atende A base é local, são 02 bancos de dados diferentes. É assim para o pessoal entender melhor. São 02 empresas. porem a unica coisa em comum entre elas é os clientes, o resto é tudo diferente. O que eu nao queria era ficar conectando no banco 1, conectando no banco 2, etc...Queria que ao cadastrar o cliente no BANCO1 ele fosse replicado, ou fosse totalmente copiado para o banco 2 os dados de produtos, sao todos diferentes. só cliente que é igual. Quote Link to comment Share on other sites More sharing options...
Yury Posted October 15, 2013 Report Share Posted October 15, 2013 Olá dbBAS1 = é o banco/tabela de origem, onde os registros de clientes são cadastrados dbBAS2 = é o banco/tabela cópia, onde os registros de clientes serão copiados do banco de origem quando executar o acima cDelete:="DELETE FROM dbBAS2.tbClientes" sqlExecute(cDelete) // deleta todos os clientes da base cópia cInsert:='INSERT INTO dbBAS2.tbClientes SELECT * FROM dbBAS1.tbClientes' sqlExecute(cInsert) // copia todos os clientes da base de origem para a base cópia // é necessário que as estruturas estejam idênticas dbBAS1 = é o banco/tabela de origem, onde os registros de clientes são cadastradosdbBAS2 = é o banco/tabela cópia, onde os registros de clientes serão copiados do banco de origem quando executar o acimacDelete:="DELETE FROM dbBAS2.tbClientes"sqlExecute(cDelete)// deleta todos os clientes da base cópiacInsert:='INSERT INTO dbBAS2.tbClientes SELECT * FROM dbBAS1.tbClientes'sqlExecute(cInsert)// copia todos os clientes da base de origem para a base cópia// é necessário que as estruturas estejam idênticas Abraço Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted October 15, 2013 Report Share Posted October 15, 2013 Yury. "DELETE FROM dbBAS2.tbClientes" melhor seria "TRUNCATE TABLE dbBAS2.tbClientes" Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.