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('连接失败')
什么版本的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
```