1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida FOR EACH "complexo"

Discussão em 'Progress 4GL' iniciado por jc01, Março 9, 2015.

  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    veja que o indice é o campo codigo, mas eu quero saber o ultimo nome.
  2. jc01

    jc01 Membro Participativo

    Pois é, não tem como fugir do FOR EACH. Agora funcionou.
    Mas pensando numa tabela de 1.000.000 de registros, ter que percorrer toda tabela apenas pra saber qual o maior código pra mim é um retrocesso em se tratando de linguagens de programação.
    Você disse que tem como usar SQL no Progress, eu percebi que tem como. Mas ainda não sei como substituir o FOR EACH por comandos SQL.
    Por exemplo, quero fazer SELECT MAX(codigo) FROM tabela e guardar o valor do MAX numa variável. Não faço a mínima ideia de como fazer isso no Progress.
  3. jc01

    jc01 Membro Participativo

    Complementando frase, já que não existe opção de editar:

    "...Não faço a mínima ideia de como fazer isso no Progress por comando SQL."
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    a questão toda é a seguinte, no nosso exemplo, se o campo codigo é chave, é indice da tabela, vc faz um for last tabela use-index nome do indice e ele te retorna na hora.
    Então, para vc trabalhar com as tabelas do progress, vc tem que planejar bem o que precisa fazer e criar os indices de forma a otimizar o seu trabalho, se tiver indice, pode usar até um find last ao inves de um for last.
  5. jc01

    jc01 Membro Participativo

    Entendi. Tenho que me adaptar a essa nova realidade de não usar SQL :D
    Valeu.
  6. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    porque se vc pensar bem, um select MAX que vc quer usar, se não tiver indice pro campo, vai demorar pra retornar tanto quanto um for each lendo a tabela toda, pois é o que o select vai fazer.

Compartilhe esta Página