pymssql ntext字段调用问题解决方法


Posted in Python onDecember 17, 2008

下面是调用方式:

Example script - pymssql module (DB API 2.0)

Example script - _mssql module (lower level DB access)

不过,在我使用过程中,发现,如果表中包含了ntext字段,就会出错,提示

不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用Unicode排序规则的 Unicode 数据发送到客户端。

查了一下,发现官方网站有解释:

Q: What means "Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library"?

A: If you connect to a SQL Server 2000 SP4 or SQL Server 2005, and if you make a SELECT query on a table that contains a column of type NTEXT, you may encounter the following error:
_mssql.error: SQL Server message 4004, severity 16, state 1, line 1:
Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.

It's the SQL Server complaining that it doesn't support pure Unicode via TDS or older versions of ODBC. There's no fix for this error. Microsoft has deprecated DB-Library a long ago, in favor of ODBC, OLE DB, or SQL Native Client. Many new features of SQL 2005 aren't accessible via DB-Library so if you need them, you have to switch away from pymssql or other tools based on TDS and DB-Library.

A workaround is to change the column type to NVARCHAR (it doesn't exhibit this behaviour), or TEXT.

大概意思是,这是因为我们的pymssql使用早期的ODBC函数集来获取数据。后来微软才引入了ntext和nvarchar类型,但Microsoft并没有更新他们的 C-library,所以就没办法支持了。建议:将ntext修改为nvarchar或text.

显然,这不是个好的解决方法,那么是否就没有其他办法了呢?

还好,不用绝望,既然不支持ntext但支持text,那么我们只需要在输出时将ntext转换为text就好了,方法很简单:

SELECT cast ( field_name AS TEXT ) AS field_name

唯一的问题,可能是ntext和text字段所支持的长度不一样,所以也许你还需要设置一下TEXTSIZE

SET TEXTSIZE 65536

当然,你还可以将字段设置的大一点,这个就看你的需要了。

Python 相关文章推荐
python抓取豆瓣图片并自动保存示例学习
Jan 10 Python
Python 多线程Threading初学教程
Aug 22 Python
python生成excel的实例代码
Nov 08 Python
微信跳一跳游戏python脚本
Apr 01 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
python3.4爬虫demo
Jan 22 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
Python将json文件写入ES数据库的方法
Apr 10 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
Python中免验证跳转到内容页的实例代码
Oct 23 Python
python中pow函数用法及功能说明
Dec 04 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
python 图片验证码代码
Dec 07 #Python
下载糗事百科的内容_python版
Dec 07 #Python
python 参数列表中的self 显式不等于冗余
Dec 01 #Python
Python GAE、Django导出Excel的方法
Nov 24 #Python
Python类的基础入门知识
Nov 24 #Python
Python 连连看连接算法
Nov 22 #Python
python sqlobject(mysql)中文乱码解决方法
Nov 14 #Python
You might like
php登陆页的密码处理方式分享
2013/10/14 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
JS二分查找算法详解
2017/11/01 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
Python字符串格式化输出方法分析
2016/04/13 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
成考报名单位证明范本
2014/01/16 职场文书
节水倡议书范文
2014/04/15 职场文书
品酒会策划方案
2014/05/26 职场文书
网络妈妈观后感
2015/06/08 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
mysq启动失败问题及场景分析
2021/07/15 MySQL
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL