Invalid date value

shashi12

New Member
I am getting the following error...

java.sql.SQLException: [JDBC OpenEdge Driver]:[]Invalid date value (7496)
at com.progress.sql.jdbc.JdbcProgress.createSQLException(JdbcProgress.java:6636)
at com.progress.sql.jdbc.JdbcProgress.standardError(JdbcProgress.java:6821)
at com.progress.sql.jdbc.JdbcProgress.SQLExecute(JdbcProgress.java:2843)
at com.progress.sql.jdbc.JdbcProgressPreparedStatement.execute(JdbcProgressPreparedStatement.java:237)
at ProCallStoredProcedure2.main(ProCallStoredProcedure2.java:34)

Can anyone tell me why?

Thanks,
Shashi

/* Stored procedure */
CREATE PROCEDURE getDate (
OUT myDate DATE)
BEGIN
END;
COMMIT WORK;

/* Java code */
CallableStatement stmt = con.prepareCall("{call getDate(?)}");
stmt.registerOutParameter(1, java.sql.Types.DATE);
stmt.execute();
 
Are you creating a SQL-table with a date column?

KB: P13266:

Use "DATE" instead of "TIMESTAMP" when trying to apply "default
sysdate". e.g.:
CREATE TABLE TABLE-NAME
(CREATION_DATE DATE default sysdate not null);

Casper
 
I am not creating any tables. The error occurs even when the stored procedure is empty!

thanks for your reply, casper.

regards,
Shashi
 
What if you change the call to:

call getDate() (without the question mark, between parenthesis are the input parameters).
I've nerver worked with stored procedures, but what is the value of mydate if you don't assign it? If it's ? then you have to make it NULL.
What if you set it to sysdate?

Casper.
 
Thanks for your help Casper. After some trial and error stuff, I got the stored procedure to work!

The bottomline is for some reason, progress doesn't like it when I declare
an output parameter (OUT) of type "DATE". So, I had to resort to an INOUT parameter instead.

/* Java code */
CallableStatement stmt = con.prepareCall("{call getDate(?)}");
stmt.setDate(1, new java.sql.Date(new java.util.Date().getTime()));
stmt.registerOutParameter(1, java.sql.Types.DATE);
stmt.execute();
System.out.println("Done executing the statement! " + stmt.getDate(1));

/* Stored procedure */
CREATE PROCEDURE getDate (
INOUT fotosetDate DATE)
IMPORT
import java.util.*;
import java.sql.*;
BEGIN
/*
Calendar cal = new GregorianCalendar(1997, 2, 10);
fotosetDate = new java.sql.Date(cal.getTime().getTime());
*/
SQLCursor dateCursor = new SQLCursor(
"SELECT fotosetdate FROM PUB.fotoset WHERE fotosetnum = 1");
dateCursor.open();
dateCursor.fetch();
if (dateCursor.found()) {
fotosetDate = (java.sql.Date) dateCursor.getValue(1, DATE);
}
END;
COMMIT WORK;
 
Back
Top