pymssqlntext字段调用问题解决方法
下面是调用方式:
不过,在我使用过程中,发现,如果表中包含了ntext字段,就会出错,提示
Unicode排序规则的Unicode数据发送到客户端。
查了一下,发现官方网站有解释:
Q:Whatmeans"UnicodedatainaUnicode-onlycollationorntextdatacannotbesenttoclientsusingDB-Library"?
A:IfyouconnecttoaSQLServer2000SP4orSQLServer2005,andifyoumakeaSELECTqueryonatablethatcontainsacolumnoftypeNTEXT,youmayencounterthefollowingerror:
_mssql.error:SQLServermessage4004,severity16,state1,line1:
UnicodedatainaUnicode-onlycollationorntextdatacannotbesenttoclientsusingDB-Library(suchasISQL)orODBCversion3.7orearlier.
It"stheSQLServercomplainingthatitdoesn"tsupportpureUnicodeviaTDSorolderversionsofODBC.There"snofixforthiserror.MicrosofthasdeprecatedDB-Libraryalongago,infavorofODBC,OLEDB,orSQLNativeClient.ManynewfeaturesofSQL2005aren"taccessibleviaDB-Librarysoifyouneedthem,youhavetoswitchawayfrompymssqlorothertoolsbasedonTDSandDB-Library.AworkaroundistochangethecolumntypetoNVARCHAR(itdoesn"texhibitthisbehaviour),orTEXT.
大概意思是,这是因为我们的pymssql使用早期的ODBC函数集来获取数据。后来微软才引入了ntext和nvarchar类型,但Microsoft并没有更新他们的C-library,所以就没办法支持了。建议:将ntext修改为nvarchar或text.
显然,这不是个好的解决方法,那么是否就没有其他办法了呢?
还好,不用绝望,既然不支持ntext但支持text,那么我们只需要在输出时将ntext转换为text就好了,方法很简单:
唯一的问题,可能是ntext和text字段所支持的长度不一样,所以也许你还需要设置一下TEXTSIZE
当然,你还可以将字段设置的大一点,这个就看你的需要了。
相关文章
- axios 跨域问题_前端跨域产生的原因和解决方法
- 使用phpMyAdmin修改MySQL数据库root用户密码的方法
- MySQL常见问题及解决方法(mysql常见的问题)
- 解决Oracle索引空值问题的方法探讨(oracle索引空值)
- 解决Linux网络问题:无法获取IP地址的解决方法(linux获取不到ip)
- 解决MySQL查询无返回数据问题的方法(mysql查询没有数据)
- 解决Linux数据库启动问题的简单方法(linux数据库启动不了)
- MySQL 数据库中文乱码问题的解决方法(mysql数据中文乱码)
- 解决MySQL中key错误问题的方法(mysql中key报错)
- 解决MySQL中文乱码问题的方法(mysql中午乱码问题)
- MySQL正则匹配不成功问题解决方法(mysql不符合正则)
- 数据库查询中遭遇特殊字符导致问题的解决方法
- sql2005远程连接问题解决方法
- IIS无法显示中文名称图片问题的解决方法
- php中文字符入库或显示乱码问题的解决方法
- 在数据库‘master’中拒绝CREATEDATABASE权限问题的解决方法
- JS中toFixed()方法引起的问题如何解决
- window.showModalDialog两次加载问题清除缓存方法
- 轻松解决asp.net用户ASPNET登录失败问题的方法分享
- 调用innerHTML之后onclick失效问题的解决方法
- jQuery-ui引入后Vs2008的无智能提示问题解决方法
- win2003下PHP使用preg_match_all导致apache崩溃问题的解决方法
- Python安装Imaging报错:The_imagingCmoduleisnotinstalled问题解决方法