DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 313100 - Dernière mise à jour: samedi 14 mai 2011 - Version: 4.0

Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).

Sommaire

Résumé

Cet article décrit comment se connecter à SQL Server 2000 à l'aide du pilote Microsoft SQL Server 2000 pour JDBC.


REMARQUE : pour obtenir les instructions d'installation du pilote Microsoft SQL Server 2000 pour JDBC, reportez-vous au Guide d'installation du pilote Microsoft SQL Server 2000 pour JDBC.

Une fois le pilote Microsoft SQL Server 2000 pour JDBC installé, vous pouvez vous connecter à la base de données à partir de votre programme de deux façons : avec une URL de connexion ou avec une source de données JNDI. Cet article décrit comment configurer et tester la connexion à votre base de données à l'aide d'une URL de connexion.

L'une des façons de se connecter à une base de données consiste à passer par le Gestionnaire de pilotes JDBC à l'aide de la méthode getConnection de la classe DriverManager. La manière la plus simple d'utiliser cette méthode consiste à prendre un paramètre de chaîne qui contient une URL, un nom d'utilisateur et un mot de passe. Les rubriques suivantes de cet article décrivent comment charger le pilote Microsoft SQL Server 2000 pour JDBC à partir de votre programme JDBC.

Pour définir la variable CLASSPATH

Les fichiers .jar du pilote Microsoft SQL Server 2000 pour JDBC doivent être répertoriés dans votre variable CLASSPATH. Cette variable est la chaîne de recherche que la machine virtuelle Java utilise pour rechercher les pilotes JDBC sur votre ordinateur. S'ils ne figurent pas dans votre variable CLASSPATH, le message d'erreur suivant s'affiche lorsque vous essayez de charger le pilote :
java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver
Définissez votre variable système CLASSPATH pour inclure les entrées suivantes :
  • \Votre chemin d'installation\Lib\Msbase.jar
  • \Votre chemin d'installation\Lib\Msutil.jar
  • \Votre chemin d'installation\Lib\Mssqlserver.jar
Voici un exemple de variable CLASSPATH configurée :
CLASSPATH=.;c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar

Pour enregistrer le pilote

L'enregistrement du pilote indique au Gestionnaire de pilotes JDBC quel pilote charger. Lorsque vous chargez un pilote à l'aide de la fonction class.forName, vous devez spécifier le nom du pilote. Pour le pilote Microsoft SQL Server 2000 pour JDBC, il s'agit de :
com.microsoft.jdbc.sqlserver.SQLServerDriver
L'exemple de code suivant montre comment enregistrer le pilote :
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
				

Pour passer l'URL de connexion

Vous devez passer les informations de connexion de votre base de données sous la forme d'une URL de connexion. Voici un modèle d'URL pour le pilote Microsoft SQL Server 2000 pour JDBC : Remplacez les valeurs par celles de votre base de données :
jdbc:microsoft:sqlserver://nom_serveur:1433
L'exemple de code suivant montre comment spécifier une URL de connexion :
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");
				
Les valeurs du nom du serveur peuvent être une adresse IP ou un nom d'hôte (en supposant que votre réseau résolve les noms d'hôtes en adresses IP). Vous pouvez le tester en exécutant la commande ping du nom d'hôte et en vérifiant que vous recevez une réponse avec l'adresse IP correcte.

La valeur numérique figurant après le nom du serveur correspond au numéro de port sur lequel la base de données écoute. Ces valeurs qui sont répertoriées plus haut dans cet article sont des exemples de valeurs par défaut. Veillez à remplacer le numéro de port par celui qu'utilise votre base de données.

Pour obtenir la liste complète des paramètres d'URL de connexion, reportez-vous à l'aide HTML du pilote Microsoft SQL Server 2000 pour JDBC ou au Guide en ligne. Reportez-vous à la rubrique « Propriétés de la chaîne de connexion » de cet article.

Exemple de code pour tester la connexion

L'exemple de code suivant essaie d'établir une connexion avec la base de données et affiche le nom de la base de données, la version et les catalogues disponibles. Remplacez les propriétés du serveur par les valeurs de votre serveur :
import java.*;
public class Connect{
     private java.sql.Connection  con = null;
     private final String url = "jdbc:microsoft:sqlserver://";
     private final String serverName= "localhost";
     private final String portNumber = "1433";
     private final String databaseName= "pubs";
     private final String userName = "user";
     private final String password = "password";
     // Informs the driver to use server a side-cursor, 
     // which permits more than one active statement 
     // on a connection.
     private final String selectMethod = "cursor"; 
     
     // Constructor
     public Connect(){}
     
     private String getConnectionUrl(){
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
     }
     
     private java.sql.Connection getConnection(){
          try{
               Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
               con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
               e.printStackTrace();
               System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
          return con;
      }

     /*
          Display the driver properties, database details 
     */ 

     public void displayDbProperties(){
          java.sql.DatabaseMetaData dm = null;
          java.sql.ResultSet rs = null;
          try{
               con= this.getConnection();
               if(con!=null){
                    dm = con.getMetaData();
                    System.out.println("Driver Information");
                    System.out.println("\tDriver Name: "+ dm.getDriverName());
                    System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
                    System.out.println("\nDatabase Information ");
                    System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
                    System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
                    System.out.println("Avalilable Catalogs ");
                    rs = dm.getCatalogs();
                    while(rs.next()){
                         System.out.println("\tcatalog: "+ rs.getString(1));
                    } 
                    rs.close();
                    rs = null;
                    closeConnection();
               }else System.out.println("Error: No active Connection");
          }catch(Exception e){
               e.printStackTrace();
          }
          dm=null;
     }     
     
     private void closeConnection(){
          try{
               if(con!=null)
                    con.close();
               con=null;
          }catch(Exception e){
               e.printStackTrace();
          }
     }
     public static void main(String[] args) throws Exception
       {
          Connect myDbTest = new Connect();
          myDbTest.displayDbProperties();
       }
}

				
Si ce code est correct, la sortie est semblable à celle-ci :
Connection Successful!
Driver Information
        Driver Name: SQLServer
        Driver Version: 2.2.0022

Database Information
        Database Name: Microsoft SQL Server
        Database Version: Microsoft SQL Server  2000 - 8.00.384 (Intel X86)
        May 23 2001 00:02:52
        Copyright (c) 1988-2000 Microsoft Corporation
        Desktop Engine on Windows NT 5.1 (Build 2600: )

Avalilable Catalogs
        catalog: master
        catalog: msdb
        catalog: pubs
        catalog: tempdb
					

Résolution des problèmes de connectivité de base

Voici les messages d'erreur courants qui peuvent s'afficher lorsque vous essayez de vous connecter à votre serveur SQL :
java.sql.SQLException: [Microsoft][Pilote SQLServer 2000 pour JDBC][SQL Server]Échec de la connexion de l'utilisateur 'utilisateur'. Raison : Non associé à une connexion sécurisée SQL Server.
Ce message d'erreur s'affiche si le mode d'authentification SQL Server 2000 est défini sur le mode d'authentification Windows. Le pilote Microsoft SQL Server 2000 pour JDBC ne prend pas en charge la connexion à l'aide du mode d'authentification Windows NT. Vous devez définir le mode d'authentification de votre serveur SQL sur le mode mixte qui permet à la fois l'authentification Windows et l'authentification SQL Server.
java.sql.SQLException: [Microsoft][Pilote SQLServer 2000 pour JDBC]Cette version du pilote JDBC ne prend en charge que Microsoft SQL Server 2000. Vous pouvez procéder à une mise à niveau vers SQL Server 2000 ou éventuellement rechercher une autre version du pilote.
Ce message d'erreur s'affiche si vous essayez de vous connecter à une version de SQL Server antérieure à SQL Server 2000. Le pilote Microsoft SQL Server 2000 pour JDBC prend en charge la connectivité uniquement avec SQL Server 2000.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Édition 64 bits
  • Microsoft SQL Server 2000 Standard
Mots-clés : 
kbsqlserverengine kbhowtomaster KB313100
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store