Usare il parametro nome server in un stringa di connessione per specificare la libreria di rete client
Riepilogo
Questo articolo descrive come specificare a livello di codice la libreria di rete client nel stringa di connessione quando ci si connette a un database SQL Server.
In Microsoft Data Access Components (MDAC) 2.6 e versioni successive è possibile specificare la libreria di accesso client usando il parametro nome server in stringa di connessione. Pertanto, è possibile specificare una libreria di accesso client specifica quando viene richiesto da un'applicazione per un nome di server a cui connettersi. Questo comportamento può essere utile durante il test e la risoluzione dei problemi di connettività per SQL Server.
Ad esempio, è possibile usare l'utilità da riga di comando Osql per connettersi a SQL Server e forzarlo a usare la libreria di rete TCP/IP:
osql -Stcp:myServer,portNumber -E
Versione originale del prodotto: SQL Server
Numero KB originale: 313295
Esempio di codice
Nell'esempio di codice .NET di Microsoft Visual C# seguente viene illustrato come impostare il stringa di connessione. Il stringa di connessione ha lo stesso formato indipendentemente dalla lingua usata:
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);
}
}
}
}
Nota
Il stringa di connessione e in particolare il valore del parametro server:
string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"
Usare l'esempio di codice con diverse librerie di rete
Gli esempi di codice seguenti illustrano come usare il valore del parametro server per specificare diverse librerie di rete:
TCP / IP:
server=tcp:hostname
Facoltativamente, è possibile specificare un numero di porta specifico. Per impostazione predefinita, la porta è 1433.
server=tcp:hostname, portNumber
Named Pipes:
server=np:hostname
Facoltativamente, è possibile specificare una named pipe specifica.
server=np:\\hostname\pipe\pipeName
Per impostazione predefinita, il nome della pipe è sql\query. Se ci si connette a un'istanza denominata, il nome della pipe è in genere nel formato seguente:
MSSQL$instnaceName\sql\query
Il valore predefinito del protocollo sottostante è determinato dalle impostazioni del sistema operativo in cui un protocollo può avere uno dei valori seguenti:
Valore Protocollo sottostante ncacn_np Named Pipe Ncacn_ip_tcp Transmission Control Protocol/Internet Protocol (TCP/IP) ncalrpc Chiamata di routine locale Memoria condivisa:
server=lpc:hostname
Riferimenti
Per altre informazioni, vedere Appendice A: Voci del Registro di sistema.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per