クライアント ネットワーク ライブラリを指定するには、接続文字列のサーバー名パラメーターを使用します

概要

この記事では、SQL Server データベースに接続するときに、接続文字列でクライアント ネットワーク ライブラリをプログラムで指定する方法について説明します。

Microsoft Data Access Components (MDAC) 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 です。 名前付きインスタンスに接続する場合、パイプ名は通常、次の形式になります。

    MSSQL$instnaceName\sql\query

  • 基になるプロトコルの既定値は、プロトコルが次のいずれかの値を持つオペレーティング システムの設定によって決まります。

    基になるプロトコル
    ncacn_np 名前付きパイプ
    ncacn_ip_tcp 伝送制御プロトコル/インターネット プロトコル (TCP/IP)
    ncalrpc ローカル プロシージャ呼び出し
  • 共有メモリ:

    server=lpc:hostname
    

関連情報

詳細については、「 付録 A: レジストリ エントリ」を参照してください。