bonjour,
je dois transposer une requete Oracle vers access.
seulement voilà, je ne connais pas d'équivalent à l'operateur bitand.
quelqu'un sait comment faire?
merci merci merci
Mayekeul
bonjour,
je dois transposer une requete Oracle vers access.
seulement voilà, je ne connais pas d'équivalent à l'operateur bitand.
quelqu'un sait comment faire?
merci merci merci
Mayekeul
Alleï Bonjour chez vous!
Bonjour,
Je dirais à première vue que ça n'existe pas et qu'il te faut convertir en fonction VBA.
Mais selon les cas, il y a peut être moyen de changer complètement d'approche.
Ce message vous a été utile ? Si oui, cliquez sur
Mes tutoriels Access
La rubrique Microsoft Access
Cours et tutoriels pour apprendre Access
La FAQ Access
Le Forum Access
Offres d'emploi développeur Access
bonjour tofalu et merci de ta réponse
la question sous- jacente était que fait exactement cet opérateur.
j'ai du mal à cerner en fait.
Alleï Bonjour chez vous!
http://download.oracle.com/docs/cd/B...nctions014.htm
Bon c'est pas très clair je sais
Mais je ne connaissais pas non plus
Ce message vous a été utile ? Si oui, cliquez sur
Mes tutoriels Access
La rubrique Microsoft Access
Cours et tutoriels pour apprendre Access
La FAQ Access
Le Forum Access
Offres d'emploi développeur Access
je suis rassuré alors!
je vais lire ça pour voir si ça éclaire ma lanterne
Alleï Bonjour chez vous!
et bien pas trop ....
enfin si un peu mais je vois pas comment transcrire ça...
Alleï Bonjour chez vous!
salut Tofalu, mayekeul,
bitand semble être la comparaison binaire du and, tu devrais avoir sont équivalent avec:
StrComp(chaîne1, chaîne2 , vbBinaryCompare)
Dans l'exemple qui est donné sur le lien effetcivement, cela semble correspondre. Mais bitand semble plutôt un opérateur alors que strComp une fonction de comparaison.
C'est pour ça que je disais que suivant l'utilisation, une approche différente avec les fonctions VBA peut être préférable
Ce message vous a été utile ? Si oui, cliquez sur
Mes tutoriels Access
La rubrique Microsoft Access
Cours et tutoriels pour apprendre Access
La FAQ Access
Le Forum Access
Offres d'emploi développeur Access
hello vodiem,
c'est une bonne piste il me semble mais strComp ne fait qu'une comparaison globale d'une chaine de caracteres
le résultat en oraccle ressemble à ceci
bitand(524553,256) => 256
bitand(524293,256) => 0
ce que je veux faire c'est ceci
strComp me renvoie juste 0 si c'est 256 et -1 si c'est autre chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part WHERE BITAND(XXX,256) = 0
Alleï Bonjour chez vous!
oui j'ai omis de te préciser mais sous access "vrai" c'est -1 et pas 1 comme sous oracle.
éventuellement tu peux convertir ton entier en chaine mais effectivement la réponse et oui ou non et pas la valeur ou non.
mais si tu dois faire:
pourquoi ne pas faire directement un AND?Envoyé par mayekeul
euh c'est a dire???
je sais ... mais c'est vendredi là...
Alleï Bonjour chez vous!
Bonsoir,
Au vu des résultats, la fonction BITAND d'Oracle semble retourner le résultat d'un ET bit à bit entre les deux arguments.bitand(524553,256) => 256
bitand(524293,256) => 0
Le ET logique s'effectue sur les bits de même poids.
1 ET 0 = 0
0 ET 1 = 0
0 ET 0 = 0
1 ET 1 = 1
Ton exemple :
A ma connaissance ce genre d'opération n'existe pas dans le SQL d'Access.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Poids |23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| | 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| 0| 0| 0| 0| 0| 0| 0| 0| 2^8 = 256 AND | 0| 0| 0| 0| 1| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| 0| 0| 0| 0| 1| 0| 0| 1| 2^19 + 2^8 + 2^3 + 2^0 = 524553 -----|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| = | 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| 0| 0| 0| 0| 0| 0| 0| 0| 2^8 = 256 Poids |23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| | 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| 0| 0| 0| 0| 0| 0| 0| 0| 2^8 = 256 AND | 0| 0| 0| 0| 1| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| 0| 1| 2^19 + 2^2 + 2^0 = 524293 -----|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| = |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 | 0| 0| 0| 0| 0| 0
Il n'y a qu'en VBA où l'opérateur And peut être selon le contexte, un ET logique (opérandes booléennes) ou un ET bit à bit (opérandes numériques).
Un exemple d'adaptation en VBA (il y a peut-être mieux)
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Function BitAnd(vArg1 As Variant, vArg2 As Variant) As Long If IsNumeric(vArg1) And IsNumeric(vArg2) Then BitAnd = vArg1 And vArg2 Else BitAnd = 0 End If End Function
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager