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

VB.NET Discussion :

OLEDB et 64 bits


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 77
    Par défaut OLEDB et 64 bits
    Bonjour,

    J'ai une application qui fonctionne avec OLEDB en 32 bits. J'utilise une base de données access, une vielle habitude.
    Malheureusement, en 64 bits ça ne fonctionne pas et je n'ai pas envie de publier deux exe différents.
    Sachant que la plateforme 64 bits commence à être assez présente, il va falloir que je trouve une solution.

    Nouveau type de connexion ?
    Changement de base de données ?

    Merci de m'orienter.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    Base Access (version <= 2003 ?) --> donc moteur Microsoft Jet

    MS Jet n'est pas compatible 64 bits et ne le sera peut-être jamais.

    Si tu compile ton appli pour les cibles 32 et 64 bits, sur une plateforme 64 bits elle (et ses dépendance dont MS Jet) sera lancée en mode 64 bits.

    Il faut que tu précise explicitement que tu ne veux compiler que pour une cible 32 bits.

    Ton appli fonctionnera quand même sur une plate forme 64 bits mais en mode 32 bits et MS Jet devrait dans ce cas bien fonctionné.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Par défaut
    Je confirme

    Il faut compiler de manière explicite en mode 32 bits et pour les novices ca correspond à x86.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 77
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Je résume. Merci de me dire si je me trompe.

    - Si je compile en AnyCPU (x64 et x86), alors ca ne fonctionne pas. Pour que ça fonctionne il faut compiler en x86.

    Remarque : Il est tout de même étrange de préciser x86 (32bits) pour que cela fonctionne en 32 et 64 bits. Et qu'en précisant AnyCPU, ca ne marche pas. Pas très logique tout ça.

    Question 1 : Il y a-t-il d'autres parties du framework comme celle-là dont il faut se méfier ?

    Question 2 : Pourquoi sevyc64 indique "base acess <= 2003" ? Quelles incidences ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Par défaut
    Yann_dz bonsoir

    Il n'y a pas de logique :

    Quand tu compiles en AnyCPU le système d'exploitation lancera le logiciel dans l'environnement optimal donc en 64 bits pour un OS en 64 bits, mais en compilant en x86 (soit 32 bits) l'OS sera obligé de faire tourné l'application en mode 32 bits même si il est en natif 64 bits (comme on dit qui peut le plus peut le moins)

    Alors pourquoi x86 ca correspond à 32 bits, si je ne me trompe cela vient des premiers processeurs 32 bits genre 8086 ou 80386 ou 80486 ou 80586 etc. comme tu le vois ils terminent tous par un 86 c'est pour ca je pense.Mais pour les processeurs de maintenant en 64 bits ceux ci ne sont plus connu sous des numéros mais sous un nom genre ATHLON64 etc, et comme tu le vois dans le nom il y a 64 en règle général.

    Pour tes autres points je laisse d'autres connaisseurs te répondre

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    cela vient des premiers processeurs 32 bits genre 8086 ou 80386 ou 80486 ou 80586
    Pas le 8086 qui était en 16 bits, comme les 80186 et 80286 étaient en 16 bits.
    Le 32 bits a été introduit avec le 80386 et ceux jusqu'au Pentium 4 sous l'architecture nommée IA-32
    Le 64 bits est lui arrivé avec le Pentium 4 Prescott mais surtout avec la gamme Intel Core 2 sous l'architecture Intel 64

    A noter aussi, l'existance d'une architecture IA-64 représentée par les processeurs Itanium réservées à de gros serveurs

    Si x86 désigne au départ la gamme de processeurs à partir du 80186 (pour 80x86), c'est devenu par la suite le nom de code des architectures 32 bits en opposition aux nouvelles architectures x64 (plus exactement x86-64) créées par AMD par l'ajout d'une extension d'instructions 64 bits au jeu classique 32 bits des x86.

    L'histoire faisant le reste, Microsoft, Intel et le monde informatique ont adoptés les dénominations x86 pour les architectures 32 bits et x64 pour les architectures 64 bits.


    Question 2 : Pourquoi sevyc64 indique "base acess <= 2003" ? Quelles incidences ?
    Parce que le problème que tu indiquais est un problème qui est connu et reconnu concernant le moteur Microsoft Jet 4.0, moteur utilisé pour se connecté notamment aux bases Access 2003 ou inférieur. Ce moteur ne devrait normalement plus être utilisé pour les bases Access 2007 et supérieur (je ne sais d'ailleurs pas par quoi il est remplacé).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 77
    Par défaut
    Et bien, c'est résolu. Merci à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. OLEDB est Vista 64-bits
    Par cyrillece dans le forum C#
    Réponses: 4
    Dernier message: 09/04/2009, 12h30
  2. [OLEDB] Erreur windows 64 bits
    Par jam92400 dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 05/06/2008, 17h24
  3. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  4. Debugger 16-32 bits
    Par Mat dans le forum Assembleur
    Réponses: 4
    Dernier message: 28/06/2002, 11h34
  5. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31

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