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
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:datadirectpenedge://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
Me desculpem o conteudo da variavel CLASSPATH é o seguinte: /usr/dlc/java/openedge.jar:/usr/dlc/java/pool.jar Att.. Joni
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:datadirectpenedge://<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()); } }
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.