IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Equivalent operateur bitand


Sujet :

Requêtes et SQL.

  1. #1
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut Equivalent operateur bitand
    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!

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    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.

  3. #3
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    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!

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    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

  5. #5
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut

    je suis rassuré alors!

    je vais lire ça pour voir si ça éclaire ma lanterne
    Alleï Bonjour chez vous!

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    et bien pas trop ....

    enfin si un peu mais je vois pas comment transcrire ça...
    Alleï Bonjour chez vous!

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Tofalu, mayekeul,

    bitand semble être la comparaison binaire du and, tu devrais avoir sont équivalent avec:
    StrComp(chaîne1, chaîne2 , vbBinaryCompare)


  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par vodiem Voir le message
    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

  9. #9
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE BITAND(XXX,256) = 0
    strComp me renvoie juste 0 si c'est 256 et -1 si c'est autre chose
    Alleï Bonjour chez vous!

  10. #10
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    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:
    Citation Envoyé par mayekeul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE BITAND(XXX,256) = 0
    pourquoi ne pas faire directement un AND?


  11. #11
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    euh c'est a dire???

    je sais ... mais c'est vendredi là...
    Alleï Bonjour chez vous!

  12. #12
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    bitand(524553,256) => 256
    bitand(524293,256) => 0
    Au vu des résultats, la fonction BITAND d'Oracle semble retourner le résultat d'un ET bit à bit entre les deux arguments.
    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 :
    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
    A ma connaissance ce genre d'opération n'existe pas dans le SQL d'Access.

    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)
    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
    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/11/2006, 10h52
  2. equivalent de l'operateur like mais insensitive
    Par fxgamoy dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 21/06/2005, 10h23
  3. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo