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 :

Réplication synchronisation Access qui marche sur Win 7 64 et pas sur les autres OS Windows


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut Réplication synchronisation Access qui marche sur Win 7 64 et pas sur les autres OS Windows
    Bonsoir

    Je me sers de la réplication Access pour synchroniser deux bases .mdb

    Sur l'ordi de develloppement (Windows 7 64bits) mon code marche bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        Sub TwoWayDirectSync(ByVal strReplica1 As String, ByVal strReplica2 As String)
     
     
            Dim repReplica As New JRO.Replica
            Dim CONN As New ADODB.Connection
     
    OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & strReplica1 & "")
     
     
            CONN.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strReplica1 & "")
     
     
     
            repReplica.ActiveConnection = CONN
     
            Try
                repReplica.Synchronize(strReplica2, JRO.SyncTypeEnum.jrSyncTypeImpExp, JRO.SyncModeEnum.jrSyncModeDirect)
                CONN.Close()
     
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
        End Sub

    Une fois l'appli mise sur un autre ordi j'ai une erreur qui apparait.

    D'aprés ce que j'ai compris de l'erreur cela proviendrait de win 64 qui bidouillerait le connection Id etc... du coup il ne serait plus reconnu par les autres xp, vista etc...

    voir ici pour les détails je suis dans le cas "message d'erreur 4"
    http://support.microsoft.com/kb/2517589/fr


    D'aprés microsoft soit je place sur les ordis finaux un fichier pour patcher les ordi 32bits (mais Microsoft ne conseil pas de le faire)

    Soit je traduis ce code en VB.net, et la j'ai grandement besoin d'un coup de main car je ne maitrise pas suffisamment pour m'en sortir seul.

    Je pense que c'est ici que le problème se trouve.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim CONN As New ADODB.Connection
    Merci d'avance à qui pourra m'aider

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ton lien dit :
    Les techniques présentées dans cet article doivent uniquement servir comme mesure temporaire pendant la migration vers ADO.NET
    donc utilises ADO.NET plutot qu'ADO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim conn as new system.data.oledb.oledbconnection
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Merci Pol63 d'avoir pris du temps pour te pencher sur mon problème.

    C'est justement parce que le lien disait ca que je n'ai même pas voulu essayer d'installer le fichier qu'il donne sur les ordi 32 bits.

    J'avais bien essayé de faire la connection comme tu l'as it mais le probleme se retrouve du coup un peu plus loin.

    cela donne ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      Sub TwoWayDirectSync(ByVal strReplica1 As String, ByVal strReplica2 As String)
         Try
            Dim repReplica As New JRO.Replica
     
            Dim CONN As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & strReplica1 & "")
     
            CONN.Open()
     
            repReplica.ActiveConnection = CONN
     
     
                repReplica.Synchronize(strReplica2, JRO.SyncTypeEnum.jrSyncTypeImpExp, JRO.SyncModeEnum.jrSyncModeDirect)
                CONN.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
        End Sub
    Mais a ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     repReplica.ActiveConnection = CONN
    j'ai cette erreur:
    Le cast spécifié n'est pas valide.
    Pourtant il faut bien que repReplica devienne la connexion active pour pouvoir dans l’instruction suivante synchroniser la connexion active avec repReplica2

    edit:
    Est ce que cette instruction ainsi que celle qui me donne une erreur ne serait pas uniquement sur ADO?
    Dim repReplica As New JRO.Replica
    Si oui connais tu la class qui permet de synchroniser deux BDD avec ado.net

    Merci d'avance

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    en effet, jro.replica n'est fait que pour un ado connection et non ado.net
    et access n'est plus que moyennement supporté par microsoft ...

    si tu peux, change de base de données pour une vraie base de données (sql server express (moteur réseau) ou sql server ce (base fichier) sont gratuits)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Pas possible de changer de BDD il me faut trouver une autre solution.

    C'est quand même fou qu'ado.net ne supporte pas la réplication access.

    Aurais tu une autre piste?
    Merci

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par gilles_906 Voir le message
    C'est quand même fou qu'ado.net ne supporte pas la réplication access.
    c'est une question de point de vue
    pour moi ce qui est fou c'est qu'access existe encore et soit encore utilisé ...
    quand on a testé un vrai sgbdr, on comprend pourquoi access n'en est pas un !

    Citation Envoyé par gilles_906 Voir le message
    Aurais tu une autre piste?
    il faudrait que je comprenne exactement le souci ...
    vu que tu n'utilises pas ado.net et que ca bug, je pourrais supposer que vb.net n'est pas le problème ici, mais indirectement windows 7

    il faudrait donc identifier qui cause réellement le dysfonctionnement (vb.net ? ms jet ? ado ? jro ?)
    et remplacer cette partie
    vb.net => un petit exe vb6 qui ne fera que ca appelé par ton exe vb.net
    ms jet => je ne vois pas trop, jet est fournit avec windows sur les versions récentes
    ado => pas d'idée
    jro => il y a aussi plusieurs versions mais ca doit être fournit avec windows et un downgrade n'est peut etre pas possible
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/05/2008, 15h59
  2. [WD9] Executable ne "tourne" pas sur win 98
    Par hamdi amine dans le forum WinDev
    Réponses: 1
    Dernier message: 01/04/2008, 15h14
  3. Réponses: 6
    Dernier message: 28/05/2007, 10h26
  4. script qui marche dans la console firebug mais pas a l'execution
    Par xclam dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/05/2007, 12h16
  5. Réponses: 4
    Dernier message: 30/08/2006, 08h37

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