Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podsumowanie
W tym artykule opisano sposób programowego określania biblioteki sieciowej klienta w parametry połączenia podczas nawiązywania połączenia z bazą danych programu SQL Server.
W programie Microsoft Data Access Components (MDAC) 2.6 lub nowszym można określić bibliotekę dostępu klienta przy użyciu parametru nazwy serwera w parametry połączenia. W związku z tym można określić określoną bibliotekę dostępu klienta po wyświetleniu monitu przez aplikację o nazwę serwera, z którą ma nawiązać połączenie. To zachowanie może być przydatne podczas testowania i rozwiązywania problemów z łącznością dla programu SQL Server.
Na przykład możesz użyć narzędzia wiersza polecenia Osql, aby nawiązać połączenie z programem SQL Server i wymusić użycie biblioteki sieciowej TCP/IP:
osql -Stcp:myServer,portNumber -E
Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 313295
Przykład kodu
W poniższym przykładzie kodu platformy .NET w języku Microsoft Visual C# pokazano, jak ustawić parametry połączenia. Parametry połączenia ma ten sam format niezależnie od używanego języka:
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);
}
}
}
}
Uwaga 16.
Parametry połączenia, a szczególnie wartość parametru serwera:
string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"
Używanie przykładu kodu z różnymi bibliotekami sieciowymi
W poniższych przykładach kodu pokazano, jak używać wartości parametru serwera do określania różnych bibliotek sieciowych:
TCP/IP:
server=tcp:hostnameOpcjonalnie możesz określić określony numer portu. Domyślnie port to 1433.
server=tcp:hostname, portNumberNazwane potoki:
server=np:hostnameOpcjonalnie możesz określić określony nazwany potok.
server=np:\\hostname\pipe\pipeNameDomyślnie nazwa potoku to sql\query. Jeśli łączysz się z nazwanym wystąpieniem, nazwa potoku jest zwykle w następującym formacie:
MSSQL$instnaceName\sql\queryWartość domyślna protokołu bazowego jest określana przez ustawienia systemu operacyjnego, w których protokół może mieć dowolną z następujących wartości:
Wartość Protokół bazowy ncacn_np Nazwane potoki ncacn_ip_tcp Transmission Control Protocol/Internet Protocol (TCP/IP) ncalrpc Wywołanie procedury lokalnej Pamięć udostępniona:
server=lpc:hostname
Informacje
Aby uzyskać więcej informacji, zobacz Dodatek A: Wpisy rejestru.