Consultar tabela no protheus com JDBC

BOA TARDE, Estou tentando fazer um select utilizando um serviço JDBC, Fiz a query no sql mostra as informações mas quando coloco no DataSet do fluig não mostra nenhuma informação. Alguém poderia me dar uma ajuda.

function createDataset(fields, constraints, sortFields) {
       var newDataset = DatasetBuilder.newDataset();
        var prefixo = '';

        if(constraints != null){
            for (var i = 0; i < constraints.length; i++){            
                if(constraints[i].fieldName == 'E2_PREFIXO'){
                    prefixo = constraints[i].initialValue;
                }            
            }    
        }

    var dataSource = "/jdbc/consultatitu";
    var ic = new javax.naming.InitialContext();
    var ds = ic.lookup(dataSource);
    var created = false;
    var myQuery = " SELECT E2_PREFIXO PREFIXO, E2_NUM NUMERO,E2_PARCELA PARCELA, CONVERT (VARCHAR, CONVERT(DATETIME, E2_EMISSAO, 102), 103) AS Emissao, CONVERT (VARCHAR, CONVERT(DATETIME, E2_VENCREA, 102), 103) AS Vencimento,  A2_NOME FORNECEDOR, ED_DESCRIC NATUREZA, E2_SALDO VALOR";
        myQuery += "        FROM SE2010 SE2 ";
        myQuery += "        INNER JOIN SA2010 SA2 ON SA2.D_E_L_E_T_ = '' AND E2_FORNECE = A2_COD AND E2_LOJA = A2_LOJA ";
        myQuery += "    LEFT OUTER JOIN SED010 SED ON SED.D_E_L_E_T_ = '' AND E2_NATUREZ = ED_CODIGO ";
        myQuery += "        WHERE SE2.D_E_L_E_T_ = '' ";
        myQuery += "        AND E2_SALDO > 0 ";          
        myQuery += "        AND E2_NUMBOR = '' ";   
        myQuery += "        AND E2_DATALIB = '' ";   
        myQuery += "        AND E2_PREFIXO <> '' "; 

        myQuery += "GROUP BY E2_EMISSAO, E2_PREFIXO,E2_NUM, E2_PARCELA ,E2_VENCREA, E2_DATALIB, ED_DESCRIC, E2_SALDO,A2_NOME"; 
        myQuery += "ORDER BY E2_EMISSAO,PREFIXO, E2_NUM ";

        log.info("QUERY: " + myQuery);
    try {
        var conn = ds.getConnection();
        var stmt = conn.createStatement();
        var rs = stmt.executeQuery(myQuery);
        var columnCount = rs.getMetaData().getColumnCount();
        while (rs.next()) {
            if (!created) {
                for (var i = 1; i <= columnCount; i++) {
                    newDataset.addColumn(rs.getMetaData().getColumnName(i));
                }
                created = true;
            }
            var Arr = new Array();
            for (var i = 1; i <= columnCount; i++) {
                var obj = rs.getObject(rs.getMetaData().getColumnName(i));
                if (null != obj) {
                    Arr[i - 1] = rs.getObject(rs.getMetaData().getColumnName(i)).toString();
                } else {
                    Arr[i - 1] = "null";
                }
            }
            newDataset.addRow(Arr);
        }
    } catch (e) {
        log.error("ERRO==============> " + e.message);
    } finally {
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            conn.close();
        }
    }
    return newDataset;
}
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags select ou faça a sua própria pergunta.