midrange.com code scratchpad
Name:
TEST SQL - Date format problem between RPG and SQL
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
07/10/2012 03:47:41 pm
IP:
Logged
Description:
T. G. described a problem when processing different date formats in the file. This code tries to reproduce the problem and suggests a work around when using %DATE
Code:
  1. **************** FILE DDS ***************
  2. A          R FTEST01                                                
  3. A            DATE_ISO        L         DATFMT(*ISO)                 
  4. A            DATE_USA        L         DATFMT(*USA)                 
  5. A            DATE_MDY        L         DATFMT(*MDY)                 
  6. A            TIME_USA        T         TIMFMT(*USA)   
  7. ****************
  8.  
  9. *********** RPG CODE ***********
  10.      H*DATFMT(*ISO) TIMFMT(*ISO)
  11.       //---------------------------------------------------------------*
  12.       // TESTTG   -                                                    *
  13.       //---------------------------------------------------------------*
  14.      DRTEST01        E DS                  EXTNAME(TEST01 )
  15.       //
  16.       /FREE
  17.        //--
  18.        EXSR InitSQL;
  19.        EXSR DoSomething ;
  20.        *inlr = *on;
  21.         //---------------------------------------------------------------*
  22.         BEGSR InitSQL ;
  23.          EXEC  SQL Include SQLCA;
  24.          EXEC  SQL
  25.              Set Option Commit = *NONE,
  26.              CloSQLCsr = *ENDMOD,
  27.              DatFmt = *ISO ,
  28.              TimFmt = *ISO;
  29.         ENDSR;
  30.         //---------------------------------------
  31.         BEGSR DoSomething ;
  32.           Date_ISO = %DATE('2012-07-10':*ISO) ;
  33.           Date_USA = %DATE('07/10/2012':*USA) ;
  34.           Date_MDY = %DATE('07/10/12'  :*MDY) ;
  35.           Time_USA = %TIME('11:30 AM'  :*USA) ;
  36.           EXEC SQL
  37.            insert into TEST01 Values(:RTEST01 )  ;
  38.  
  39.           Date_MDY = %DATE('12/31/12'   :*MDY) ;
  40.           Date_USA = %DATE('12/31/2012' :*USA) ;
  41.           EXEC SQL
  42.            insert into TEST01 Values(:RTEST01 )  ;
  43.         ENDSR;                                                         
  44.               
© 2004-2019 by midrange.com generated in 0.006s valid xhtml & css