0

同期フレームワーク OFFLINE を使用して構築したアプリケーションを実行すると、このエラーが発生します。

ntext および image データ型は、WHERE、HAVING、GROUP BY、ON、または IN 句では使用できません。ただし、これらのデータ型が LIKE または IS NULL 述語と共に使用される場合を除きます。

いくつかのテスト、TestOptions を保持するデータベースがあります。CreateScript と呼ばれる別の保持テスト コレクション。これらのテーブルは、実行するテストをリスト ビューに入力するために使用されます。

同期フレームワークを使用して、これらのテーブルは SQL Server CE テーブルとしてローカルに複製されています。

ユーザーが目的のテストを選択すると、結果が結果テーブルに保存されます。

リスト ビューにデータを入力するときに、これら 3 つのテーブルすべてを組み込んだ 2 つの結合を使用してクエリを実行し、テスト用のデータを収集します。

select 
    TestType, TestName, LowerLimits, UpperLimits 
from 
    CreateScriptTable 
inner join 
    TestOptionsTable on CreateScriptTable.TestType = TestOptionsTable.TestName 
LEFT JOIN 
    TestResultsTable on CreateScriptTable.TestType = TestResultsTable.TestName 
WHERE 
    CreateScriptTable.InstrumentType= 'type1' 
ORDER BY 
    [Index] ASC

このクエリは、アプリケーションがオンラインのときに正常に機能します。アプリケーションがオフラインnTextの場合、およびimageデータ型に関する上記の例外が発生します。

私も例外を受け取ります、

ラージ オブジェクト (ntext および image) は、ORDER BY 句では使用できません。

上記と同様のクエリを実行すると。

私のデータベースには、これらのデータ型の列はありません。周りを読んでみると、データ型varbinary(MAX)とデータ型はそれぞれローカルの SQL Server CE データベースにnvarchar(MAX)キャストされてimageいるようです。nTextこれを修正するために、データ型をnvarchar(4000)andに変更しましvarbinary(4000)たが、問題は解決しません。

ここで利用可能なホット フィックスがありますが、私のマシンにある SQL Server CE のバージョンよりも古いものです。開発環境を台無しにすることを警戒しており、デモ用に完全なビルドが必要になりそうなので、まだテストしていません。

また、各テーブルをメモリ内に作成してクエリを実行するというアイデアも考えましたDataTablesが、これもうまくいきませんでした。

現時点では、私はアイデアがありません。助けていただければ幸いです。

4

1 に答える 1

0

使用する

ORDER BY CAST ([Index] as nvarchar(4000))
于 2013-01-17T14:20:36.793 に答える