以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]ACCESS 转SQL数据库时 提示  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=70582)

--  作者:blsu33
--  发布时间:2015/6/24 17:22:00
--  [求助]ACCESS 转SQL数据库时 提示
老师,
   数据库更改为SQL,发生提示
.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
数据类型 ntext 和 varchar 在 equal to 运算符中不兼容。


这是哪里有问题呢

--  作者:狐狸爸爸
--  发布时间:2015/6/24 17:38:00
--  
将varchar改为nvarchar
--  作者:blsu33
--  发布时间:2015/6/24 17:48:00
--  
狐爸,
   在哪里能找到varchar ,导出的代码,没有找到。

--  作者:狐狸爸爸
--  发布时间:2015/6/24 17:49:00
--  
 到SQL Server中改,将所有列类型为varchar的改为nvarchar
--  作者:狐狸爸爸
--  发布时间:2015/6/24 17:55:00
--  

 我可能搞错了:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&dsp=baidubrowser&tn=baidu&wd=ntext%20%E5%92%8C%20varchar%20%E8%BF%90%E7%AE%97%E7%AC%A6&rsv_pq=97de99060000a6f1&rsv_t=e73f7glUMBMbsw1yZlffY2Vh494FC6ttKaOd0c4UTQhoC0OjnjkL%2BFI2p38&rsv_enter=1&rsv_sug3=30&rsv_sug2=0&inputT=6675&rsv_sug4=8249

 

还不行的话,可以将ntext改为nvarchar,或者不要在select语句中对ntext列进行比较。


--  作者:blsu33
--  发布时间:2015/6/24 18:24:00
--  
哦 解决了 谢谢狐爸
我用的是这个帖子
ntext和varchar在=运算符中不兼容(2011/7/11 17:35:09)
来源:转载
[转载]   分类:DB
ntext和nvarchar,这两个数据类型在数据库中是完全不同的,所以无法在他们之间进行比较操作,尤其那个ntext,很多操作都不能做,就算是两个ntext类型,也没有办法进行比较操作。

    然而此时要进行一个sql语句的查询,条件是ntext字段与nvarchar字段进行比较,当然无法进行比较,于是报出了错误“数据类型 ntext 和 varchar 在 equal to 运算符中不兼容的错误信息”。该怎么解决呢?

1、直接改数据库字段类型(大多数情况不可行)。

2、用cast(ntext字段名 as nvarchar(50))进行转换后,再进行二者的比较。这里“ntext字段名”指的是该字段的名字,这样就可以对二者进行比较了。

还用一种就是转换后使用like进行匹配!


--  作者:blsu33
--  发布时间:2015/8/4 17:46:00
--  
红袍老师,
    2、用cast(ntext字段名 as nvarchar(50))进行转换是否可行?

--  作者:blsu33
--  发布时间:2015/8/4 17:53:00
--  
放在窗口中 提示
.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,窗口2,AfterLoad
详细错误信息:
表达式包含未定义的函数调用 cast()。


--  作者:大红袍
--  发布时间:2015/8/4 18:19:00
--  

 你在写sql语句的时候才报错的吧?贴出你写的代码。

 

 在sql语句里面写 case(备注列 as varchar(50)) 不会报错的


--  作者:blsu33
--  发布时间:2015/8/4 18:22:00
--  
o  不是在SQL中 需要这么做吗

例如 窗口名称列 备注字段 是否需要用到
\'Dim ft As String= "([窗口名称] Like \'%,"& e.Form.Name &"\'or [窗口名称] Like \'"& e.Form.Name  &",%\' or [窗口名称] Like \'%\\"& e.Form.Name &"\\%\' or cast([窗口名称] As nvarchar(50))=\'"& e.Form.Name &"\')"