PHP + Progress 101c

Discussão em 'Progress 4GL' iniciado por marcos.cbj, Setembro 8, 2009.

  1. marcos.cbj

    marcos.cbj Sem Pontuação

    Boa noite pessoal,

    Não sei se estou postando no lugar certo mas vamos lá.
    Estou tentando fazer uma aplicação PHP que conecte a um banco progress 101c.

    Achei o seguinte comando na net:
    Código:
    $conn = odbc_connect("Driver={Progress OpenEdge 10.1C driver}; HostName=localhost; PortNumber=15400; DatabaseName=ems2multi; DefaultIsolationLevel=READ COMMITTED;", "pub", "pub", SQL_CUR_USE_ODBC) or die("Não pude conectar com o Banco Progress.");
    O código funcionou, quando faço por exemplo "SELECT * FROM PUB.EMITENTE" ele me mostra todos os dados corretamente, mas quando uso a cláusula WHERE ele nunca me tras nada, mesmo o registro existindo na base.
    Um ex é "SELECT * FROM PUB.EMITENTE WHERE COD-EMITENTE < 100".

    O que vocês acham que possa ser?

    Obrigado.
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Amigo,

    Em qualquer operação utilizando ODBC/JDBC em todos os campos em que houver o traço, "-" deverá ser utilizado entre aspas duplas e a representação de valores texto em aspas simples.

    Código:
    SELECT * FROM PUB.EMITENTE WHERE "COD-EMITENTE" < 100
    ou quando necessário
    Código:
    SELECT * FROM PUB.EMITENTE WHERE pub.emitente."COD-EMITENTE" < 100
    SELECT * FROM PUB.EMITENTE WHERE PUB.EMITENTE."NOME-ABREV" = 'JOSE' 
    Outra coisa, tente mudar a forma de log do servidor HTTP para mostrar os avisos (WARNING), pois facilitara para encontrar esta e outras situações.

    Att.

    Cleilton
  3. marcos.cbj

    marcos.cbj Sem Pontuação

    Bom dia Cleiton,

    Fiz o que você falou e agora funcionou. Muito obrigado!
    Sobre configurar os avisos, vou tentar aqui, pois não sei exatamente como configurar.

    Abrs. Valeu
    Marcos
  4. marcos.cbj

    marcos.cbj Sem Pontuação

    Cleiton,

    Só mais uma coisa.

    Esse código abaixo, eu consegui fazer funcionar perfeitamente:
    Código:
    $resultado = odbc_exec($conn, ' SELECT * FROM pub.emitente WHERE "cod-emitente" < 100 ');
    No caso do "nome-abrev" não rolou acho que pelo fato de já estar usando a aspas simples no select todo:
    Código:
    $resultado = odbc_exec($conn, 'SELECT * FROM pub.emitente WHERE "nome-abrev" = 'HERNANDEZ' ');
    Teria alguma sugestão?

    Obrigado.
  5. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Tenta assim

    Código:
    $resultado = odbc_exec($conn, 'SELECT * FROM pub.emitente WHERE "nome-abrev" = \'HERNANDEZ\' ');
    Att.
  6. marcos.cbj

    marcos.cbj Sem Pontuação

    Eu tinha postado outra mensagem falando que não funcionou mas rolou sim cara. Muito obrigado. Ajudou d+.

Compartilhe esta Página