연결 문자열 서버 이름 매개 변수를 사용하여 클라이언트 네트워크 라이브러리 지정

요약

이 문서에서는 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: 레지스트리 항목을 참조하세요.