译者注:译者博客(http://blog.csdn.net/lin_strong),转载请保留这条。此为pymssql模块version2.1.4官方文档的翻译,仅供学习交流使用,请勿用于商业用途。

模块级符号

pymssql. version
Unicode常量表示的pymssql版本。如:u"2.1.1", u"2.2.0"
pymssql.VERSION
元组形式的pymssql版本,这样在程序中更容易处理(转换、比较)。如:(2, 1, 1), (2, 2, 0)
这是版本 2.2.0. 中新加的特性。
pymssql. full_version
Unicode常量表示的pymssql版本,不同的是,它包括了后缀(PEP 440)。如:u"2.1.0.dev2", u"2.2.0.dev"

以下是DB-API 2.0规范中要求的常量:

pymssql.apilevel
‘2.0’ – pymssql 尽可能地遵从 DB-API 2.0.
pymssql.paramstyle
‘pyformat’ – pymssql 使用扩展的python格式代码.
pymssql.threadsafety
1 – 线程可以共享模块, 但不能共享连接。

函数

pymssql.connect(server=’.’, user=None, password=None, database=’’, timeout=0, login_timeout=60, charset=‘UTF-8’, as_dict=False, host=’’, appname=None, port=‘1433’, conn_properties=None, autocommit=False, tds_version=None)
一个构造器(Constructor),用于创建到数据库的链接。返回一个Connection对象。

注意:大部分情况下你应该会更倾向于使用关键字参数,而不是位置确定的参数。

参数说明:

参数名(类型) 说明
server (str) 数据库主机
user (str) 用于连接的数据库用户
password (str) 用户的密码
database (str) 链接初始化的数据库。默认情况下,SQL服务器会选择设置中特定用户所对应的默认数据库。
timeout (int) 用秒表示的查询超时时间,默认为0(无超时)
login_timeout (int) 用秒表示的连接与登陆超时时间,默认为60
charset (str) 连接到数据库所使用的字符集
as_dict (bool) 是否每一行作为字典而不是元组返回。你可以使用基于0的索引或者使用名字来访问列。
host (str) 你想要连接的数据库主机或实体。如:
r’.\SQLEXPRESS’ –本地机器上的SQLEXPRESS实体(仅Windows)
r’(local)\SQLEXPRESS’ – 同上(仅Windows)
‘SQLHOST’ – 默认端口上的默认实体(仅Windows)
‘SQLHOST’ – 在freetds.conf中设置的指定端口上的指定实体 (仅Linux/*nix)
‘SQLHOST,1433’ – 指定主机上的指定TCP端口
’SQLHOST:1433’ – 同上
’SQLHOST,5000’ – 如果你已经设置了一个实体在端口5000进行监听
’SQLHOST:5000’ – 同上
’.’ (本地主机)默认设置,如果没有指定host。
appname (str) 设置链接使用的应用名
port (str) 连接到服务器所使用的TCP端口号
conn_properties 当链接建立时发送给服务器的SQLqueries。可以是一个字符串或者另一类可迭代的字符串组。默认值:见_mssql.connect()
autocommit (bool) 是否使用默认自动提交模式
tds_version (str) 使用的TDS协议版本
警告:
目前,设置timeout或login_timeout会有一个过程级的影响,因为用于实现超时的FreeTDS db-lib API函数是全局效果的。

版本2.1.1中新特性: 能连接Azure。
版本2.1.1中新特性: conn_properties参数。
版本2.1.1中新特性: autocommit参数。
版本2.1.2中新特性: tds_version参数。
版本2.2.0的变化: 参数tds_version的默认值变为了None。在版本2.1.2中,其默认值为’7.1’。

警告:
参数tds_version的默认值为None。这意味着:
你不能依赖于旧的默认值’7.1’。现在,你得做以下其中一件事:
· 通过传递值给这个参数直接指定它的值,或者
· 使用FreeTDS提供的方法配置它
可能这看起来很麻烦,但同时意味着你可以在Python代码中完整地配置链接的特性,而不用再管freetds.conf了。在版本2.1.1及之前版本,没法控制TDS协议版本;在版本2.1.2中,可以设置它。如果没有指定的话,则使用版本7.1。
警告:
FreeTDS在版本0.95中添加了对TDS协议版本7.3的支持。如果你知道由pymssql使用的底层FreeTDS的版本是0.91的话,要小心不要要求TDS7.3,因为这即不会引发任何错误也没有机制阻止你传递这个无效值。
警告:
FreeTDS在版本0.95中添加了对TDS协议版本7.3的支持。如果你知道由pymssql使用的底层FreeTDS的版本更旧的话,要小心不要要求TDS7.3,因为这即不会引发任何错误也没有机制阻止你传递这个无效值。

pymssql.get_dbversion()
封装了DB库的dbversion()函数,这个函数会以字符串形式返回FreeTDS的版本(DB-Lib的实际版本)。如:“freetds v0.95”。
不幸的是:
1 )返回的值没有说明更小的修订号(如:v0.95.50)
2 )它的数据类型使得它难以比较或编程处理
3 )在FreeTDS发行历史中,它并没有被坚持更新
这是pymssql对于DB-API 2.0的扩展
pymssql.set_max_connections(number)
设置允许同时连接到数据库的链接的最大数量。默认是25。
这是pymssql对于DB-API 2.0的扩展
pymssql.get_max_connections()
获取允许同时连接到数据库的链接的最大数量。
这是pymssql对于DB-API 2.0的扩展

pymssql.set_wait_callback(wait_callback_callable)
版本2.1.0. 中的新特性

这个特性使得pymssql能用于协作的多任务系统,使其在等待服务器响应时调用一个回调函数。

传递的可调用的回调函数应该接受一个参数:连接到服务器的网络socket的文件描述符/handle,所以其签名应该是这样的

def wait_callback_callable(read_fileno):#...pass

它的代码体应该调用你所使用的多任务框架的适当API,以使得当socket中没有输入数据时,当前greenlet主动交出CPU时间。

这是pymssql对于DB-API 2.0的扩展

Connection类

class pymssql.Connection(user, password, host, database, timeout, login_timeout, charset, as_dict)
这个类代表了一条MS SQL 数据库链接。你可以通过调用构建器pymssql.connect()来创建这个类的一个实例。

属性

这个类没有有用的属性和数据成员。

方法

Connection.autocommit(status)
status是一个boolean值。这个方法返回autocommit模式是否启用
默认的,autocommit模式是关闭的,这意味着如果要在数据库中保存变化的数据,必须明确地提交每个会话。
你可以启用autocommit模式,这样,每个操作一旦成功就会提交自身。
这是pymssql对于DB-API 2.0的扩展
Connection.close()
关闭链接。
Connection.cursor()
返回一个Cursor对象,这可以用于发送请求并从数据库获取结果。
Connection.commit()
提交当前会话。你必须调用这个方法来保存你的数据,如果autocommit为默认的False。
Connection.rollback()
回滚当前会话。

Cursor类

class pymssql.Cursor
这个类代表一个Cursor(Python DB-API规范的术语),其用于向数据库发送请求并获取结果。通过调用一个打开的Connection链接对象的cursor()方法来创建Cursor实例。

属性

Cursor.rowcount
返回上一次操作中受影响的行数。对于SELECT语句,只有在所有行都被fetched后它才会返回有用的信息。
Cursor.connection
这是对于DB-API规范的扩展。返回对创建cursor的Connection对象的引用。
Cursor.lastrowid
这是对于DB-API规范的扩展。返回上一个插入的行的标识值。如果之前的操作没涉及向带有标识列的表中插入行,则返回None。
Cursor.rownumber
这是对于DB-API规范的扩展。返回在当前结果集中,基于0的当前索引值。

方法

Cursor.close()
关闭cursor。之后这个cursor就不可用了。
Cursor.execute(operation)
Cursor.execute(operation, params)
operation是一个字符串;而params,如果用到了的话,是一个简单的值、元组、字典或None。
对数据库执行operation,可能会用给的值替换占位符。比起手动连接字符串,这应该是更受欢迎的创建SQL命令的方法,手动连接字符串有受到SQL注入式攻击的风险。这个方法的格式化方式接近于Python内建的方式。但是,由于格式化和类型转换是内部进行的,只支持%s和%d占位符。这两个占位符在功能上与Python内建的是一样的。
如果你给params传递的是字典的话,则支持关键字占位符。
如果你调用了只带一个参数的execute(),%符号就丧失了它的特殊意义,这样你就可以如平常一样在查询字符串中使用它,比如用在LIKE操作符中。
在调用execute()后,你必须调用Connection.commit(),否则数据不会被存到数据库中。如果你想要自动完成这件事的话,你也可以设置connection.autocommit。这个行为是DB-API要求的,如果你不喜欢的话,那就改用_mssql模块吧。
Cursor.executemany(operation, params_seq)
operation是一个字符串;而params_seq是一个元组的序列(比如一个列表)。为参数序列中的每一个元素重复执行operation这一数据库操作。
Cursor.fetchone()
获取查询结果的下一行,返回一个元组,或者如果as_dict为True的话返回一个字典。如果没有更多可获取的数据了,返回None。如果前一个对execute*() 的调用没有产生任何结果集或者还没有提交调用,则抛出OperationalError (PEP 249#operationalerror)。
Cursor.fetchmany(size=None)
获取下一批查询结果,返回一个元组的列表,或者如果as_dict为True的话返回一个字典。如果没有更多可获取的数据了,返回一个空列表。你可以使用size参数调整之后每一批获取的行数,这个值会一直保留使用。如果前一个对execute*() 的调用没有产生任何结果集或者还没有提交调用,则抛出OperationalError (PEP 249#operationalerror)。
Cursor.fetchall()
获取查询结果的所有剩余行,返回一个元组的列表,或者如果as_dict为True的话返回一个字典。如果没有更多可获取的数据了,返回一个空列表。如果前一个对execute*() 的调用没有产生任何结果集或者还没有提交调用,则抛出OperationalError (PEP 249#operationalerror)。
Cursor.nextset()
这个方法使cursor跳到下一个可得的结果集,抛弃当前集的所有剩下的行。如果有下一个结果集的话,返回True,否则返回None。
Cursor. iter()
Cursor.next()
这个方法实现了Python迭代器协议。很可能你不会直接,而是间接使用迭代器调用它。
这是pymssql对于DB-API 2.0的扩展
Cursor.setinputsizes()
Cursor.setoutputsize()
这两方法啥都不做,这是DB-API规范同意的。

异常

exception pymssql.StandardError
异常继承树的根。
exception pymssql.Warning
在重要的警告时抛出,如当插入时发生数据截断。StandardError的子类。
exception pymssql.Error
其他所有错误异常的基类。你可以用它来通过一个except语句捕获所有错误。StandardError的子类。
exception pymssql.InterfaceError
当发生与数据库接口相关而不是数据库本身相关的错误时抛出。Error的子类。
exception pymssql.DatabaseError
当发生与数据库相关的错误时抛出。Error的子类。
exception pymssql.DataError
当发生与处理数据相关的错误时抛出,如除以0、数值超出范围等。DatabaseError的子类。
exception pymssql.OperationalError
当发生与数据库运作相关但不应该是由程序员操作导致的错误时抛出,如意外的连接中断、没有找到数据源名字,无法处理一个会话、处理过程中的内存分配错误等。DatabaseError的子类。
exception pymssql.IntegrityError
当数据库的关系完整性受到影响时抛出,如外键检查失败。DatabaseError的子类。
exception pymssql.InternalError
当数据库遇到内部错误时抛出,如cursor不再有效、会话不同步。DatabaseError的子类。
exception pymssql.ProgrammingError
当发送编程错误时抛出,如没有发现表或表已存在、SQL语法错误、指定了错误数量的参数等。DatabaseError的子类。
exception pymssql.NotSupportedError
当使用了数据库不支持的方法或数据库API,如在一个不支持会话或者会话已关闭的链接上要求rollback()。DatabaseError的子类。
exception pymssql.ColumnsWithoutNamesError
当打开链接时指定as_dict=True,然后调用 Cursor.execute() 时发现结果中没有列名时抛出。InterfaceError的子类。
注意:
ColumnsWithoutNamesError不是PEP-249授权的异常,而是一个pymssql扩展。

python pymssql - pymssql模块官方文档的翻译相关推荐

  1. python的pymssql模块的报错_python pymssql - pymssql模块官方文档的翻译

    译者注:译者博客(http://blog.csdn.net/lin_strong),转载请保留这条.此为pymssql模块version2.1.4官方文档的翻译,仅供学习交流使用,请勿用于商业用途. ...

  2. re python 引擎_转 python内置正则表达式(re)模块官方文档简要中文版

    学习正则表达式,最好的教材是<精通正则表达式>,而要精通NFA正则表达式,使用了NFA引擎的python正则模块官方文档就是最好的教材,大部分的功能同样在其他使用传统NFA引擎的正则包里受 ...

  3. CUDA10.0官方文档的翻译与学习之编程接口

    目录 背景 用nvcc编译 编译工作流 二进制适配性 ptx适配性 应用适配性 C/C++适配性 64位适配性 cuda c运行时 初始化 设备内存 共享内存 页锁主机内存 可移植内存 写合并内存 映 ...

  4. Pytorch官方文档英语翻译

    深度学习Pytorch-Pytorch官方文档英语翻译 1. a-e 1.1 span 跨度 1.2 blended 混合的 1.3 criterion 标准 1.4 deprecated 弃用的 1 ...

  5. Spring官方文档中文翻译

    准备做个Spring官方文档全翻译专栏以下是大目录, 本翻译是基于Spring5 Core Technologies

  6. ElasticSearch Java High level Rest Client 官方文档中文翻译(一)

    ElasticSearch Java High level Rest Client 官方文档中文翻译 一 纯粹记录自己在看官网的es rest high level api 时的翻译笔记,可以对照着官 ...

  7. 【开源项目推荐】Android Jetpack 官方文档 中文翻译

    Jetpack 是 Android 软件组件的集合,使您可以更轻松地开发出色的 Android 应用.这些组件可帮助您遵循最佳做法.让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的 ...

  8. Python 3.7.1 官方文档 总结

    Python 3.7.1 1.一些概念 2.小用法 2.1 迭代器: 2.2 生成器 3.数据结构 3.1 字符串 3.2 列表 3.2.1 列表方法 list.append(x) list.exte ...

  9. Hyperledger-indy 官方文档人工翻译

    博客内容为Hyperledger-indy官方部署文档的中文翻译,翻译内容系原创,转载注明来源 [说明] (1)[撰写目的] Hyperledger-indy的中文资料较少,希望能为初次接触Hyper ...

最新文章

  1. oracle查询语句注意事项:
  2. Android --- ImageView的scaleType属性讲解
  3. Python -- post方式上传文件
  4. Almost Arithmetic Progression
  5. 为什么git的“ pull request”不称为“ push request”?
  6. FFA 2021 专场解读 - 开源解决方案 / 流批一体
  7. numpy.mgrid的用法图解
  8. 3.cesium雨、雪、雾天气场景效果
  9. javaweb站点根目录和web应用根目录应用场景
  10. R语言 dbWriteTable 写入数据库为空和乱码问题
  11. Solr6适配自定义升级版mmseg4j
  12. 深度学习-lecture2(图像分类)李飞飞计算机视觉
  13. 微博登录账号密码终于又找回来了。Mark一下
  14. 好玩的ES--第三篇之过滤查询,整合SpringBoot
  15. 死锁产生和避免及计算题
  16. 设计模式(四) 观察者模式
  17. MSM261S4030H0R
  18. 数理逻辑蕴含_数理逻辑(1)——命题逻辑的基本概念
  19. 章鱼保罗预测世界杯决赛,荷兰将会夺冠,有图为证
  20. 下列哪个不属于Hadoop的特性?

热门文章

  1. 零知识证明经典文献大汇总(可收藏)
  2. 浙江大学计算机科学博士生导师名单,浙江大学计算机科学技术学院博士研究生导师简介:孙建伶...
  3. 【ARM】新唐NUC977移植WK2124驱动
  4. require https rid: 5f30fa30-76a72ecb-495cddc1
  5. 做程序员必须懂英语吗?_您必须懂英语才能成为程序员吗?
  6. java图书管理系统目的_java_图书管理系统java版,本文的目的就是通过图书管理 - phpStudy...
  7. public,static,private,protected的用法
  8. The Tomcat server configuration at\...详细步骤
  9. 算法大师孙膑--田忌赛马(转自labuladong)
  10. 五大主流浏览器的内核,前端在IE浏览器中常见的兼容问题