Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Samenvatting
In dit artikel wordt beschreven hoe u programmatisch de clientnetwerkbibliotheek opgeeft in de verbindingsreeks wanneer u verbinding maakt met een SQL Server-database.
In Microsoft Data Access Components (MDAC) 2.6 en hoger kunt u de clienttoegangsbibliotheek opgeven met behulp van de servernaamparameter in verbindingsreeks. Daarom kunt u een specifieke clienttoegangsbibliotheek opgeven wanneer u wordt gevraagd door een toepassing voor een servernaam waarmee verbinding moet worden gemaakt. Dit gedrag kan nuttig zijn wanneer u connectiviteitsproblemen voor SQL Server test en ops lossen.
U kunt bijvoorbeeld het opdrachtregelprogramma Osql gebruiken om verbinding te maken met SQL Server en deze af te dwingen om de TCP/IP-netwerkbibliotheek te gebruiken:
osql -Stcp:myServer,portNumber -E
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 313295
Codevoorbeeld
In het volgende Microsoft Visual C# .NET-codevoorbeeld ziet u hoe u de verbindingsreeks instelt. De verbindingsreeks heeft dezelfde indeling, ongeacht de taal die u gebruikt:
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);
}
}
}
}
Notitie
De verbindingsreeks en met name de waarde van de serverparameter:
string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"
Het codevoorbeeld gebruiken met verschillende netwerkbibliotheken
In de volgende codevoorbeelden ziet u hoe u de waarde van de serverparameter gebruikt om verschillende netwerkbibliotheken op te geven:
TCP/IP:
server=tcp:hostnameU kunt desgewenst een specifiek poortnummer opgeven. Standaard is de poort 1433.
server=tcp:hostname, portNumberNamed Pipes:
server=np:hostnameU kunt desgewenst een specifieke benoemde pijp opgeven.
server=np:\\hostname\pipe\pipeNameDe pijpnaam is standaard sql\query. Als u verbinding maakt met een benoemd exemplaar, heeft de pijpnaam doorgaans de volgende indeling:
MSSQL$instnaceName\sql\queryDe standaardwaarde van het onderliggende protocol wordt bepaald door de besturingssysteeminstellingen waarbij een protocol een van de volgende waarden kan hebben:
Weergegeven als Onderliggend protocol ncacn_np Named Pipes ncacn_ip_tcp Transmission Control Protocol/Internet Protocol (TCP/IP) ncalrpc Lokale procedure-aanroep Gedeeld geheugen:
server=lpc:hostname
Verwijzingen
Zie bijlage A: Registervermeldingen voor meer informatie.