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

文書翻訳 文書翻訳
文書番号: 313295 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、SQL Server データベースへの接続時に、プログラムを使用して接続文字列にクライアント ネットワーク ライブラリを指定する方法を説明します。

Microsoft Data Access Components (MDAC) 2.6 以降では、接続文字列に server name パラメータを使用して、クライアント アクセス ライブラリを指定できます。したがって、アプリケーションにより、接続先サーバー名の入力を求めるメッセージが表示されたときに、特定のクライアント アクセス ライブラリを指定できます。この動作は、SQL Server の接続問題のテストやトラブルシューティングを行っているときに、非常に役立つことがあります。

たとえば、Osql コマンド ライン ユーティリティを使用して SQL Server に接続し、SQL Server で TCP/IP ネットワーク ライブラリが使用されるように指定できます。
osql -Stcp:myServer,portNumber -E
				

サンプル コード

次の 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);
				
			}
		}
	}
} 
				
接続文字列、特に server パラメータの値に注意します。
string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"
				

さまざまなネットワーク ライブラリでサンプル コードを使用する

以下のサンプル コードでは、server パラメータの値を使用して、さまざまなネットワーク ライブラリを指定する方法を示します。
  • TCP/IP :
    server=tcp:hostname
    特定のポート番号を指定できます (省略可能です)。デフォルトでは、ポートは 1433 です。
    server=tcp:hostname, portNumber
  • 名前付きパイプ :
    server=np:hostname
    特定の名前付きパイプを指定できます (省略可能です)。
    server=np:\\hostname\pipe\pipeName
    デフォルトでは、パイプ名は sql\query です。名前付きインスタンスに接続する場合、通常は以下の形式でパイプ名を指定します。
    MSSQL$instnaceName\sql\query
  • マルチプロトコル :
    server=rpc:hostname
    基になるプロトコルを指定できます (省略可能です)。
    server=rpc:hostname, protocol
    基になるプロトコルのデフォルト値は、オペレーティング システムの設定によって決定されます。この場合、プロトコルには以下の値のいずれかを指定できます。
    元に戻す全体を表示する
    基になるプロトコル
    ncacn_np 名前付きパイプ
    ncacn_ip_tcp TCP/IP (Transmission Control Protocol/Internet Protocol)
    ncacn_nb_nb NetBIOS over NetBEUI
    ncacn_spx SPX (Sequenced Packet Exchange)
    ncacn_vns_spp Banyan VINES
    ncadg_ip_udp UDP (User Datagram Protocol) データグラム - TCP/IP
    ncadg_ipx IPX (Internetwork Packet Exchange) データグラム - IPX
    ncalrpc ローカル プロシージャ コール

  • 共有メモリ :
    server=lpc:hostname
  • NWlink IPX/SPX :
    server=spx:hostname
  • Banyan VINES :
    server=vines:hostname
  • Apple Talk :
    server=adsp:hostname

関連情報

詳細については、次のマイクロソフト Web サイトを参照してください。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dbnetlib/htm/dbnetlib_22.asp

プロパティ

文書番号: 313295 - 最終更新日: 2006年2月17日 - リビジョン: 6.2
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.6 Service Pack 1
  • Microsoft Data Access Components 2.6 Service Pack 2
  • Microsoft Data Access Components 2.7
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
キーワード:?
kbhowtomaster KB313295
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com