|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2003 Messages : 4 ![]() |
Bonjour,
J'essaie, dans une procédure stockée, de passer une date en output... Certaines fois, il n'y a pas de date, donc j'aimerais bien mettre la valeur NULL ou une string vide. En IB, je peux mettre une string vide mais pas la valeur NULL. En Firebird, je peux mettre NULL mais pas la string vide. Est-ce que quelqu'un connais un moyen unique pour que cela fonctionne sur les 2 types de bases ???? Merci d'avance ! Alex |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Un parametre de retours ne peut être à la fois de type DATE et de type string (enfin quand vous parlez de string j'imagine que vous pensez VARCHAR ou CHAR, car string n'existe pas sous interbase ni sous firebird).
De plus je ne sais pas ce qui vous a ammené à cette conclusion, car il est tout à fait possible et ce dans les deux SGBD de renvoyer null pour un paramétre de sortie d'une PS et ce que le type de ce paramètre soit DATE ou CHAR ou VARCHAR ou autre ... |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() ![]() |
Je comprends pas vraiment ou il est le problème.
D'après ce que tu dis, t'as une paramètre retour de type date qui peux très bien prendre la valeur null s'il n'y a pas de valeur (parv ex le resultat d'une select qui est vide). Pour plus de clarté peux tu poster le code de ton ps ? A+
__________________
On progresse ..... |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2003 Messages : 4 ![]() |
Si je pose la question, c'est bien que j'ai un problème...
Bref... |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : août 2003 Messages : 4 ![]() |
Oui, merci à Andry qui lui au moins essaie de m'aider !
En fait un des bout de mon code qui fait erreur est le suivant (en simplifié) : Code :
|
||
|
|
00
|
|
|
#6 | |||||
|
Membre émérite
![]() ![]() |
Citation:
Sinon, je vois une erreur dans ton code Code :
Est ce une erreur de frappe ? A+
__________________
On progresse ..... |
|||||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2003 Messages : 4 ![]() |
Non,
c'est en fait ce que je veux retourner, un varchar vide pour qu'il n'y ait pas de valeur de date... Avec Interbase 6, cela s'affiche comme null dans l'onglet Results d'IBExpert. Par contre avec Firebird 1.5, cela fonctionne si je mette NULL à la place de ''. Si je met '', cela ne fonctionne pas ! |
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() ![]() |
Et c'est koi l'interet du select alors si tu veux que DATE_ECR soit tjs null.
pourquoi ne pas affacté à DATE_ECR la valeur null. A+
__________________
On progresse ..... |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Seulement voilà faut il que vous fassiez un effort pour expliquer précisément votre probleme. Car aucunne réponce ne peut être donnée au vu de votre premier message. Je n'ai donc fait que vous reprendre sur les imprecésions de votre description du probleme. Voilà. Maintenant si vous souhaitez être aidé et avoir des réponses interressantes ayez la politesse envers tous ceux qui passent du temps à aider les autres de bien décrire votre probleme. Au vu des messages suivants je n'ai pas l'impression que vous faites des procédures stockées comme vous le dites dans votre premier message... De plus Vous parlez de date puis après de string ?? quel est le rapport entre les deux sachant que string n'existe pas sous Interbase ? |
|
|
|
00
|
|
|
#10 | |||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Mais vous confondez chaine vide avec NULL, ce qui n' a rien à voir... Faire ce que vous faites revient à laisser le SGBD à choisir à votre place la valeur qu'il va affecter ' ' n'est pas traductible en date donc il peux choisir 1 de générer une exeption (le choix de firebird) ou 2 de convertir en date et prendre la 1ere date possible (17 Novembre 1858) ou dernière possibilité mettre à NULL si c'est possible. Donc autant décider vous meme de ce que vous allez mettre dans votre date... Code :
Et si vous êtes dans une procédure stockée pourquoi le mettre dans un select ? Un simple suffisait. Voilà une réponse un peu plus constructive. En conclusion si vous avez que des réponses de mauvaises qualitées ou qui ne vous conviennent pas remettez vous en question a savoir si vous de votre coté vous avez bien décrit votre problême. Cordialement NB : sur mon interbase 6 le select suivant ne fonctionne pas : Code :
SELECT cast('' AS date) FROM RBD$DATABASE; |
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com