2011-01-11 66 views
0

Sharepointフィールドでorderby byを実行するとき。次のエラーが生成されます。camlクエリエラー:IS NULLまたはLIKE演算子を使用している場合を除いて、text、ntext、およびimageデータ型を比較またはソートすることはできません。

IS NULLまたはLIKE演算子を使用する場合を除いて、text、ntext、およびimageデータ型を比較またはソートすることはできません。 説明:現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.Data.SqlClient.SqlException:IS NULLまたはLIKE演算子を使用している場合を除いて、text、ntext、およびimageデータ型を比較またはソートすることはできません。次のように

CAMLクエリORDERBY句は次のとおりです。

<Where> 
    <And> 
    <And> 
     <Eq> 
     <FieldRef Name='ContentType' /> 
     <Value Type='Choice'>Documents</Value> 
     </Eq> 
     <Eq> 
     <FieldRef Name='UserID' /> 
     <Value Type='Text'>UserID_VAL</Value> 
     </Eq> 
    </And> 
    <Neq> 
     <FieldRef Name='Email' /> 
     <Value Type='Text'>NA</Value> 
    </Neq> 
    </And> 
</Where> 
<OrderBy> 
    <FieldRef Name='Description' Ascending='TRUE' Nullable='TRUE'/> 
</OrderBy> 

ソートされたフィールドを説明し、それがテキストのリスト 説明シングルラインで、次のデータ型を持っています。

この問題の解決方法

ありがとうございます。複数行の列(注)を使用して並べ替えしよう

答えて

0

Camlのクエリと、次のエラーを生成する必要があります:

「ntext型、テキスト、および画像データの種類を比較またはソートすることができない、使用している場合を除き、NULLですか、 LIKE演算子です。

SharePoint MultiLineまたはNote列は、ntextデータ型としてコンテンツデータベースのAllUserDataテーブルに格納されます。 SQL Serverは、text、ntextまたはimageデータ型のいずれかを使用して並べ替えることができません。これを回避する唯一の方法は、CAMLのソート機能を使用せず、返されたデータセットをソートすることです。

http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/c7a1e8b7-62c0-4b90-8a9b-cc7e3fa6940c

+0

よくこの記事を見ました。しかし、別の方法があるはずです。空白にNULL値を代入してソートできるようにするCAMLクエリの機能がありますか? – TrustyCoder

+0

ここでスローされたエラーは、CAMLからではなくデータベースからのものです。計算された列を作成したり、データセット内のすべての項目をフェッチしてソートしない限り、操作は機能しません。 –

+0

CAMPはSQLに変換されます。したがって、必要なSQLを生成するようにCAMLを変更する方法があります。 – TrustyCoder

関連する問題