İ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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin