python链接sql server报错

python链接sql server报错

报错原因:pymssql._pymssql.OperationalError: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed

代码在同事电脑和自己的旧电脑上都没问题,结果换了新电脑,就报错了。

尝试了类似的报错,说要带上编码,结果发现带上编码后,返回的是None(同事不带编码可正常运行,带上编码也是返回None)
有朋友说可能是新电脑缺少某些配置,具体咱也不会查呀。
现在绝望了,实在不知道是咋回事了。
代码如下:
from email import charset
import pymssql

#建立链接
coon = pymssql.connect("host", 用户名", "密码", "数据库名")
if coon:
print('连接成功')
#创建游标
cursor = coon.cursor()
#sql命令
sql = "SELECT TOP 1 * FROM cems_project WHERE object='用例1自动化' ORDER BY lastUpdateTime DESC"
#拿取数据
cursor.execute(sql)
data = cursor.fetchone()
print(data)
else:
print('连接失败')

端口报错吧 链接获取ip的过程是动态的过程 直接把报错头粘贴放博客搜 应该可以解决

什么版本的sever sql ,之前做课设也遇到这个问题但是现在sql没用到就卸载了,不清楚你这是什么问题,可以具体看一下这个文章,要是还不能解决的话,我到时候联系你看看具体是什么情况,文章链接:https://www.cnblogs.com/xifengmo/p/10993287.html%EF%BC%8C

参考:

用以下exec_sql_server(sql)函数试下

def exec_sql_server(sql):
    server = '10.10.80.124:1433'
    database = 'jz_doc_system'
    user = 'sa'
    password = 'atue@123'
    try:
        print(f'查询SQL:{sql}')
        db = pymssql.connect(server, user, password, database, charset='utf8')  # 连接到sql server数据库 charset='utf8'
        cur = db.cursor()  # 获取该数据库的游标
        cur.execute(sql)  # 执行语句
 
    except Exception as e:
        print(e)
 
    else:
        result = cur.fetchall()  # get result
        db.commit()  # 一定要commit,pymssql包默认是需要手动commit的,否则事务不生效
        db.close()  # 关闭数据库连接
        return result
 

```