Should the "dow (jdbc_nextRow(rs));" in getVendorAddress sub-routine be "dow
(jdbc_nextRow(ars));"?
"Mike Cunningham" <mike.cunningham@xxxxxxx> wrote in message
news:mailman.6696.1286819211.2702.rpg400-l@xxxxxxxxxxxxxxx
What would be the proper sequence of instructions using JDBCR4 to do a
second SELECT while looking through the result set of the first SELECT?
My code was like this and it run OK
SQL_Statement = 'SELECT.........";
prepstm = JDBC_prepStmt(conn : SQL_Statement);
Select_PO_NO = 'P0000041';
jdbc_setString(prepstm: 1: Select_PO_NO);
rs = jdbc_ExecPrepQry(prepstm);
dow (jdbc_nextRow(rs));
HPOs.Purch00001 = jdbc_getCol(rs: 1);
...
Enddo;
JDBC_FreeResult(rs);
JDBC_FreePrepStmt(prepstm);
JDBC_Close(conn);
Then I added the "Exsr getVendorAddress;" and started getting a dump on
JDBC_FreeResult(rs);
SQL_Statement = 'SELECT.........";
prepstm = JDBC_prepStmt(conn : SQL_Statement);
Select_PO_NO = 'P0000041';
jdbc_setString(prepstm: 1: Select_PO_NO);
rs = jdbc_ExecPrepQry(prepstm);
dow (jdbc_nextRow(rs));
HPOs.Purch00001 = jdbc_getCol(rs: 1);
Exsr getVendorAddress;
...
Enddo;
JDBC_FreeResult(rs);
JDBC_FreePrepStmt(prepstm);
JDBC_Close(conn);
-------------------------------------------------
GetVendorAddress BEGSR
aSQL_Statement = 'SELECT.........";
aprepstm = JDBC_prepStmt(conn : aSQL_Statement);
ars = jdbc_ExecPrepQry(aprepstm);
dow (jdbc_nextRow(rs));
HAddress_ls.Addre00001 = jdbc_getCol(ars: 2);
...
Enddo;
JDBC_FreeResult(ars);
JDBC_FreePrepStmt(aprepstm);
ENDSR
Error is a MCH3601 Pointer not set for location referenced.
FATAL ERROR in native method: Received NULL object reference
java.lang.Throwable
If I remove the EXSR it runs clean. Add it back and it dumps. I have tried
removing the JDBC_FreeResult(ars); and JDBC_FreePrepStmt(aprepstm); from
the end of the GetVendorAddress routine and it still dumps. If I remove
the JDBC_FreeResult(rs); JDBC_FreePrepStmt(prepstm); from the very end it
dumps on the JDBC_Close(conn);
As an Amazon Associate we earn from qualifying purchases.