英語で読む

次の方法で共有


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

まとめ

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

Microsoft Data Access Components (MDAC) 2.6 以降では、接続文字列の server name パラメーターを使用してクライアント アクセス ライブラリを指定できます。 そのため、接続先のサーバー名をアプリケーションに求められたら、特定のクライアント アクセス ライブラリを指定できます。 この動作は、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
    

関連情報

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