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操作:
