Seb,
I've probably done something wrong then!
The code was as per the date test - but with a an 'A' being read into an integer:
DEFINE l_string STRING
DEFINE l_rec RECORD
someInt INTEGER,
SOMEDollarDate,
someDate,
someDateYYYYMMDD,
someOtherDate DATE
END RECORD
CALL ext_open_database('','')
WHENEVER ANY ERROR STOP
LET l_string =
'SELECT \'A\',$$1900-01-01$$,\'01-01-1900\',\'1900-01-01\',\'01-01-2016\'::DATE ',
'FROM blankTable ',
'WHERE recno = 1'
PREPARE p_readDate FROM l_string
DECLARE c_readDate CURSOR FOR p_readDate
FOREACH c_readDate INTO l_rec.*
DISPLAY 'Status (',status,') SQL Status (',sqlca.sqlerrd[2],') integer (',l_rec.someInt,') dollarDate (',l_rec.someDollarDate,') date (',l_rec.someDate,') YYYYMMDD Date (',l_rec.someDateYYYYMMDD,') other Date (',l_rec.someOtherDate,')'
END FOREACH
CLOSE DATABASE
....which gave the following SQL DEBUG....
SQL: PREPARE
| 4gl source : tester.4gl line=4256
| sqlcode : 0
| curr driver : ident='dbmpgs_9'
| curr connection : ident='_1' (dbspec=[dev_gyb])
| sql cursor : ident='cu0' (fglname='p_readdate',module='tester')
| fgl stmt : SELECT 'A',$$1900-01-01$$,'01-01-1900','1900-01-01','01-01-2016'::DATE FROM blankTable WHERE recno = 1
| sql stmt : SELECT 'A',$$1900-01-01$$,'01-01-1900','1900-01-01','01-01-2016'::DATE FROM blankTable WHERE recno = 1
| Execution time : 0 00:00:00.00005
SQL: DECLARE PREPARED
| 4gl source : tester.4gl line=4257
| sqlcode : 0
| curr driver : ident='dbmpgs_9'
| curr connection : ident='_1' (dbspec=[dev_gyb])
| sql cursor : ident='cu1' (fglname='c_readdate',module='tester')
| scroll cursor : 0
| with hold : 0
| Execution time : 0 00:00:00.00003
SQL: OPEN
| 4gl source : tester.4gl line=4260
| pgs.c:01513(3) : Nat stmt1 = declare cu1 cursor with hold for select 'A',$$1900-01-01$$,'01-01-1900','1900-01-01','01-01-2016'::DATE from blankTable where recno = 1
| sqlcode : 0
| curr driver : ident='dbmpgs_9'
| curr connection : ident='_1' (dbspec=[dev_gyb])
| sql cursor : ident='cu1' (fglname='c_readdate',module='tester')
| Execution time : 0 00:00:00.00036
SQL: FETCH
| 4gl source : tester.4gl line=4260
| sqlcode : 0
| curr driver : ident='dbmpgs_9'
| curr connection : ident='_1' (dbspec=[dev_gyb])
| sql cursor : ident='cu1' (fglname='c_readdate',module='tester')
| into(tmp): 5
| t: INTEGER f:04 v:""
| t: DATE f:04 v:"01/01/1900"
| t: DATE f:04 v:""
| t: DATE f:04 v:"01/01/1900"
| t: DATE f:04 v:"01/01/2016"
| Execution time : 0 00:00:00.00012
Status ( 0) SQL Status ( 0) integer ( ) dollarDate (01/01/1900) date ( ) YYYYMMDD Date (01/01/1900) other Date (01/01/2016)
SQL: FETCH
| 4gl source : tester.4gl line=4260
| sqlcode : 100
| curr driver : ident='dbmpgs_9'
| curr connection : ident='_1' (dbspec=[dev_gyb])
| sql cursor : ident='cu1' (fglname='c_readdate',module='tester')
| into(tmp): 5
| t: INTEGER f:04 v:""
| t: DATE f:04 v:"01/01/1900"
| t: DATE f:04 v:""
| t: DATE f:04 v:"01/01/1900"
| t: DATE f:04 v:"01/01/2016"
| Execution time : 0 00:00:00.00008
SQL: CLOSE
| 4gl source : tester.4gl line=4261
| pgs.c:01473(2) : Nat: close cu1
| sqlcode : 0
| curr driver : ident='dbmpgs_9'
| curr connection : ident='_1' (dbspec=[dev_gyb])
| sql cursor : ident='cu1' (fglname='c_readdate',module='tester')
| Execution time : 0 00:00:00.00004
SQL: CLOSE DATABASE
Steve