2

マイニング構造を2008サーバーから2012サーバーに移行しました。2012サーバーのDMXクエリでCLRUDF(SQL Server 2008で正常に動作している)を試してみると、次のエラーが発生します。

呼び出しのターゲットによって例外がスローされました。オブジェクト参照がオブジェクト インスタンスに設定されていません。

私の当初の目標は、GetNodeDescription(...)メソッドを実行することでした。問題のデバッグ中に、SQLServer2012で失敗するこのUDFに問題を切り分けることができました

[SafeToPrepare(true)]
public static string test()
{
  return Context.CurrentMiningModel.Name;
}

CurrentMiningModel次のコードは正常に機能するため、これはnullだと思います

[SafeToPrepare(true)]
public static string testUser()
{
 return Context.CurrentConnection.User.Name;
}

これを解決する方法について何かアイデアはありますか?これを再現できる人はいますか?

ありがとう。

1月

更新:Microsoftの連絡先は、「メタデータリファクタリング」(これが意味するものは何でも...)により、この動作を希望どおりに確認しました。ただし、ウェブサイトは適切に更新される予定です。

4

1 に答える 1

0

これは最終的な答えではありませんが、MicrosoftのGetNodeDescriptionを(マイニングモデルを明示的に提供することによって)機能させるための回避策です。

[SafeToPrepare(true)]  
public static string GetNodeDescription(string MiningModel, string nodeUniqueName)  
{  
  if (Context.ExecuteForPrepare)  
  {
    return string.Empty;  
  }  
  return Context.MiningModels[MiningModel].GetNodeFromUniqueName(nodeUniqueName).Descript‌​ion;  
}
于 2012-04-24T10:11:41.773 に答える