Python连接操作数据库(SqlServer)


Python连接数据库需要导入:

import pymssql #sqlserver
import pymysql #mysql 

以下按sqlserver操作:pymssql examples — pymssql 2.1.1.dev documentation

# 以下是一次完整的sql提交
try#连接数据库
    connect = pymssql.connect(DBServer, DBUser, DBPwd, DBTable) #服务器名,账户,密码,数据库名
    #创建游标
    cursor = connect.cursor()   #python里的sql语句通过cursor执行
    cursor.execute(sql)   #执行sql语句
    connect.commit()  #提交sql,将autocommit置True可以不用此操作
    cursor.close()   #关闭游标
    connect.close()  #断开连接
except Exception as r:
    print('DBError:%s' %r)
##################################################   
#有返回值的情况,select
。。。
cursor.execute(sql)
row = cursor.fetchone()  #读取查询结果,
while row:              
    print(row)   #输出结果
    row = cursor.fetchone()
。。。# 不用commit了

# 或者
rows = cursor.fetchall()
for row in rows
    print(row)
############
# 不要commit,不然没有数据,fecthall需要用rows存下来,不要偷懒。

 

连接数据库时报错

DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.2.205)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed

  1. 反复确认服务器名称,账户名称,密码,数据库名称(注意不是表名)是否正确。

  2. 编码错误

    可以下载freetds来连接数据库查看连接信息。如果freetds不能连上,说明时数据库没有配置好(防火墙,权限等等之类的,反正不是pymssql的问题)

    如果能连接上,看看默认的编码,然后尝试在connect中添加charset=“CP396”参数,(CP396是本机的默认编码)

    具体freetds操作:FreeTDS — pymssql 2.1.4 documentation

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM