Como utilizar o parâmetro de nome de servidor numa cadeia de ligação para especificar a biblioteca de rede cliente

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 313295
Sumário
Este artigo descreve como especificar programaticamente a biblioteca de rede do cliente na cadeia de ligação quando liga a uma base de dados do SQL Server.

No Microsoft Data Access Components (MDAC) 2.6 e versões posteriores, pode especificar a biblioteca de acesso de cliente utilizando o parâmetro de server name na cadeia de ligação. Por conseguinte, pode especificar uma biblioteca de acesso de cliente específico, quando lhe for indicado por uma aplicação para um nome de servidor ao qual ligar. Este comportamento pode ser muito útil quando estiver a testar e resolver problemas de conectividade para o SQL Server.

Por exemplo, pode utilizar o utilitário da linha de comandos OSQL para estabelecer ligação com o SQL Server e forçar para utilizar a biblioteca de rede TCP/IP:
osql -Stcp:myServer,portNumber -E				
back to the top

Exemplo de código

O exemplo de código Microsoft Visual C# .NET que se segue demonstra como definir a cadeia de ligação. A cadeia de ligação tem o mesmo formato independentemente do idioma que utiliza:
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 a cadeia de ligação e particularmente o valor do parâmetro do servidor :
string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"				
back to the top

Utilizar o exemplo de código com vários bibliotecas de rede

Os seguintes exemplos de código demonstram como utilizar o valor do parâmetro do servidor para especificar várias bibliotecas de rede:
  • TCP/IP :
    server=tcp:hostname
    Opcionalmente, pode especificar um número de porta específica. Por predefinição, a porta é 1433.
    server=tcp:hostname, portNumber
  • pipes nomeados :
    server=np:hostname
    Opcionalmente, pode especificar um pipe nomeado específico.
    server=np:\\hostname\pipe\pipeName
    Por predefinição, o nome de pipe é sql\query. Se ligar a uma instância nomeada, o nome do encaminhamento (pipe) é normalmente no seguinte formato:
    MSSQL $ instnaceName\sql\query
  • multiprotocolo :
    server=rpc:hostname
    Opcionalmente, pode especificar o protocolo subjacente.
    server=rpc:hostname, protocol
    O valor predefinido do protocolo subjacente é determinado pelas definições do sistema operativo em que um protocolo pode ter qualquer um dos seguintes valores:
    ValorProtocolo subjacente
    ncacn_npPipes nomeados
    ncacn_ip_tcpControlo de transmissão protocolo de Protocol/Internet (TCP/IP)
    ncacn_nb_nbSistema básico de entrada/saída de rede (NetBIOS) através de interface do utilizador avançado de NetBIOS (NetBEUI)
    ncacn_spxTroca de pacotes sequenciada (SPX)
    ncacn_vns_sppBanyan VINES
    ncadg_ip_udpUDP (protocolo de datagrama de utilizador), TCP/IP
    ncadg_ipxIPX de datagrama de IPX (Internetwork Packet Exchange)
    ncalrpcChamada de procedimento local

  • memória partilhada :
    server=lpc:hostname
  • NWlink IPX/SPX :
    server=spx:hostname
  • Banyan VINES :
    server=vines:hostname
  • Apple Talk :
    server=adsp:hostname
back to the top
Referências
Para mais informações, visite o seguinte Web site da Microsoft:

http://msdn.microsoft.com/en-us/library/aa470051.aspx

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 313295 - Última Revisão: 11/30/2005 00:58:49 - Revisão: 6.5

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.6 Service Pack 1, Microsoft Data Access Components 2.6 Service Pack 2, Microsoft Data Access Components 2.7, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL 2005 Server Workgroup

  • kbmt kbhowtomaster KB313295 KbMtpt
Comentários