İstemci ağ kitaplığını belirtmek için bağlantı dizesi sunucu adı parametresini kullanma

Özet

Bu makalede, bir SQL Server veritabanına bağlanırken bağlantı dizesi istemci ağ kitaplığının program aracılığıyla nasıl belirtileceğini açıklar.

Microsoft Veri Erişim Bileşenleri (MDAC) 2.6 ve sonraki sürümlerde, bağlantı dizesi sunucu adı parametresini kullanarak istemci erişim kitaplığını belirtebilirsiniz. Bu nedenle, bir uygulamadan bağlanacağınız sunucu adı istendiğinde belirli bir istemci erişim kitaplığı belirtebilirsiniz. Bu davranış, SQL Server için bağlantı sorunlarını test ederken ve giderirken yararlı olabilir.

Örneğin, SQL Server bağlanmak ve TCP/IP ağ kitaplığını kullanmaya zorlamak için Osql komut satırı yardımcı programını kullanabilirsiniz:

osql -Stcp:myServer,portNumber -E

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 313295

Kod Örneği

Aşağıdaki Microsoft Visual C# .NET kod örneğinde bağlantı dizesi nasıl ayarlanacağı gösterilmektedir. bağlantı dizesi, kullandığınız dilden bağımsız olarak aynı biçime sahiptir:

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);
            }
        }
    }
}

Not

bağlantı dizesi ve özellikle sunucu parametresinin değeri:

string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"

Kod Örneğini Çeşitli Ağ Kitaplıklarıyla Kullanma

Aşağıdaki kod örnekleri, çeşitli ağ kitaplıklarını belirtmek için sunucu parametresinin değerinin nasıl kullanılacağını gösterir:

  • TCP / IP:

    server=tcp:hostname
    

    İsteğe bağlı olarak belirli bir bağlantı noktası numarası belirtebilirsiniz. Varsayılan olarak, bağlantı noktası 1433'dür.

    server=tcp:hostname, portNumber
    
  • Adlandırılmış Kanallar:

    server=np:hostname
    

    İsteğe bağlı olarak belirli bir adlandırılmış kanal belirtebilirsiniz.

    server=np:\\hostname\pipe\pipeName
    

    Varsayılan olarak, kanal adı sql\query'dir. Adlandırılmış bir örneğe bağlanırsanız kanal adı genellikle aşağıdaki biçimdedir:

    MSSQL$instnaceName\sql\query

  • Temel alınan protokolün varsayılan değeri, bir protokolün aşağıdaki değerlerden herhangi birine sahip olabileceği işletim sistemi ayarları tarafından belirlenir:

    Değer Temel Protokol
    ncacn_np Adlandırılmış Kanallar
    ncacn_ip_tcp İletim Denetimi Protokolü/İnternet Protokolü (TCP/IP)
    ncalrpc Yerel yordam çağrısı
  • Paylaşılan Bellek:

    server=lpc:hostname
    

Başvurular

Daha fazla bilgi için bkz . Ek A: Kayıt Defteri Girdileri.