연결 문자열 서버 이름 매개 변수를 사용하여 클라이언트 네트워크 라이브러리 지정
요약
이 문서에서는 SQL Server 데이터베이스에 연결할 때 연결 문자열 클라이언트 네트워크 라이브러리를 프로그래밍 방식으로 지정하는 방법을 설명합니다.
MDAC(Microsoft Data Access Components) 2.6 이상에서는 연결 문자열 서버 이름 매개 변수를 사용하여 클라이언트 액세스 라이브러리를 지정할 수 있습니다. 따라서 연결할 서버 이름을 애플리케이션에서 묻는 메시지가 표시되면 특정 클라이언트 액세스 라이브러리를 지정할 수 있습니다. 이 동작은 SQL Server 대한 연결 문제를 테스트하고 해결하는 경우에 유용할 수 있습니다.
예를 들어 Osql 명령줄 유틸리티를 사용하여 SQL Server 연결하고 TCP/IP 네트워크 라이브러리를 사용하도록 강제 적용할 수 있습니다.
osql -Stcp:myServer,portNumber -E
원래 제품 버전: SQL Server
원래 KB 번호: 313295
코드 샘플
다음 Microsoft Visual C# .NET 코드 샘플에서는 연결 문자열 설정하는 방법을 보여 줍니다. 연결 문자열 사용하는 언어와 관계없이 형식이 동일합니다.
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);
}
}
}
}
참고
연결 문자열 특히 서버 매개 변수의 값은 다음과 같습니다.
string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"
다양한 네트워크 라이브러리와 함께 코드 샘플 사용
다음 코드 샘플에서는 서버 매개 변수 값을 사용하여 다양한 네트워크 라이브러리를 지정하는 방법을 보여 줍니다.
TCP/IP:
server=tcp:hostname
필요에 따라 특정 포트 번호를 지정할 수 있습니다. 기본적으로 포트는 1433입니다.
server=tcp:hostname, portNumber
명명된 파이프:
server=np:hostname
필요에 따라 특정 명명된 파이프를 지정할 수 있습니다.
server=np:\\hostname\pipe\pipeName
기본적으로 파이프 이름은 sql\query입니다. 명명된 instance 연결하는 경우 파이프 이름은 일반적으로 다음 형식입니다.
MSSQL$instnaceName\sql\query
기본 프로토콜의 기본값은 프로토콜이 다음 값 중 하나를 가질 수 있는 운영 체제 설정에 따라 결정됩니다.
값 기본 프로토콜 ncacn_np 명명된 파이프 ncacn_ip_tcp TCP/IP(전송 제어 프로토콜/인터넷 프로토콜) ncalrpc 로컬 프로시저 호출 공유 메모리:
server=lpc:hostname
참조
자세한 내용은 부록 A: 레지스트리 항목을 참조하세요.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기