Conexão Progress via JDBC

Discussão em 'Progress 4GL' iniciado por Joni, Junho 30, 2014.

  1. Joni

    Joni Membro Participativo

    Boa tarde Amigos,

    Surgiu aqui na empresa a necessidade de criar uma conexão com o Banco Progress utilizando JDBC. A finalidade é para criar monitores onde será possivel realizar verificação de indicadores de performance do banco de dados utilizando querys das VST´s. Sinceramente nunca criei este tipo de conexão por este motivo venho aqui recorrer a experiencia de voces para poder ter uma ideia do que tenho que fazer. O ambiente é OpenEdge 10.2B com Linux.

    Obrigado,

    Joni
  2. Joni

    Joni Membro Participativo

    Amigos,

    Criei uma Classe para fazer a conexão JDBC e segue abaixo o que fiz....

    import java.sql.*;
    public class JdbcTest
    {
    public static void main (String args [])
    {
    try
    {
    Class.forName ("com.ddtek.jdbc.openedge.OpenEdgeDriver");
    System.out.println("Driver loaded");
    Connection con = DriverManager.getConnection("jdbc:datadirect:eek:penedge://datasuldbprd:13235;databaseName=joni","sysprogress","sysprogress");
    System.out.println("Connected");
    Statement stmt = con.createStatement();
    System.out.println("Statement created");
    ResultSet rs = stmt.executeQuery("select cad-id from cadfun");
    System.out.println("ResultSet : \n");
    while (rs.next())
    {
    System.out.println(rs.getString(1));
    }
    rs.close();
    stmt.close();
    con.close();
    }
    catch (Exception x) {x.printStackTrace();}
    }
    }

    Apos compilar ocorreu o erro abaixo e não estou conseguindo saber o que ocorre.....

    Exception in thread "main" java.lang.NoClassDefFoundError: JdbcTest
    Caused by: java.lang.ClassNotFoundException: JdbcTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    Could not find the main class: JdbcTest. Program will exit.

    A minha variavel CLASSPATH esta com o seguinte conteudo:
    /usr/dlc/java/openedge.jar:/usr/dlc/java/util.jar:/usr/dlc/jav/base.jar:/usr/dlc/java/openedge.jar:/usr/dlc/java/pool.jar

    Alguma ideia do que esta dando errado??

    Abs,

    Joni
  3. Joni

    Joni Membro Participativo

    Me desculpem o conteudo da variavel CLASSPATH é o seguinte:

    /usr/dlc/java/openedge.jar:/usr/dlc/java/pool.jar

    Att..

    Joni
  4. geovane

    geovane Sem Pontuação

    Segue um exemplo da conexão JDBC com uma consulta para quem precisar:

    import java.sql.*;
    public class Progress {

    public static void main(String[] args) {

    /* String de conexão com o banco de dados */

    String urlDB = new String("jdbc:datadirect:eek:penedge://<Servidor do banco>:<porta sql do banco progress>;databaseName=<nome do banco>");

    Connection con;
    Statement stmt;
    ResultSet rs;

    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,"usuario_sql_do_banco_progress","<senha>");

    stmt = con.createStatement();

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

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

    rs = stmt.executeQuery("SELECT * FROM pub.\"<nome_da_tabela>\"");



    /* Listando os registros da tabela */

    while(rs.next()) {

    System.out.println(rs.getInt("<Campo_inteiro>") + "\t" + rs.getString("<campo_string>"));

    }

    rs.close();
    stmt.close();

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

    }

    catch(Exception e) {

    System.out.println("Erro: " + e.getMessage());

    }

    }
    rhemati curtiu isso.
  5. geovane

    geovane Sem Pontuação

    Lembrando que tem que importar as libs openedge.jar e progress.jar para dentro do projeto. Elas podem ser encontradas dentro do diretório de instalação do progress.
    rhemati curtiu isso.

Compartilhe esta Página