Recordset, lecture d'une donnée NULL
Bonjour,
J'ai un problème avec une fonction qui transforme une date au format AAAAMMJJ en un format DATE (sql)
En qq lignes :
Code:
1 2 3 4 5 6 7 8 9
|
str = "SELECT CAST ( NULL AS DATE ) as test1, swviews.dectodate(0) AS test2 from sysibm.sysdummy1"
Set ors = New ADODB.Recordset
Call ors.open(str, moCnc, adOpenDynamic, adLockBatchOptimistic)
ors("test1") -> Null
ors("test2") -> Null |
--> Ok la date 0 devient NULL
Par contre!
Code:
1 2 3 4 5 6 7 8 9
|
str = "SELECT CAST ( NULL AS DATE ) as test1, swviews.dectodate(0) AS test2 from missdta.rlx000F"
Set ors = New ADODB.Recordset
Call ors.open(str, moCnc, adOpenDynamic, adLockBatchOptimistic)
ors("test1") -> plantage
ors("test2") -> plantage |
"Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué."
Avis au experts... hum.
Pour info, le code sql de la fonction DECTODATE:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
CREATE FUNCTION SWVIEWS.DECTODATE (
ARG DECIMAL(8, 0) )
RETURNS DATE
LANGUAGE SQL
SPECIFIC SWVIEWS.DECTODATE
DETERMINISTIC
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
RETURN CAST ( NULL AS DATE ) ;
IF ARG = 0 THEN
RETURN CAST ( NULL AS DATE ) ;
ELSE
RETURN DATE ( SUBSTR ( DIGITS ( ARG ) , 1 , 4 ) || '-' || SUBSTR ( DIGITS ( ARG ) , 5 , 2 ) || '-' || SUBSTR ( DIGITS ( ARG ) , 7 , 2 ) ) ;
END IF ;
END ; |