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

Accès aux données Discussion :

Alternative à Microsoft.Jet.OLEDB.4.0


Sujet :

Accès aux données

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 055
    Points : 27 557
    Points
    27 557
    Par défaut Alternative à Microsoft.Jet.OLEDB.4.0
    Bonjour à tous.

    J'ai un logiciel qui consiste à injecter des données sous forme de fichiers txt dans une base données SQLServer, puis d'y faire divers traitements.
    Pour cela, j'utilise, entre-autre, le code suivant
    Code VB : 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
    25
    26
    27
    28
    29
    30
    31
    32
            Dim sourceData As New DataTable
     
            Dim builder = New OleDbConnectionStringBuilder()
            builder.Provider = "Microsoft.Jet.OLEDB.4.0"
            builder.DataSource = <DossierDuFichier>
     
            Dim propertyToAffect = "text"
            builder.Add("Extended Properties", propertyToAffect)
     
            Using sourceConnexion As New OleDbConnection(builder.ConnectionString)
                sourceConnexion.Open()
     
                Dim command As New OleDbCommand(String.Format("SELECT * FROM [{0}]", <NomDuFichier>), sourceConnexion)
                Dim adapter As New OleDbDataAdapter(command)
     
                sourceData.Reset()
                adapter.Fill(sourceData)
     
                sourceConnexion.Close()
            End Using
     
    ......
     
    		Dim bulkCopy = New SqlBulkCopy(destConnexion)
    		bulkCopy.BulkCopyTimeout = dureeTrait
    		bulkCopy.DestinationTableName = String.Format("dbo.{0}", <NomDeLaTable>)
     
    		For Each column As DataColumn In dataTable.Columns
    			bulkCopy.ColumnMappings.Add(column.ColumnName, column.ColumnName)
    		Next
     
    		bulkCopy.WriteToServer(dataTable)

    J'ai besoin de passer mon logiciel en 64bits car dans la suite du traitement, il fait appel à des dll métiers qui vont désormais être compilées en 64bits only.
    Mais je ne peux pas le faire à cause de l'utilisation du moteur Microsoft.Jet.OLEDB.4.0, qui n'existe pas en 64 bits.

    Existe il une alternative à ce moteur ?


    PS : Je ne peux pas utiliser une requête avec "OPENROWSET(BULK ..." pour intégrer les données car le serveur est distant et il ne peut pas accéder aux fichiers à intégrer sur le poste ou est exécuté le logiciel. De plus cela nécessite une qualité irréprochable des données, chose que je n'ai pas et ça génère beaucoup de plantage.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 14 037
    Points : 24 833
    Points
    24 833
    Par défaut
    tu peux tenter ace oledb
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 055
    Points : 27 557
    Points
    27 557
    Par défaut
    Bon j'ai besoin de pousser un peu plus les tests, mais avec les premiers essais, ça semble fonctionner correctement juste en remplaçant builder.Provider = "Microsoft.Jet.OLEDB.4.0" par builder.Provider = "Microsoft.ACE.OLEDB.12.0"
    Maintenant, il falloir aussi vérifier que le ACE.OLE.DB est installé sur les postes des utilisateurs, mais je pense que oui, on est tous connecté à Office 365
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 14 037
    Points : 24 833
    Points
    24 833
    Par défaut
    ace ole db a un défaut, c'est qu'il est lié à office
    si sur un poste office x32 est installé, il sera impossible d'installer ace ole db x64 (qui a un installeur standalone)
    et donc si ton exe est en x64 il ne pourra pas utiliser ace ole db ... (et réciproquement)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2009
    Messages
    1 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2009
    Messages : 1 886
    Points : 5 135
    Points
    5 135
    Par défaut
    Moi j'avais galéré pour pouvoir lire des vieux mdb (access 97) qui ne fonctionnait qu'avec JET.OLEDB.4.0 et dans le même temps je devais lire des .accdb qui n'était pas compatible avec ce même driver. S'en est mêlé les versions x64 et x32, et là j'ai jamais trouvé de solutions mise à part avoir 2 exe différent (un x64 et un x32).

    Mais dans ton cas du tapes sur du sql serveur; peut-être que tu peux aller taper sur des drivers ODBC et non OLEDB.

    Dans tous les cas, on se dit toujours que ce genre de chose est réglé depuis des lustres...et bien non !

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 055
    Points : 27 557
    Points
    27 557
    Par défaut
    Le problème n'est pas SqlServer, là tout marche. Le problème est bien les fichiers txt (pseudo) csv, accédés comme une base de données.

    Pour Office, on a normalement tous Office 365. On est tous sur des machines 64 bits. J'espère quand même que l'admsys nous a installé à tous des versions 64 bits. Mais c'est un point qui sera vu lors des tests (si je trouve du temps )
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

Discussions similaires

  1. microsoft jet oledb
    Par philguio dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/01/2010, 22h49
  2. Microsoft Jet OLEDB 4.0 Windows 7
    Par leeloo95 dans le forum Framework .NET
    Réponses: 3
    Dernier message: 16/12/2009, 15h36
  3. Microsoft Jet oledb 4.0 sur Windows 7
    Par leeloo95 dans le forum Windows 7
    Réponses: 0
    Dernier message: 17/11/2009, 10h33
  4. Réponses: 6
    Dernier message: 02/05/2009, 17h40
  5. Microsoft.Jet.OLEDB & Pilote ISAM
    Par Ryansoldier dans le forum Débuter
    Réponses: 0
    Dernier message: 28/04/2009, 14h43

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