既存の C# コードを CLR ストアド プロシージャに変換しようとしています。使用する明白な接続文字列は、コンテキスト接続 ("context connection = true") です。
私が直面している問題は、この接続タイプでは明らかに機能しないことがいくつかあります。最新のことは、SqlConnection.GetSchema メソッドが失敗することです。エラーは、コンテキスト接続では使用できないことを示しているだけです。コンテキスト接続で機能しないもののリストはどこかにありますか?
既存の C# コードを CLR ストアド プロシージャに変換しようとしています。使用する明白な接続文字列は、コンテキスト接続 ("context connection = true") です。
私が直面している問題は、この接続タイプでは明らかに機能しないことがいくつかあります。最新のことは、SqlConnection.GetSchema メソッドが失敗することです。エラーは、コンテキスト接続では使用できないことを示しているだけです。コンテキスト接続で機能しないもののリストはどこかにありますか?
MSDN SQL Server 2008 Books Onlineで既にこれに遭遇している可能性がありますが、次のリンクでは、コンテキスト接続を使用するときに課せられる制限について説明しています。
完全な例外とスタック トレースを投稿すると、.NET FX アセンブリ (.NET Reflector を使用)、または SQL 2005/2008 で展開されたアセンブリから、この例外がスローされる理由を確認できる場合があります。
誰かがこれを便利だと思うかもしれません:
System.Data.DataTable schema = null;
using (System.Data.SqlClient.SqlCommand cmd = database.Connection.CreateCommand())
{
cmd.CommandText = string.Format( "SELECT TOP 1 * FROM {0}", mainTable );
cmd.CommandType = System.Data.CommandType.Text;
using (System.Data.SqlClient.SqlDataReader rdr = cmd.ExecuteReader())
{
schema = rdr.GetSchemaTable();
}
}
さらに検索した後、コンテキスト接続で機能しないもののリストを見つけましたここ。これらの一部は、上記の SQL Books リンクにも記載されていますが、すべてについては言及されていません。
コンテキスト接続では機能しないもの。