同期フレームワーク 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
が、これもうまくいきませんでした。
現時点では、私はアイデアがありません。助けていただければ幸いです。