It's kind of horrible how much time I spent on this, and of course, after I send the email I realize there's a typo.
         conn = JDBC_ConnProp( 'net.sourceforge.jtds.jdbc.Driver'
should have been
         conn = JDBC_ConnProp( 'net.sourceforge.jdts.jdbc.Driver'
jtds vs jdts
-Kurt
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Kurt Anderson
Sent: Friday, October 21, 2011 2:34 PM
To: RPG programming on the IBM i / System i (rpg400-l@xxxxxxxxxxxx)
Subject: JDBC4R - Issue finding driver
I'm trying to setup connections to our SQLServer 2005 & 2008 servers.
I'm not at all familiar with JDBC stuff or setting up java.  I've been following Scott's presentation:
http://www.scottklement.com/presentations/External%20Databases%20from%20RPG.pdf
I downloaded the jtds jar and placed it in the IFS root in a folder called /java/jdts/
The jar is jtds-1.2.5.jar.   I thought I'd rename it to try jtds.jar as well.  Since it wasn't working I didn't know if I needed the /java/jdts/ under the Home directory in the IFS so I put it there as well.
Here is the code I'm trying to run (taken from Scott's MSSQLTEST source):
      /copy jdbcr4lib/qrpg,jdbc_h
     D getenv          PR              *   EXTPROC('Qp0zGetEnvNoCCSID')
     D  name                           *   VALUE OPTIONS(*STRING)
     D putenv          PR              *   EXTPROC('Qp0zPutEnvNoCCSID')
     D  name                           *   VALUE OPTIONS(*STRING)
     D EnvVal          S            256A   VARYING
     D EnvValChanged   S               N   INZ(*off)
     D p_EnvVal        s               *
     D ErrMsg          s             50A
     D wait            s              1A
     D count           s             10I 0
     D CaseID          s             15A
     D conn            s                   like(Connection)
     D rs              s                   like(ResultSet)
     D prop            s                   like(Properties)
     D prepstm         s                   like(PreparedStatement)
         // Set up CLASSPATH before starting JVM
         p_envval = getenv('CLASSPATH');
         if (p_envval <> *null);
            EnvVal = %str(p_envval);
         endif;
         if %scan('.:':EnvVal) = *zeros;
           EnvVal = '.:' + EnvVal;
           EnvValChanged = *on;
         endif;
         if %scan('/sqljdbc.jar':EnvVal) = *zeros;
           //EnvVal += ':/java/jdbc/jdts-1.2.5.jar';
           EnvVal += ':/java/jdbc/jdts.jar';
           EnvValChanged = *on;
         endif;
         if EnvValChanged;
           putenv('CLASSPATH=' + EnvVal);
         endif;
         prop = JDBC_Properties();
         JDBC_setProp(prop: 'userName'     : 'user');
         JDBC_setProp(prop: 'password'     : 'password');
         JDBC_setProp(prop: 'databaseName' : 'cdwEQX');
       //conn = JDBC_ConnProp('com.microsoft.sqlserver.jdbc.SQLServerDriver'
         conn = JDBC_ConnProp( 'net.sourceforge.jtds.jdbc.Driver'
                             :'jdbc:jtds:sqlserver://172.16.20.20:1433'
                             : prop );
         JDBC_freeProp(prop);
         if (conn = *NULL);
             return;
         endif;
test     dsply 'connected' 'KURT';
test     return;
The error I'm getting is ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
The FAQ at the JTDS site says it's likely having an issue finding the JAR.
After the program runs I check the environment variable and it looks right:
CLASSPATH                   '.::/java/jdbc/jdts.jar'
I'm really at a loss here.  Anyone have any ideas?
Thanks,
Kurt Anderson
Sr. Programmer/Analyst
CustomCall Data Systems
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.