Verwenden Sie den Servernamenparameter in einem Verbindungszeichenfolge, um die Clientnetzwerkbibliothek anzugeben.

Zusammenfassung

In diesem Artikel wird beschrieben, wie Sie die Clientnetzwerkbibliothek im Verbindungszeichenfolge programmgesteuert angeben, wenn Sie eine Verbindung mit einer SQL Server-Datenbank herstellen.

In Microsoft Data Access Components (MDAC) 2.6 und höher können Sie die Clientzugriffsbibliothek mithilfe des Servernamenparameters in Verbindungszeichenfolge angeben. Daher können Sie eine bestimmte Clientzugriffsbibliothek angeben, wenn Sie von einer Anwendung zur Eingabe eines Servernamens aufgefordert werden, mit dem eine Verbindung hergestellt werden soll. Dieses Verhalten kann nützlich sein, wenn Sie Konnektivitätsprobleme für SQL Server testen und beheben.

Sie können beispielsweise das Osql-Befehlszeilenprogramm verwenden, um eine Verbindung mit SQL Server herzustellen und die Verwendung der TCP/IP-Netzwerkbibliothek zu erzwingen:

osql -Stcp:myServer,portNumber -E

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 313295

Codebeispiel

Im folgenden Microsoft Visual C# .NET-Codebeispiel wird veranschaulicht, wie die Verbindungszeichenfolge festgelegt wird. Die Verbindungszeichenfolge hat unabhängig von der verwendeten Sprache das gleiche Format:

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);
            }
        }
    }
}

Hinweis

Die Verbindungszeichenfolge und insbesondere der Wert des Serverparameters:

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

Verwenden des Codebeispiels mit verschiedenen Netzwerkbibliotheken

Die folgenden Codebeispiele veranschaulichen, wie der Wert des Serverparameters verwendet wird, um verschiedene Netzwerkbibliotheken anzugeben:

  • TCP/IP:

    server=tcp:hostname
    

    Optional können Sie eine bestimmte Portnummer angeben. Standardmäßig ist der Port 1433.

    server=tcp:hostname, portNumber
    
  • Named Pipes:

    server=np:hostname
    

    Optional können Sie eine bestimmte Named Pipe angeben.

    server=np:\\hostname\pipe\pipeName
    

    Standardmäßig lautet der Pipename sql\query. Wenn Sie eine Verbindung mit einem benannten instance herstellen, weist der Pipename in der Regel das folgende Format auf:

    MSSQL$instnaceName\sql\query

  • Der Standardwert des zugrunde liegenden Protokolls wird durch die Betriebssystemeinstellungen bestimmt, bei denen ein Protokoll einen der folgenden Werte aufweisen kann:

    Wert Zugrunde liegendes Protokoll
    ncacn_np Named Pipes
    Ncacn_ip_tcp Transmission Control Protocol/Internet Protocol (TCP/IP)
    ncalrpc Aufruf der lokalen Prozedur
  • Freigegebener Speicher:

    server=lpc:hostname
    

References

Weitere Informationen finden Sie unter Anhang A: Registrierungseinträge.