运行使用同步框架构建的应用程序时,我收到此错误,OFFLINE
ntext和图像数据类型不能在WHERE,HAVING,GROUP中使用 BY,ON或IN子句,除非这些数据类型与。一起使用 LIKE或IS NULL谓词。
我有一个包含一些测试的数据库TestOptions。另一个名为CreateScript的测试集合。这些表用于填充列表视图,并执行测试。
使用Sync框架,这些表已在本地克隆为SQL Server CE表。
用户选择所需的测试,结果存储在结果表中。
在填充列表视图时,使用包含所有这三个表的两个连接来运行查询,以收集测试数据。
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和图像)不能在ORDER BY子句中使用。
运行与上述类似的查询时。
在我的数据库中,没有包含这些数据类型的列。从阅读开始,似乎varbinary(MAX)
和nvarchar(MAX)
数据类型分别在本地SQL Server CE数据库上强制转换为image
和nText
。为了解决这个问题,我将数据类型更改为nvarchar(4000)
和varbinary(4000)
,但问题仍然存在。
有一个热修复可用here但它早于我的计算机上的SQL Server CE版本。我还没有测试过,因为我担心搞乱我的开发环境而且非常接近需要一个完整的版本来演示。
我还想到了为每个表创建内存DataTables
并查询这些内容的想法,但这也没有成功。
目前我没有想法,非常感谢任何帮助。
答案 0 :(得分:0)
使用
ORDER BY CAST ([Index] as nvarchar(4000))