以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  外部MSSQL表, 备注型字段 如何模糊查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46864)

--  作者:jnletao
--  发布时间:2014/2/28 14:29:00
--  外部MSSQL表, 备注型字段 如何模糊查询
If TextDoing.Value  IsNot Nothing Then
    FilterStr = FilterStr & " And 执行操作 = \'%" & TextDoing.Value  & "%\'"
End If

DataTables("操作日志").LoadFilter = FilterStr


数据类型 ntext 和 varchar 在 equal to 运算符中不兼容。

--  作者:longtechwj
--  发布时间:2014/2/28 14:46:00
--  
If TextDoing.Value  IsNot Nothing Then
    FilterStr = FilterStr & " And cast(执行操作 as nvarchar(255)) = \'%" & TextDoing.Value  & "%\'"
End If


--  作者:jnletao
--  发布时间:2014/2/28 15:00:00
--  
谢谢 longtechwj

我网上也找了一段。  留帖以分享备查
SQL SERVER中强制类型转换cast和convert的区别
 
在SQL SERVER中,cast和convert函数都可用于类型转换,其功能是相同的,
 
只是语法不同.
 
cast一般更容易使用,convert的优点是可以格式化日期和数值.
 
代码
select CAST(\'123\' as int)   -- 123
select CONVERT(int, \'123\')  -- 123
 
select CAST(123.4 as int)   -- 123
select CONVERT(int, 123.4)  -- 123 
 
select CAST(\'123.4\' as int)
select CONVERT(int, \'123.4\')
-- Conversion failed when converting the varchar value \'123.4\' to data type int.
 
select CAST(\'123.4\' as decimal)  -- 123
select CONVERT(decimal, \'123.4\') -- 123 
 
select CAST(\'123.4\' as decimal(9,2))  -- 123.40
select CONVERT(decimal(9,2), \'123.4\') -- 123.40
 
declare @Num money
set @Num = 1234.56
select CONVERT(varchar(20), @Num, 0)  -- 1234.56
select CONVERT(varchar(20), @Num, 1)  -- 1,234.56
select CONVERT(varchar(20), @Num, 2)  -- 1234.5600

--  作者:jnletao
--  发布时间:2014/2/28 15:06:00
--  
晕了,cast  与convert都试了,到时不报错了,不过查不出数据图片点击可在新窗口打开查看
--  作者:Bin
--  发布时间:2014/2/28 15:15:00
--  
If TextDoing.Value  IsNot Nothing Then
    FilterStr = FilterStr & " And cast(执行操作 as nvarchar(255)) like \'%" & TextDoing.Value  & "%\'"
End If

没有数据说明没有符合条件的.

--  作者:jnletao
--  发布时间:2014/2/28 15:18:00
--  
谢谢bin老师,找到原因了。 我把 = 忘改为 like 了