1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Duvida For each em dois bancos de dados

Discussão em 'Progress 4GL' iniciado por MatheusHLX, Janeiro 2, 2014.

  1. edu_felix

    edu_felix Sem Pontuação

    Veja a chave das duas tabelas. pela mensagem que esta dando é que as chaves são diferentes, com isso você precisa relacionar campo a campo.

    Espero ter ajudado
  2. vprates

    vprates Sem Pontuação

    Basta tirar o OF do find, já que as duas tabelas não tem campos chaves com o mesmo nome.

    FOR EACH tit_ap NO-LOCK:

    FIND FIRST mgadm.fornecedor
    WHERE mgadm.fornecedor.cod-fornec = tit_ap.cdn_fornecedor
    NO-LOCK NO-ERROR.
  3. PontoSistemas

    PontoSistemas Membro Participativo

    A tabela fornecedor do banco mgadm nao tem relação com a tabela tit_ap
    desta forma você tem que fazer o find considerando os campos cdn_fornecedor com o campo cod-emitente

    find mgadm.emitente no-lock
    where mgadm.emitente.cod-emitente = tit_ap.cdn_fornecedor no-error.

    Mas porque você nao le a propria tabela do ems5 chamada fornecedor? desta forma você nao precisa indicar o banco e simplesmente procurar na tabela.
    find fornecedor no-lock
    where fornecedor.cod_empresa = tit_ap.cod_empresa
    and fornecedor.cdn_fornecedor = tit_ap.cdn_fornecedor no-error.

    Se o programa reclamar de ambiguous table, tente colocar no nome do banco na frente, tipo emsuni.
  4. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Meu amigo,
    a opção OF deve ser usada quando as duas tabelas têm os campos em comum e quando os campos são chaves em uma das tabelas.
    É por isso que ocorre erro 230, sugiro você informar na cláusula WHERE o relacionamento entre as tabelas.

    Forte abraço.

    PS. O Carlos Rogério não deve gostar da minha resposta, pois sou Palmeirense "Olê Porcoooooooooo" :D

Compartilhe esta Página