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
-
反复确认服务器名称,账户名称,密码,数据库名称(注意不是表名)是否正确。
-
编码错误
可以下载freetds来连接数据库查看连接信息。如果freetds不能连上,说明时数据库没有配置好(防火墙,权限等等之类的,反正不是pymssql的问题)
如果能连接上,看看默认的编码,然后尝试在connect中添加charset=“CP396”参数,(CP396是本机的默认编码)
具体freetds操作: