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