[RESOLVIDO]Preciso de ajuda para gerar uma SQL

3 respostas
thiagofesta

Bom dia a todos,

Estou fazendo a sincronização de um bando, e possuo algumas tabelas que está relacionadas (porém este relacionamento as vezes é fraco, pois pode estar rodando em um banco com MySQL do tipo MyISAM).

Pois bem, tenho as seguintes tabelas:
tb_pedido
tb_pedido_item (onde tem o id_pedido como FK)
tb_pedido_item_x_opcao (onde tem o id_pedido_item como FK)

O sincronismo ocorre da seguinte maneira:
Tenho um banco GLOBAL (server), e milhares de bancos móveis (cada vendedor é um banco móvel)

Quando o vendedor clicar em sincronizar, eu pego o que tem no banco dele, das 3 tabelas que citei e mando para o banco remoto, sem duplicar os ids, após mandar apago tudo e copio pro banco do vendedor denovo.

Veja o esboço:
while(tem pedido no pc do vendedor)
{
	if(pedido existe)
	{
		// Altera
		
		// Verifica se mudou na tb_pedido_item
		while(tem pedido_item no pc do vendedor)
		{
			if(pedido_item existe)
			{
				// Altera
			}
			else
			{
				// Insere e pega o novo ID
				// Verifica se tem pedido_item_x_opcao no pc do vendedor
				if(pedido_item_x_opcao existe)
				{
					// Altera
				}
				else
				{
					// Insere
				}
			}
		}
		
	}
	else 
	{
		// Insere e pega o novo ID
		
		// Verifica se mudou na tb_pedido_item
		while(tem pedido_item no pc do vendedor)
		{
			if(pedido_item existe)
			{
				// Altera
			}
			else
			{
				// Insere e pega o novo ID
				// Verifica se tem pedido_item_x_opcao no pc do vendedor
				if(pedido_item_x_opcao existe)
				{
					// Altera
				}
				else
				{
					// Insere
				}
			}
		}
	}
}

Ai está, mas estou com problemas na hora de inserir e tal, problemas em manipular os resultsets...

Gostaria de saber se vocês possuem uma idéia melhor para isso, para facilitar este sincronismo?
Qualquer idéia é bem vinda!

3 Respostas

L

Eu já fiz algo parecido…
Tem a tabela de pedidos e itens e outras relacionadas
Quando o pedido é enviado para o servidor(Sincronizar) então apaga da tabela de pedidos e grava os mesmos numa tabela de pedidos_enviados, itens enviados e outras necessárias
Assim a tabela de pedidos vc tem os pedidos não enviados e na tabela de pedidos_enviados os que já foram enviados…com data de envio e tudo

thiagofesta

leopoldof:
Eu já fiz algo parecido…
Tem a tabela de pedidos e itens e outras relacionadas
Quando o pedido é enviado para o servidor(Sincronizar) então apaga da tabela de pedidos e grava os mesmos numa tabela de pedidos_enviados, itens enviados e outras necessárias
Assim a tabela de pedidos vc tem os pedidos não enviados e na tabela de pedidos_enviados os que já foram enviados…com data de envio e tudo

Essa é uma ótima idéia, mas no meu caso não iria funcionar, pois seria muito trabalhoso alterar todas as telas e relatórios do meu sistema.
É uma pena, pois não (eu e o pessoal envolvido) pensei nesta sincronização antes de fazer o projeto.

Aguardo outras dicas!

thiagofesta

Bom dia,

Consegui fazer o sincronismo da forma que eu disse acima.
Como disse havia problemas com os resutsets fechados, ou se abrisse mais conexões dava problemas…
A solução foi a cada loop coloca todos os meus pojo dentro de um vector ai percorre esse vector, assim não da problema de resultset fechado!

Criado 10 de março de 2009
Ultima resposta 11 de mar. de 2009
Respostas 3
Participantes 2