クライアント ネットワーク ライブラリを指定するには、接続文字列のサーバー名パラメーターを使用します
概要
この記事では、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: レジストリ エントリ」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示