- - PR -
SQLCLRテーブル値関数の中でデータアクセス
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-22 13:52
皆さんこんにちは。初投稿です。緊張しています。。。
不束者ですが、宜しくお願いします(>_<) SQLCLRのテーブル値関数の中でADOでのデータアクセスを行おうと調査していますが、エラーになってしまいます。 コンパイルはOKで、SQLServerManagementStudioのクエリウィンドウで実行すると下記エラーが発生します。 ------------------------------------------------------------------------- メッセージ 6260、レベル 16、状態 1、行 1 ユーザー定義のテーブル値関数から新しい行を取得中にエラーが発生しました: System.InvalidOperationException: Data access is not allowed in this context. Either the context is a function or method not marked with DataAccessKind.Read or SystemDataAccessKind.Read, is a callback to obtain data from FillRow method of a Table Valued Function, or is a UDT validation method. System.InvalidOperationException: ------------------------------------------------------------------------- 何かしらのアドバイスを頂きたいと思い、投稿しました。 下記サイトを参考にしました。 http://msdn2.microsoft.com/ja-jp/library/ms165054.aspx 下記にテストしたソースを添付します。 TestFunc0001()は、通常のファンクションでのデータアクセスの調査で作成したものです。 (TestFunc0001()だけは、期待通りに動いてくれました。)
| ||||
|
投稿日時: 2006-08-22 17:37
動くようになりました(>_<)ノ
まだ細かい原因ははっきりしませんが... データアクセスの仕方が悪いのかと思っていたら、そうではないようです。 DataSetやDataTableを使っているメソッドでyield returnを記述しているのがエラー発生の原因?(曖昧です)のようです。 んで、下記のように修正したら期待通りの動きをしてくれました。
|
1