Utiliser le paramètre nom du serveur dans un chaîne de connexion pour spécifier la bibliothèque réseau cliente

Résumé

Cet article explique comment spécifier par programmation la bibliothèque réseau cliente dans le chaîne de connexion lorsque vous vous connectez à une base de données SQL Server.

Dans Microsoft Data Access Components (MDAC) 2.6 et versions ultérieures, vous pouvez spécifier la bibliothèque d’accès client à l’aide du paramètre nom du serveur dans chaîne de connexion. Par conséquent, vous pouvez spécifier une bibliothèque d’accès client spécifique lorsque vous êtes invité par une application à entrer un nom de serveur auquel se connecter. Ce comportement peut être utile lorsque vous testez et résolvez les problèmes de connectivité pour SQL Server.

Par exemple, vous pouvez utiliser l’utilitaire de ligne de commande Osql pour vous connecter à SQL Server et pour le forcer à utiliser la bibliothèque réseau TCP/IP :

osql -Stcp:myServer,portNumber -E

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 313295

Exemple de code

L’exemple de code Microsoft Visual C# .NET suivant montre comment définir la chaîne de connexion. Le chaîne de connexion a le même format, quelle que soit la langue que vous utilisez :

using System;
using System.Data;
using System.Data.SqlClient;

namespace getCurrentProtocol
{
    /// <summary>
    /// Main Application Driver Class
    /// </summary>
    class Driver
    {
        static void Main(string[] args)
        {
            string sCxn = "server=myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=np:myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=tcp:myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=rpc:myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=lpc:myServer;Integrated Security=SSPI; database=master";
            string sCmd = "SELECT net_library from sysprocesses where spid=@@spid";
            SqlConnection cxn = new SqlConnection(sCxn);
            SqlCommand sqlCmd = new SqlCommand(sCmd, cxn);
            SqlDataAdapter sqlDa = new SqlDataAdapter(sCmd, cxn);
            DataTable dt = new DataTable();
            try 
            {
                sqlDa.Fill(dt);
                Console.WriteLine("Hit ENTER to continue ...");
                Console.ReadLine();
                foreach (DataRow dr in dt.Rows)
                Console.WriteLine(dr["net_library"]);
            } 
            catch (SqlException e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine("SQL Error Number: " + e.Number);
                Console.WriteLine("SQL Error Message: " + e.Message);
            }
        }
    }
}

Remarque

Le chaîne de connexion et en particulier la valeur du paramètre de serveur :

string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"

Utiliser l’exemple de code avec différentes bibliothèques réseau

Les exemples de code suivants montrent comment utiliser la valeur du paramètre de serveur pour spécifier différentes bibliothèques réseau :

  • TCP/IP :

    server=tcp:hostname
    

    Vous pouvez éventuellement spécifier un numéro de port spécifique. Par défaut, le port est 1433.

    server=tcp:hostname, portNumber
    
  • Canaux nommés :

    server=np:hostname
    

    Vous pouvez éventuellement spécifier un canal nommé spécifique.

    server=np:\\hostname\pipe\pipeName
    

    Par défaut, le nom du canal est sql\query. Si vous vous connectez à un instance nommé, le nom du canal est généralement au format suivant :

    MSSQL$instnaceName\sql\query

  • La valeur par défaut du protocole sous-jacent est déterminée par les paramètres du système d’exploitation où un protocole peut avoir l’une des valeurs suivantes :

    Valeur Protocole sous-jacent
    ncacn_np Canaux nommés
    Ncacn_ip_tcp Protocole TCP/IP (Transmission Control Protocol/Internet Protocol)
    ncalrpc Appel de procédure locale
  • Mémoire partagée :

    server=lpc:hostname
    

References

Pour plus d’informations, consultez Annexe A : Entrées de Registre.