• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > pymssql ntext字段调用问题解决方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了pymssql,pymssql下载,python pymssql,pymssql安装,pymssql.connect等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

下面是调用方式:

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</div></div>

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

SET TEXTSIZE 65536</div></div>

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

</div>

您可能想查找下面的文章:

  • pymssql数据库操作MSSQL2005实例分析
  • pymssql ntext字段调用问题解决方法

相关文章

  • Python3基础之条件与循环控制实例解析
  • Python二维码生成库qrcode安装和使用示例
  • python通过线程实现定时器timer的方法
  • python简单实现基数排序算法
  • 使用grappelli为django admin后台添加模板
  • python getopt详解及简单实例
  • Python3 入门教程 简单但比较不错
  • 分享15个最受欢迎的Python开源框架
  • Pycharm学习教程(1) 定制外观
  • Python 序列化 pickle/cPickle模块使用介绍

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python通过exifread模块获得图片exif信息的方法
    • Python Tkinter简单布局实例教程
    • Python采用raw_input读取输入值的方法
    • Python中的super()方法使用简介
    • python常规方法实现数组的全排列
    • 简化Python的Django框架代码的一些示例
    • Python常用正则表达式符号浅析
    • Python读取一个目录下所有目录和文件的方法
    • 简介Django框架中可使用的各类缓存
    • Windows和Linux下Python输出彩色文字的方法教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有