V7R6 , date sur 6 positions en RPG
Vous avez un nouveau paramètre sur les commandes CRTBNDRPG ou CRTRPGMOD DATEYY( )
DATE WITH 2-DIGIT YEARS . . . . DATEYY( *ALLOW)
Ce paramètre n’est pas encore documenté dans l’aide mais vous comprenez , que c’est pour les dates sur 6 caractères
Rappel sur les dates à 6 , vous avez un point de bascule:
40 – 99 : Le siècle est supposé être « 19 »
00 – 39 : Le siècle est supposé être « 20 »
C’est dans 14 ans
Pour ce paramètre, DATEYY vous avez 3 valeurs possibles
DATEYY(*ALLOW) : autorise tous les formats de date, autrement dit, n’effectue aucune validation. DATEYY(WARN) : si une date est détectée, elle est considérée comme une année sur deux caractères, une erreur de compilation de niveau 10 est générée.
DATEYY(*NOALLOW) : si une date pourrait être détectée, la compilation est renvoyée avec une erreur de niveau 30. La valeur par défaut est « *ALLOW ».
il est conseillé de compiler avec *WARM, vous aurez une liste des problèmes potentiels
Ce message apparaitra
Msg id Sv Number Seq Message text
*RNF0201 10 5 002300 WARNING: A DATE WITH 2 DIGITS FOR THE YEAR ONLY SUPPORTS
THE YEARS 1940 TO 2039. REASON CODE: xxxxxx.
Rappel:
Pensez dans SQL à bien utiliser des formats sur 8 *ISO par exemple pour tous vos calculs
Exec SQL
Set Option
Datfmt = *iso ;