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

JDBC Java Discussion :

Chargement du pilote de BD MS SQ L Server !?


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Chargement du pilote de BD MS SQ L Server !?
    Bonjour les amis,
    j'espère que tout le monde va bien ...

    je veux se connecter à une base de données SQL Server 2000. Je rappelle que SQL Server est un serveur de bases de données (SGBD): un serveur SQL héberge donc plusieurs bases de données.

    Mais avant de parler d'un quelconque bout de code, il me faut en premier me procurer le pilote JDBC pour cette base de données. C'est ça mon problème...!!?? car je n'ai le trouvé pas

    Aidez moi s'il vous plais de télécharger ce pilote (base de données SQL Server 2000), ou l'envoyez moi à cette mail : yelallioui@yahoo.fr

    je veux aussi les étapes détaillées Pour le définir dans la variable CLASSPATH

    Remarque :
    J'ai essaié le site de la société Microsoft qui diffuse ce pilote à partir de l'adresse suivante : http://msdn.microsoft.com/downloads/...mpositedoc.xml
    mais ca marche pas ...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Par défaut
    essaie de voir si tu peux utiliser le pilote de sun (sun.jdbc.odbc.JdbcOdbcDriver) quand tu cré ton composant database, celui-ci te permettra de te connecter directement à un odbc qui lui est lié à ta base de données. il faut aussi que tu t'assures d'utiliser le bon login et mot de passe et que ton obdc ainsi que ton database aient les deux la même information.

    sinon tu peux toujours aller voir à cette adresse:

    http://www.microsoft.com/downloads/d...DisplayLang=en

  3. #3
    Candidat au Club
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Chargement du pilote de BD SQLServer !?
    merci bien de la reponse, mais comme vous savez il existe quatre types de drivers (de pilotes) JDBC :

    1/ Les drivers de pont JDBC/ODBC :
    ce type de pilote, fourni en standard avec le J2SE , permet de convertir les appels JDBC en appel ODBC . ODBC est fourni en standard sur tout Windows et permet la connexion à des bases de natures diverses (Access, SQL Server, Oracle, ...).

    2/ Les drivers de type 2 :
    ils sont écrits, en partie, en Java, mais dépendent malgré tout de code natif. En terme de portage d'application Java, ces types de pilotes présentent quelques lacunes.

    3/ Les drivers de type 3 :
    ce type de pilote passe par un autre pilote JDBC intermédiaire (fréquemment de type 1 ou 2). Il s'agit certainement du type de pilote le moins utile des quatre proposés.

    4/ Les drivers de type 4 :
    leur code est écrit en 100% Java, donc portable. Ces pilotes sont fournis par quasiment tous les constructeurs de bases de données. Chaque pilote étant adapté à une base de données très particulière. Ces drivers constituent la meilleur solution pour le portage de nos applications Java

    pour moi je veux utiliser exactement ce dernier type

    voici le code de ma classe de test DB :

    --------------------------------------------------------------------------
    import java.sql.*;
    import java.util.Vector;

    /*
    Classes utilisées :
    -------------------
    Class : Chargement d’un pilote JDBC
    DriverManager : Etablissement de la connexion
    Connection
    DatabaseMetaData
    ResultSet
    ResultSetMetaData
    Statement : Création d’une instruction & Exécution d’une requête.
    PreparedStatement

    Les étapes à suivre :
    ---------------------
    Dans une application JAVA utilisant une base de données avec l’interface JDBC,
    on trouvera généralement les étapes suivantes :

    0. Chargement du Pilote OBC ==> classe Class : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    1. Connexion à la base de données ==> classe Connection : connect=DriverManager.getConnection(url, user, pwd);
    2. Émission de requêtes SQL vers la base ==> classe Statement : S=connect.createStatement();
    3. Réception et traitement des résultats de ces requêtes ==> classe ResultSet : RS=S.executeQuery(requête);
    4. Fermeture de la connexion ==> connect.close();
    */


    public class DB {
    public static final int ODBC = 0; //Pour une BD Access
    public static final int MYSQL = 1; //Pour une BD Mysql
    public static final int ORACLE = 2; //Pour une BD Oracle
    public static final int SQLSERVER = 3; //Pour une BD SQLServer

    private static final String ODBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; //Pilote
    private static final String ODBC_BRIDGE = "jdbc:odbc:"; //Pont

    private static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver"; //Pilote
    private static final String MYSQL_BRIDGE = "jdbc:mysql:"; //Pont

    private static final String SQLSERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //Pilote
    private static final String SQLSERVER_BRIDGE = "jdbc:microsoft:sqlserver"; //Pont


    private String driver, bridge;

    private String url = null;
    private Connection db;
    private DatabaseMetaData dbm;

    public DB(int type) {
    switch (type) {
    case ODBC : driver = ODBC_DRIVER; bridge = ODBC_BRIDGE; break;
    case MYSQL : driver = MYSQL_DRIVER; bridge = MYSQL_BRIDGE; break;
    case SQLSERVER : driver = SQLSERVER_DRIVER; bridge = SQLSERVER_BRIDGE; break;
    }
    // 1. Chargement du pilote
    try {
    Class.forName(driver);
    }
    catch(Exception e) {
    System.out.println("erreur de chargement de Driver : \n" + e.getMessage());
    }
    }

    // 2. Ouverture d'une connexion : cas de MYSQL
    public boolean open(String source, String server, String user, String pwd) {
    // URL de connexion
    url = bridge + "//" + server + "/" + source;
    try {
    db = DriverManager.getConnection(url, user, pwd);
    dbm = db.getMetaData();
    return true;
    }
    catch(Exception e) {
    System.out.println("erreur de connexion : \n" + e.getMessage());
    return false;
    }
    }

    // 2. Ouverture d'une connexion : cas d'ACCESS
    public boolean open(String source) { //source = nom de la BD
    url = bridge + source;
    try {
    db = DriverManager.getConnection(url);
    dbm = db.getMetaData(); //données sur la BD : Tables, Driver, Url, User, ...
    return true;
    }
    catch(Exception e) {
    System.out.println("erreur de connexion : " + e.getMessage());
    return false;
    }
    }

    public void printInfos() {
    try {
    System.out.println("driver : " + dbm.getDriverName());
    System.out.println("driver version : " + dbm.getDriverVersion());
    System.out.println("URL : " + dbm.getURL());
    System.out.println("user : " + dbm.getUserName());
    }
    catch(Exception e) {
    System.out.println("erreur : " + e.getMessage());
    }
    }

    public String[] getTables() {
    String tables[];
    try {
    ResultSet rs = dbm.getTables(null, null, "%", new String[]{"TABLE"/*,"SYSTEM TABLE","VIEW"*/});
    rs.setFetchDirection(ResultSet.TYPE_SCROLL_SENSITIVE);
    rs.last();
    int n = rs.getRow();
    rs.beforeFirst();
    tables = new String[n];
    int index = 0;
    while (rs.next()) {
    tables[index] = rs.getString(3);
    index++;
    }
    return tables;
    }
    catch(Exception e) {
    System.out.println("erreur : " + e.getMessage());
    try {
    ResultSet rs = dbm.getTables(null, null, "%", new String[]{"TABLE"/*,"SYSTEM TABLE","VIEW"*/});
    Vector v = new Vector();
    while (rs.next()) {
    v.add(rs.getString(3));
    }
    tables = new String[v.size()];
    for (int i=0; i<v.size(); i++) tables[i] = (String)v.get(i);
    return tables;
    }
    catch(Exception e2) {
    return null;
    }
    }
    }
    /*
    public String[] getFields(String table) {
    dbm.getColumns(null,null,table,null)
    }
    */
    public void testSelect() {
    try {
    Statement sql = db.createStatement();
    ResultSet rs = sql.executeQuery("SELECT * FROM produit");
    while (rs.next()) {
    System.out.println(
    rs.getString(1) + ", " +
    rs.getString(2) + ", " +
    rs.getString(3) + ", " +
    rs.getString(4)
    );
    }

    }
    catch(Exception e) {
    System.out.println("erreur : " + e.getMessage());
    }
    }

    public Connection getConnection() {
    return db;
    }

    public void executeUpdate(String query) {
    }

    public static void main(String[] args) {
    DB database = new DB(DB.SQLSERVER);
    database.open("Base1","localhost","","");
    }
    }
    --------------------------------------------------------------------------

    Apres l'execution de ce programme voici le message qui s'affiche :

    --------------------------------------------------------------------------
    Erreur de connexion :
    No suitable driver

    -------------------------------------------------------------------------

    ou est l'erreur !!?

Discussions similaires

  1. [PHP 5.3] [PDO] Chargement des pilotes
    Par éric1 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2009, 09h32
  2. [JDBC] Chargement du pilote Oracle
    Par slim dans le forum JDBC
    Réponses: 4
    Dernier message: 22/03/2006, 20h11
  3. [OC][ASE]Problème de chargement de pilote ODBC
    Par Joce dans le forum Sybase
    Réponses: 10
    Dernier message: 06/01/2006, 09h08
  4. Réponses: 3
    Dernier message: 08/12/2004, 21h11

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