Bonjour,
Je viens de me frotter à un problème tordu.
J'utilise pour une de mes applications une base de donnée REALSQL....
Certaines de mes données sont de booléens stockés dans la base jusqu'à
présent comme false ou true
Je retrouvais ces enregistrements en utilisant une requête de la forme:
s="Select Numero, RemisEnBanque, Titulaire, Montant, Banque,
NoRemise from PaiementClient where Type='Chèque' "
if Not Tout Then
s=s+" and Upper(RemisEnBanque) = 'FALSE' "
end if
s=s+" order by Titulaire"
rs=Factures.SQLSelect(s)
La même requête avec RB2008 3.1 ne me permet plus de retrouver ces
nouveaux enegistrements car les booléens sont maintenant stockés comme
0 ou 1
J'ai donc contourné le pb en modifiant la requête :
....
s=s+" and Upper(RemisEnBanque) in ('FALSE', '0') "
....
Cela fonctionne mais ne me semble pas correct donc
Question un : quelle est la forme correcte pour retrouver un
enregistrement dont la valeur RemisEnBanque est fausse?
Question deux : pourquoi
s="Select SUM(Montant) from LienPaiementFacture where
NoFacture= "
s=s+ListeFactures.List(ListeFactures.LastIndex)
s=s +" and Valide = True"
fonctionne t'il alors que
s="Select Numero, RemisEnBanque, Titulaire, Montant, Banque,
NoRemise from PaiementClient where Type='Chèque' "
if Not Tout Then
s=s+" and RemisEnBanque = False "
end if
ne fonctionne pas
Merci de vos réponses
Alain Legarçon
|