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

C# Discussion :

C# - BD - modèle indépendant


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut C# - BD - modèle indépendant
    Bonjour,

    Suite aux conseils obtenu sur une autre discussion, je veux réaliser un modèle indépendant du type de bases de données utilisé. J'ai donc suivi le tuto que l'on m'avait conseillé.
    Lors de l'exécution, j'obtiens une erreur qui me dit que le fournisseur de données .NET Framwork demandé est introuvable (J'utilise Visual Studio 2010 et je veux me connecter à Oracle 10G Express).

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Oracle.DataAccess.Client;
    using MySql.Data.MySqlClient;
    using System.Data.Common;
    using System.Configuration;
    using System.Data;
     
    namespace ConsoleApplication5
    {
        class Program
        {
     
     
     
            static void Main(string[] args)
            {
     
    //-------------------------------ORACLE 10G XE---------------------------------------------------------
     
                //string Ochaine = ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString;
                string Ochaine = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));User Id=Damien;Password=Damien;Connection Lifetime=120;Persist Security Info=False;";
                OracleConnection OConnexion = new OracleConnection();
                OConnexion.ConnectionString = Ochaine;
                string cmdtxt = "SELECT * FROM etudiant";
     
                try
                {
                    OConnexion.Open();
                    Console.WriteLine("Connexion Oracle ouverte");
     
                    OracleCommand query = new OracleCommand();
     
                    query.Connection = OConnexion;
                    query.CommandText = cmdtxt;
     
                    OracleDataReader reader;
                    reader = query.ExecuteReader();
     
                    while (reader.Read())
                    {
                        Console.WriteLine(reader[0].ToString());
                    }
     
                    OConnexion.Close();
                    Console.WriteLine("Connexion Oracle fermée");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
     
                Console.WriteLine("");
     
    //-----------------En modèle indépendant-----------------------------------------------
     
                try
                {
                    DbConnection connec = DataProvider.CreateConnection();
                    Console.WriteLine("Connexion Ok");
                    DbCommand cmd = DataProvider.CreateCommand(cmdtxt);
                    DbDataReader reader = DataProvider.CreateDataReader(cmd);
     
                    while(reader.Read())
                    {
                        Console.WriteLine(reader[0].ToString());
                    }
                }
                catch(Exception e)
                {
                    Console.WriteLine(e);
                }
     
            }
        }
     
        public class DataProvider
     
        {
            private static DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
     
     
            public static DbConnection CreateConnection()
            {
                DbConnection connection = factory.CreateConnection();
                connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString;
                connection.Open();
                return connection;
            }
     
            public static DbCommand CreateCommand(string commandText)
            {
                DbCommand command = CreateConnection().CreateCommand();
                command.CommandText = commandText;
                return command;
            }
     
            public static DbDataReader CreateDataReader(string commandText)
            {
                return CreateCommand(commandText).ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            }
     
            public static DbDataReader CreateDataReader(DbCommand command)
            {
                return command.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            }
     
            public static DataSet CreateDataSet(string commandText)
            {
                DbDataAdapter adapter = factory.CreateDataAdapter();
                adapter.SelectCommand = CreateCommand(commandText);
     
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                adapter.SelectCommand.Connection.Close();
     
                return ds;
            }
        }
     
    }
    Dans mon code, il y a une première partie que j'ai réalisé et qui fonctionne (la partie Oracle 10G XE) et l'autre partie pour le modèle indépendant, qui devrait me retourner le même résultat.
    Pour cette 1ère partie, j'ai téléchargé et installé le client Oracle (Oracle Universal Installer), j'ai ensuite rajouté la référence "Oracle.DataAccess.dll" au projet, et "using Oracle.DataAccess.Client" dans le code.

    Pour la 2ème partie, j'ai copié/collé la classe "DataProvider" du tuto et j'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connection.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString;
    J'ai créé un fichier App.config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
      </configSections>
      <connectionStrings>
        <add name="ConnexionOracle"
            connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));User Id=Damien;Password=Damien;Connection Lifetime=120;Persist Security Info=False;"
            providerName="Oracle.DataAccess.Client" />
      </connectionStrings>
    </configuration>
    Le connexionString de mon fichier App.config est un copié/coller de ma variable Ochaine de la 1ère partie de mon code.

    C'est la 1ère fois que je tente d'utiliser un modèle indépendant du type de bases de données, si quelqu'un pouvait me débloquer, ce serait sympa

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Hello,

    quand j'avais bossé avec une base oracle, ça avait marché (si ça peut te rassurer )

    Un peu de google m'amène : ton fichier machine.config contient bien une entrée Oracle ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Merci pour cette réponse si rapide. Je n'ai rien bougé à mon fichier machine.config car il contient une entrée Oracle :

    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
     
    <DbProviderFactories>
       <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc"
        type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
       <add name="OleDb Data Provider" invariant="System.Data.OleDb"
        description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
       <add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
        description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
       <add name="SqlClient Data Provider" invariant="System.Data.SqlClient"
        description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
       <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5"
        description=".NET Framework Data Provider for Microsoft SQL Server Compact"
        type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
       <add name="SQLite Data Provider" invariant="System.Data.SQLite"
        description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
       <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
        description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342" />
      </DbProviderFactories>
    C'est bien la même entrée que celle de ton lien, pourtant ça ne fonctionne pas

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    J'espère que quelqu'un saura m'aider...

    Vu que c'est le provider du Framework 2.0 qui pose problème, j'ai tenté de bypasser le "DbProviderFactories.GetFactory("MonProvider");". Le code du tuto est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess");
    DbConnection connection = factory.CreateConnection();
                connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString;
                connection.Open();
    DbCommand command = connexion.CreateCommand();
    command.CommandText = commandText;
    DbDataReader reader = command.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
     
    ...
    C'est la 1ère ligne qui pose problème alors que j'ai bien une entrée Oracle dans le fichier machine.config du Framework. J'ai donc remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess");
    DbConnection connection = factory.CreateConnection();
                connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString;
                connection.Open();

    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DbConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString);
                    con.Open();
    Voici le bout de code que j'ai utilisé pour tester et comparer, seuls les éléments en rouge et en gras diffèrent :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    try
                {
                    DbConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnexionOracle"].ConnectionString);
                    con.Open();
                    Console.WriteLine("Connexion DbOracle ouverte");
                    DbCommand dbcmd = con.CreateCommand();
                    dbcmd.CommandText = cmdtxt;
                    DbDataReader dbreader = dbcmd.ExecuteReader();
                    while (dbreader.Read())
                    {
                        Console.WriteLine(dbreader[0].ToString());
                    }
                    con.Close();
                    Console.WriteLine("Connexion DbOracle fermée");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
    
                try
                {
                    cmdtxt = "SELECT * FROM essai";
                    DbConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["ConnexionMySql"].ConnectionString);
                    con.Open();
                    Console.WriteLine("Connexion DbMySql ouverte");
                    DbCommand dbcmd = con.CreateCommand();
                    dbcmd.CommandText = cmdtxt;
                    DbDataReader dbreader = dbcmd.ExecuteReader();
                    while (dbreader.Read())
                    {
                        Console.WriteLine(dbreader[0].ToString());
                    }
                    con.Close();
                    Console.WriteLine("Connexion DbMySql fermée");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
    On peut voir que je n'ai pas grand chose à changer pour passer d'une base de données à une autre.

    Avec ma méthode, j'utilise le client Oracle et le client MySql que j'ai du télécharger et non pas ceux du Framework 2.0.

    Est-ce que quelqu'un pourrait me dire si cette méthode est correcte et est aussi performante que celle du tuto?

    (En cas de changement de BD, le nombre de corrections à faire est le même : 2, que ce soit par la méthode du tuto ou par celle que j'utilise).

    Je pense qu'ainsi j'ai bien rendu le modèle est indépendant du type de BD utilisé.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Est-ce que la DLL du provider Oracle est bien accessible ? Il faut qu'elle soit dans le GAC ou dans le répertoire de l'exe. Vérifie aussi que c'est bien la version 2.102.2.20 comme indiqué dans le fichier machine.config, je me rappelle avoir eu ce genre de problème avec le provider Oracle...

  6. #6
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par rousseau_damien Voir le message
    Avec ma méthode, j'utilise le client Oracle et le client MySql que j'ai du télécharger et non pas ceux du Framework 2.0.

    Est-ce que quelqu'un pourrait me dire si cette méthode est correcte et est aussi performante que celle du tuto?
    Pas de différence de perf. Par contre, ca t'oblige a référencer explicitement la dll d'ODP dans ton projet, alors que l’intérêt de passer par la factory d'ADO.Net est d’éviter ce genre de référence.

    Ceci dit, vu que la tu n'as pas l'air d’être dans un contexte avec une appli déployée aux quatre coins du globe, et des releases faisables que certains week ends bien précis pour des raisons de disponibilité / de ressources / whatever, on peut raisonnablement considérer que ton code est déjà suffisamment indépendant de ta bdd si tu ne fais apparaître dans ton code le mot "oracle" qu'a la création de la connexion

    Sans compter que les bdd n'ayant pas les mêmes syntaxes pour les paramètres, ne gèrent pas tous les procs stocks, ne respectent pas toujours la norme SQL, faire du code complètement indépendant, basculable par un simple changement du fichier de conf, ca reste compliqué, et ne merite pas forcement de faire trop d'efforts trop tot.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Bonjour et merci pour ces réponses.
    Je pense que je vais rester sur ce code-ci, mais comme je suis assez curieux, j'ai quand même été voir dans le dossier où se trouve mon .exe si j'avais la dll de Oracle, et je ne l'ai pas. La seule dll que j'ai est "mysql.data.dll", je ne sais pas comment elle est arrivée là, je ne l'ai jamais rajoutée moi-même, j'ai simplement installé le mysql-connector car je dois également me connecter à une BD MySql.


    Si j'ai bien compris, je dois rajouter la dll Oracle.dataaccess.client dans ce dossier? Je pensais que la factory d'ADO.Net me permettais d'utiliser des "outils" du Framework sans avoir à faire quoi que ce soit?

    Et comment puis-savoir si c'est bien la version 2.102.2.20 que j'ai?

    Merci

  8. #8
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par rousseau_damien Voir le message
    Si j'ai bien compris, je dois rajouter la dll Oracle.dataaccess.client dans ce dossier?
    le dossier dont tu parles, c'est bin\debug, dans lequel se trouve le résultat de la compil de ton projet. Regarde les propriétés des références de ton projet (clic droit sur une référence dans l'explrateur de solutions, menu "propriétés" ; tu verras que certaines ont une valuer "copy local" à true (visiblement, c'est le cas de mysql) et d'autres à false (l'assembly System.dll par exemple, déployée dans la GAC avec le framework).
    Les assemblies du framework sont dans la GAC, que tu peux voir dans c:\windows\assembly. A son installation, ODP a dû copier Oracle.Client.dll dans ce répertoire. Tu pourras voir de quelle version il s'agit.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Exact, pour la dll MySql elle est à true, et c'est bien dans ce dossier là.

    J'ai vérifié dans : c:\windows\assembly, j'ai plusieurs : oracle.dataacces, voici les versions : 10.2.0.100, 10.1.0.400, 1.102.2.20, 2.102.2.20.

    Donc elle est bien là...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Pour Oracle, je pense que c'est réglé ...Sur mon portable je n'ai pas encore installé le client Oracle, et j'ai regardé le fichier machine.config. J'ai vu que cette ligne était d'office dans le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
        description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    J'ai donc utilisé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
    Est-ce que le client Oracle qui se trouve dans le Framework2.0 est correct ou je dois absolument utiliser le client que j'ai moi même télécharger (Oracle.DataAccess.Client)?

    Par contre, pour MySql, l'entrée n'y est pas, alors que j'ai installé le MySql-Connector...Quelqu'un sait comment je dois m'y prendre pour y retrouver l'entrée?

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Microsoft ne supporte plus le client Oracle inclus dans le .NET Framework, et recommande désormais d'utiliser celui d'Oracle à la place...

    Celà dit, il est toujours fonctionnel... Les perfomances sont peut-être un peu moins bonnes qu'avec ODP.NET, mais ça marche correctement

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Ok, et tu n'as pas une idée d'où pourrait venir le problème?

    Là je viens juste d'installer la dernière version du MySql Connector qui m'a bien rajouté dans mon fichier "machine.config" une entrée pour MySql.Data.MySqlClient, et lors de l'exécution, le programme plante à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DbProviderFactory factoryMySql = DbProviderFactories.GetFactory("MySql.Data.MySqlClient");
    Exactement le même problème que quand j'utilise le client Oracle que j'ai installé...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Pour ceux qui auraient la même erreur, il faut vérifier que les dll des clients se sont bien installées dans la Framework utilisé. Les clients que j'avais étaient pour le Framework 2.0 alors que dans les propriétés de mon application, le Framework cible était le 4.0... J'ai téléchargé les derniers clients compatibles avec le Framework 4.0 et le problème a été résolu (ou alors tout simplement changer le Framework cible dans l'application).

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

Discussions similaires

  1. Exportation des graphiques d'un modèle (Power AMC)
    Par boubaouz dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 16/04/2003, 15h59
  2. déposer modèle XML
    Par labyrinth dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/12/2002, 22h06
  3. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  4. [Migratation] Application portable, indépendant du SGDB
    Par benouille dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 28/08/2002, 13h51
  5. Cherche composant Web Browser indépendant
    Par lancelot69 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/07/2002, 11h14

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