IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    解决:pymssql.OperationalError

    admin发表于 2014-08-16 05:21:07
    love 0

    最近新项目要用到mssql,用了pymssql模块连接本地安装的sql server 2005,遇到一个错误,按照网上的很多解决办法都没有解决,浪费了很久的时间,最终解决了,写文记录一下。

    pymssql连接数据库代码:

    import pymssql
    
    conn=pymssql.connect(server='127.0.0.1',port='1433',user='sa',password='xxxx',database='wvsx')
    cur=conn.cursor()
    sqlstr="select scid,algroup,parameter,request from alerts where severity=3"
    cur.execute(sqlstr)
    data=cur.fetchall()
    cur.close()
    conn.close()
    print data      
    

    这段代码遇到错误如下:

    Traceback (most recent call last):
    File “mssqlcon.py”, line 4, in
    conn=pymssql.connect(server=’127.0.0.1′,port=’1433′,user=’sa’,password=’xxxx’,database=’wvsx’)
    File “pymssql.pyx”, line 556, in pymssql.connect (pymssql.c:7990)
    raise OperationalError(e[0])
    pymssql.OperationalError: (20009, ‘Net-Lib error during Unknown error’)

    按照网上的很多解决方案,是说由于编码问题导致的,需要charset指定编码为 GB2312或UTF8来解决,按照网上的很多方法都没有解决,后来尝试修改代码如下,成功解决该问题,贴上正确代码:

    import pymssql
    
    conn=pymssql.connect(server='TEST\SQLEXPRESS',port='1433',user='sa',password='xxxx',database='wvsx')
    cur=conn.cursor()
    sqlstr="select scid,algroup,parameter,request from alerts where severity=3"
    cur.execute(sqlstr)
    data=cur.fetchall()
    cur.close()
    conn.close()
    print data

    将连接语句中的server地址修改成数据库引擎的名称,用本机ip、localhost、127.0.0.1都会产生以上的那个错误。



沪ICP备19023445号-2号
友情链接