Página 1 de 1
Saber se um registro foi atualizado !
Enviado: 16 Out 2006 13:25
por Eliane
Estamos com um sistema já meio antigo que não tem os fontes.
Estamos fazendo um novo sistema que irá utilizar grande parte da base de dados do anterior.
O PROBLEMA:
O pessoal aqui não quer simplesmente puxar os dados do sistema antigo para o novo e colocá-lo para funcionar.
A idéia é manter o sistema anterior e ir testando o novo. A cada vez que entrar no novo, deverá puxar os dados do sistema anterior que se mantém sempre atualizado.
Ao invés de copiar todos os arquivos do sistema anterior ( mesmo porque as estruturas são diferentes) para o sistema novo ( o que seria extremamente lento ) teria alguma maneira de saber se o registro foi atualizado ? (não há nenhuma data no dbf que possa ser usada para isso)
Agradeço desde já a atenção !
Puxar os dados do antigo sistema
Enviado: 16 Out 2006 18:00
por Pablo César
Oi Eliane,
Acho que essa questão de migrar de um sistema (que inclusive não possuem os fontes) para um sistema novo e não poder PUXAR os dados do antigo de forma definitiva... é uma questão que te deixa numa situação um tanto INCONVENIENTE. porém, entendo a preocupação do cliente, a primeria instâncias. Toda migração tem seu tempo e contra-tempos. Você terá que demostrar ao cliente que teu sistema, chegou numa fase ESTÁVEL/SEGURA e mais DINÂMICA. Até então, eu sugiro que você puxe os dados apartir da ultima atualização. Claro isto, porque é uma exigência do cliente. Se ele fosse mais flexivel, você não teria este contra-tempo (mas, com isso você ganha uma opotunidade de renegociação, por motivos ao quais você tem que adaptarse à POLITICA ADMINISTRATIVA imposta pelo cliente), se bem que este não está aqui em questão.
Um sugestão (uma idéia), para puxar os dados "temporariamente" (digamos que no periódo onde você irá fazer a demostração ao cliente:
Você poderia importar os dados (mesmo que com estruturas diferentes) e eis aqui que devemos avaliar se isso seria possível. Pois digamos que a sua nova estrutura tem na maioria os mesmos campos (porém com nomes diferentes) e com outros campos adicionais. Sugiriria, para facilitar (penso eu) em colocar esses mesmo campos com nomes iguais e tipo/tamanho de preferência iguais. Isso, tornaria mais ráido o APPEND FROM. Mas se os campos estariam, em forma completamente diferentes, terás que fazer um função de conversão para APPENDAR no seu DBF.
Digamos então, que essa parte esteja superada. Para facilitar a sua IMPORTAÇÃO (toda vez que rode seu sistema), você inciaria APPENDANDO a sua base de dados, apartir do ultimo registro APPENDADO desde a ultima importação. Digamos, que você iria ver primeiro quantos registros teu no DBF_ANTIGO e guardar numa variável escrita (.MEM), para saber apartir de qual nº de registro poderia começar a fazer na proxima IMPORTAÇÃO. Se bem, que se o sistema antigo fizer ALTERAÇÕES por todos os registros do DBF_ANTIGO... você estaria encrecada. Daí diria que você teria que importar a toda hora que você iria rodar seu sistema. Todo isto é uma coisa muito KAMIKAZE. Só seria válido, se o antigo sistema somenta faça novos registros se a possibilidade de alteração no proprio sistema.
Mas como disse anteriormente, com essa postura do cliente, de não querer passar os dados de forma DEFINITIVA, você terá que refazer seu CUSTO de desenvolvimento, e ainda sujeita a erros. Se for transitório essa questão, tudo bem, você tente aprontar o sistema e entregar REDONDINHO o quanto antes. E provar pra eles, que seu sistema é MELHOR.
Outra sugestão seria você fazer teu sistema lendo direto do DBF_ANTIGO. Mas se eles quiserem qualidade ou recursos que este DBF_ANTIGO não te dá, alerte eles de que seria mais adequado MIGRAR para um DBF_NOVO com melhor ESTRUTURA.
Não sei se te ajudei cara colega Eliane, mas a sua situação não é nada CONVENIENTE nem para seu CLIENTE nem para o desenvolvimento do NOVO sistema. Porque iria comprometer a QUALIDADE e o PRAZO de entrega do seu sistema. Alem de muita dor de cabeça.
Reveja com seu cliente, essa questão. As vezes é necessário sair pra chuva e se molhar, do que ficar dentro e esperar a chuvar passar.
Um clip-abraço
Enviado: 16 Out 2006 20:56
por rochinha
Amiguinha
Não sei que versão de Clipper esta o seu sistema, ou que versão/linguagem/banco de dados se encontra o sistema legado(antigo), masuma boa sugestão seria migre para harbour.
Mas neste momento não seria indicado.
O indicado seria voce criar pontes entre estes aplicativos diferentes sistemas.
Se usam o bom e velho .DBF e voce conhece suas estruturas e os indices voce pode criar um pequeno aplicativo/serviço que faça uma varredura de tempos em tempos nos bd's antigos e transfira os registros novos para o novo, para isto seria necessário criar um campo flag nos db's antigos para marca-los como transferidos.
Se usam db's diferentes, exemplo: .DBF e .DB(paradox) voce poderia criar o aplicativo/serviço ponte usando o ODBC para conseguir ler as estruturas e conseguir trabalhar com os dados de forma mais compativel.
Em todos os casos usar dois sistemas diferentes ao mesmo tempo que devem apresentar um resultado identico é uma dor de cabeça ainda mais quando um calculo errado no entigo não bate com o calculo correto no novo e ai o cliente fala: ...mas este tempo todo estava errado?.
Siga em frente e peça o nosso apoio quando necessitar.
@braços :?)
Enviado: 17 Out 2006 09:04
por gvc
- Crie um novo DBF com a estrutura do antigo;
- Crie um campo para marcar que o registro foi alterado/incluido;
- Crie um programa para verificar as alterações nos registros do antigo em relação ao novo;
- Programe o windows de uma máquina para executar esse programa em determinado período;
(Agora vc tem um dbf com os registros alterados marcados [dbf novo])
Sua aplicação pode varrer esse dbf novo e atualizar sua nova base de dados.
Boa sorte.
Enviado: 17 Out 2006 10:44
por Eliane
Amigos, obrigado pela ajuda. Com suas idéias estou conseguindo contornar o problema. Valeu !