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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für