Autor Tópico: Pesquisar com Campos em Lookup  (Lida 2086 vezes)

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #15 Online: Janeiro 13, 2015, 09:15:41 pm »
Bom acho que a melhor solução é repetir os dados nas bases diferentes mesmo.
Tipo campo CPF nas 2 bases...
Até faria se eu soubesse uma forma automática de manter a informação nos dois bancos, observando que uso o scriptcase no windows, isto para alguma sugestão....

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #16 Online: Janeiro 14, 2015, 07:44:21 am »
Nesse caso você terá que adicionar o campo cpf ao seu banco mysql a usar ele.
Eu fiz isto também, mas não funcionou, e fazendo o lookup em cima do campo

Coloque o campo CPF e demais no banco mysql, tire o lookup para base firebird (todos campos que possam vir de lá)
Em quicksearch selecione apenas os campo que pode-se pesquisar (ex: nome, cpf, etc) para não dar nenhum conflito

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #17 Online: Janeiro 14, 2015, 07:46:46 am »
Bom acho que a melhor solução é repetir os dados nas bases diferentes mesmo.
Tipo campo CPF nas 2 bases...
Até faria se eu soubesse uma forma automática de manter a informação nos dois bancos, observando que uso o scriptcase no windows, isto para alguma sugestão....

Você tem um formulário que mantém as informações pelo Scriptcase ou por um outro programa?

Se for SC, no evento onAfterUpdate faça um sc_exec_sql que atualiza a outra base também.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #18 Online: Janeiro 14, 2015, 10:57:38 pm »
Bom acho que a melhor solução é repetir os dados nas bases diferentes mesmo.
Tipo campo CPF nas 2 bases...
Até faria se eu soubesse uma forma automática de manter a informação nos dois bancos, observando que uso o scriptcase no windows, isto para alguma sugestão....

Você tem um formulário que mantém as informações pelo Scriptcase ou por um outro programa?

Se for SC, no evento onAfterUpdate faça um sc_exec_sql que atualiza a outra base também.

As informações são atualizadas por outro programa, que no caso é em delphi e firebird, o scriptcase utilizo para dar a informação com um tratamento como este que estou tentando fazer. Sabe como me ajudar amigo? Ou uma alternativa? Isto está me dando muito problema, um projeto que está agarrado só por este problema, pois preciso desta consulta funcionando... tenso mesmo...

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #19 Online: Janeiro 15, 2015, 07:35:59 am »
Bom pelo que vejo a solução seria o seguinte:
- colocar todos os campos necessários na base mysql
- no OnScriptInit da consulta fazer um método deleta todos os registros do mysql, seleciona todos do firebird e insere no mysql, dessa maneira mantendo sempre as bases iguais e claro se o usuário trocar algo no firebird, ao acessar o relatório os dados serão atualizados.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #20 Online: Janeiro 15, 2015, 10:02:40 am »
Bom pelo que vejo a solução seria o seguinte:
- colocar todos os campos necessários na base mysql
- no OnScriptInit da consulta fazer um método deleta todos os registros do mysql, seleciona todos do firebird e insere no mysql, dessa maneira mantendo sempre as bases iguais e claro se o usuário trocar algo no firebird, ao acessar o relatório os dados serão atualizados.

Por tudo bem em fazer, mas desculpe a ignorância, poderia me dar um exemplo de como fazer isto?

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #21 Online: Janeiro 15, 2015, 02:35:43 pm »
Crie os campos no mysql do cadastro um campo chave (recebe o id do firebird), cpf e demais campos
Faça sua aplicação, filtro, lookups totalmente pelo mysql.
Na consulta (mysql) faça um evento no onScriptInit
use o sc_select para selecionar os dados da base firebird.
Percorra linha por linha, a cada linha do retorno faça um lookup na base mysql e veja se o registro (pelo id) existe, se sim, atualiza os campos. Se não insere.
Dessa maneira você sempre terá a base atualizada.
Se tiver muitos registros e causar uma lentidão, faça um controle com esse método no onValidate.

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #22 Online: Janeiro 18, 2015, 02:58:43 pm »
Crie os campos no mysql do cadastro um campo chave (recebe o id do firebird), cpf e demais campos
Faça sua aplicação, filtro, lookups totalmente pelo mysql.
Na consulta (mysql) faça um evento no onScriptInit
use o sc_select para selecionar os dados da base firebird.
Percorra linha por linha, a cada linha do retorno faça um lookup na base mysql e veja se o registro (pelo id) existe, se sim, atualiza os campos. Se não insere.
Dessa maneira você sempre terá a base atualizada.
Se tiver muitos registros e causar uma lentidão, faça um controle com esse método no onValidate.


Beleza... difícil pra mim é fazer tudo isto...

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:Pesquisar com Campos em Lookup
« Responder #23 Online: Janeiro 20, 2015, 04:41:09 pm »
Crie os campos no mysql do cadastro um campo chave (recebe o id do firebird), cpf e demais campos
Faça sua aplicação, filtro, lookups totalmente pelo mysql.
Na consulta (mysql) faça um evento no onScriptInit
use o sc_select para selecionar os dados da base firebird.
Percorra linha por linha, a cada linha do retorno faça um lookup na base mysql e veja se o registro (pelo id) existe, se sim, atualiza os campos. Se não insere.
Dessa maneira você sempre terá a base atualizada.
Se tiver muitos registros e causar uma lentidão, faça um controle com esse método no onValidate.


Por favor amigo, poderia ajudar a este ignorante, não sei como fazer o :
"use o sc_select para selecionar os dados da base firebird.
Percorra linha por linha, a cada linha do retorno faça um lookup na base mysql e veja se o registro (pelo id) existe, se sim, atualiza os campos. Se não insere.
Dessa maneira você sempre terá a base atualizada.
Se tiver muitos registros e causar uma lentidão, faça um controle com esse método no onValidate."

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Pesquisar com Campos em Lookup
« Responder #24 Online: Janeiro 21, 2015, 06:48:22 am »
Me manda um e-mail com a estrutura e alguns dados de cada tabela em cada banco de dados.
Os dados podem ser fictícios mesmo pra eu analisar e te ajudar.
Meu e-mail é rodrigo@ojrconsultoria.com.br aí nos falaremos por e-mail.