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

[RESOLVIDO] Erro retorno da consulta ao progress usando JDBC

Discussão em 'EMS , HCM e Totvs 11' iniciado por André Machado, Março 5, 2014.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. André Machado

    André Machado Sem Pontuação

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;

    public class Ola {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic here

    String urlDB = "jdbc:datadirect:eek:penedge://127.0.0.1:15471;DatabaseName=mgcad";
    Connection con;

    //PreparedStatement stmt ;
    Statement stmt;
    ResultSet rs;
    String login = "teste";
    String senha = "teste";

    try {
    /* Registrando a classe do driver JDBC */
    Class.forName ("com.ddtek.jdbc.openedge.OpenEdgeDriver");
    }
    catch(Exception ex) {
    System.out.println("Erro: " + ex.getMessage());
    }
    try {
    /* Conectando-se com o banco de dados */

    con = DriverManager.getConnection(urlDB,login,senha);

    stmt = con.createStatement();


    System.out.println("\nListando os registros da tabela");

    System.out.println("----------------------------------------------------------------");

    rs = stmt.executeQuery("select emitente.nome-abrev from mgcad.emitente");



    /* Listando os registros da tabela */

    while(rs.next()) {

    System.out.println(rs.getInt(1));

    }



    System.out.println("\nConexão com Progress efetuada com sucesso...");


    con.close();
    }
    catch(Exception e) {
    System.out.println("Erro: " + e.getMessage());
    }
    }


    retorna a seguinte mensagem de erro :

    Listando os registros da tabela
    ----------------------------------------------------------------
    Erro: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Table/View/Synonym não encontrado (7519)
    CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
  2. Agnaldo

    Agnaldo Membro Ativo

    Provavelmente precisa pré-fixar o nome da tabela com o usuário (owner) para ela.
    Ao invés de "emitente" seria "pub.emitente".
    Algo como
    select "nome-abrev" from pub.emitente

    ps: não esquecer que o traço de hífen é aceito só, e somente só, na 4GL. Sendo assim, precisa colocar entre aspas os locais onde ele é usado no SQL.
  3. André Machado

    André Machado Sem Pontuação

    Obrigado Agnaldo.
    Mais uma duvida o 4GL como eu coloco ? ele possui uma porta de conexão ? no parametro do jdbc eu utilizarei qual porta ? na url abaixo.
    String urlDB = "jdbc:datadirect:eek:penedge://127.0.0.1:15471;DatabaseName=mgcad";

    segue abaixo a string que utilizo para carregar o banco, está faltando algum parametro ?
    c:\dlc10\bin\_mprosrv.exe "c:\Bancos\ems206\ems2cad" -ld mgcad -B 1000 -L 60000 -Mm 4096 -N tcp -S 15471 -n 40 -Ma 10 -Mi 10 -Mn 4

    tentei criar uma tabela e inserir dados nela, retorno uma mensagem que eu não posso privilégios para isso, como eu mudo os privilégios dos usuários que crio ?

    testei aqui a modificação que você me indico e recebi a seguinte mensagem de erro
    Erro: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Acesso negado(Autorizacao falhou) (7512)
    abaixo a string que utilizei
    rs = stmt.executeQuery("select emitente.cgc from PUB.emitente");

    precisarei mudar as permissões do usuário mesmo, sabe como eu devo fazer ?


    obrigado.
    Última edição: Março 5, 2014
  4. Agnaldo

    Agnaldo Membro Ativo

    Precisa passar o usuário do banco.
    Note, do banco, não do login do Datasul.
    Esses que voce passou existe???
    String login = "teste";
    String senha = "teste";

    O mais simples aqui é voce "cadastrar" no banco o usuario SYSPROGRESS com senha SYSPROGRESS, que é um usuário meio padrão do SQL do Progress.
    Novamente, esse usuário é do banco (cadastra ele pela tela do Data Administration do Progress).
  5. André Machado

    André Machado Sem Pontuação

    Obrigado Agnaldo.
    o usuário teste existe sim, fiz o que vc me falo, ja existia o usuário o sysprogress, mas ele não estava conectando, exclui e o cadastrei novamente, e deu certo, consegui exibir os dados, a sua dica das aspas também foi muito importante, no caso da url eu fiz da seguinte maneira
    rs = stmt.executeQuery("select emitente.\"nome-abrev\" from PUB.emitente");
    e deu certo.
    a versão do banco é 10.1A.
    obrigado.
  6. André Machado

    André Machado Sem Pontuação

    Olá Agnaldo, tudo bom ?
    consegui me conectar usando o jdbc em uma aplicação java, mas dá erro em uma aplicação android, você ja fez essa conexão ? sabe me orientar ?
    o código é o mesmo, utilizo as mesmas bibliotecas, mas aparece que não foi possível estabelecer conexão ao banco.
    aparece o seguinte erro :

    erro: [DataDirect][OpenEdge jDBC DRIVER]Error establishing socket to host
    and port : 192.168.0.110:15471. Reason: Permission denied

    estou usando essas bibliotecas :
    libraries
    base.jar
    messages.jar
    openedge.jar
    osmetrics.jar
    util.jar

    Obrigado pela ajuda.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página