consulta com parâmetros de dois bancos

(system) #1

Olá,

Estou desenvolvendo um sistema que utiliza duas bases de dados distintas e precisava criar uma consulta com dados de uma tabela de um banco que, tomando por base o Código do lançamento apresentasse para mim os itens desta tabela que existem em uma tabela de outro banco.
Resumindo precisava utilizar o comando INNER JOIN na instrução SQL comparando os códigos, simulei a consulta com tabelas do mesmo banco e funciona perfeitamente, o problema é que cada tabela está em um banco de dados e não estou conseguindo fazer um INNER JOIN entre elas.

Obrigado,

(Haroldo) #2

Faça Sub-Consulta ou no lookup vc pode obter dados de outra conexão, ou busque os dados vi sc_lookup

(system) #3

se eu buscasse os dados via sc_lookup, como eu poderia utilizar esta informação no INNER JOIN?

(Haroldo) #4

Não poderia usar no inner join. A cada registro lido vc iria na mão e buscaria os registros relacionados da tabela e banco qu enão fazem parte da conexão principal, e moveria esses valores para os campos criados manualmente na consulta.

(system) #5

Estou tentando fazer essa busca manualmente, no lookup de consulta do campo criado, porém oque não estou conseguindo fazer é um select a busque dados de uma tabela de um banco de dados que não é o banco sobre o qual a consulta foi desenvolvida.

(Haroldo) #6

Você pode criar uma segunda conexão e passar o nome dela como parâmetro do sc_lookup.

(system) #7

consegui fazer funcionar utilizando a clausula NOT IN e informando o caminho completo da tabela do outro banco (Sevidor.Banco.Usuário.Tabela), porém agora estou com outro problema, tenho que calcular a diferença entre dois campos data só que estão no formado “dd/mm/aaaa hh:mm:ss” e a macro sc_dif_date não os está aceitando…

(Victor Alcântara de Moraes) #8

Não sei se entendi bem a sua dúvida mas vamos lá, em algumas aplicações que desenvolvi aqui também às vezes necessitava mexer com a data e tinha problemas de compatibilidade com data e hora, o que faço é no campo onde a data vai ser processada, troquei o tipo, em campos, vai no campo que tem a data e nas configurações dele a primeira que tem dizendo o tipo geralmente está marcado como data e hora, troca para somente data.
Acho que soluciona seu problema, espero ter ajudado.
Atenciosamente,
Victor A Moraes.

(system) #9

No meu caso, na consulta o campo está marcado como campo data, porém ele apresenta o campo apenas mascarado como data, quando a gente faz a consulta SQL para cálculo da diferença de dadas o valor que o SQL busca é do do banco que é data e hora e eu não tenho como alterar informações deste banco, pois esta informação é apresentada em um banco de um outro sistema, que eu consulto para alimentar informações no sistema que estou desenvolvendo.
Tentei utilizar o clausula datediff do sql pedindo para calcular a diferença através do parametro “dayofyear” porém na consulta não consigo fazer funcionar, este comando só funcionou em um formulário.
o que vou tentar fazer é utilizar a funcão e tentar utilizar algum tipo de CONVERT para separar as informações de data e hora.

(Victor Alcântara de Moraes) #10

tenta fazer com que o campo que pegue a data do banco diretamente, assim vc pode manipular o campo fica mais fácil, só não sei se numa consulta da pra criar um novo campo buscando de outra base de dados.

(Haroldo) #11

da sim, através do ajax, no evento onrecord vc movimetna o valor lido da tabela para o campo criado manualmente.