微軟官方建議的驅動程式有 2 個 -- pyodbc、pymssql,在本例採用的是 pymssql。
#!/usr/bin/python #-*- coding:utf-8 -*- import pymssql ... ... def main(): conn = pymssql.connect(server='主機IP', user='帳戶名', password='密碼', database='資料庫名') cursor = conn.cursor(as_dict=True) # 啟用以欄位名讀出欄位值 # 查詢 ssql = ("SELECT * FROM 資料表名 \n" " WHERE 1=1 \n" " AND 篩選條件1 \n" " AND 篩選條件2 \n" " AND ...") # SQL 語句以 括弧 包起,就可以寫多列 # 每列最末是讓語句折行 # 除錯時較易閱讀 cursor.execute(ssql) # 方法一: # 一次只取出一筆記錄 row = cursor.fetchone() while row: ff1 = row['欄位名'] ... ... row = cursor.fetchone() # 方法二: # 一次取出所有記錄,並存入 list 中 rows = cursor.fetchall() print("記錄數:"+str(cursor.rowcount)) # 一定要先 fetchall() 才能知道記錄數, 否則傳回值是 -1 print("record count = "+str(len(rows))) # 此法是讀出 list 有多少 element for rr in rows: ff1 = rr['欄位名'] ... ... # 更新 ssql = ("UPDATE 資料表名 \n" " SET 欄位1='值1' \n" " 欄位2='值2' \n" " WHERE 篩選條件") cursor.execute(ssql) conn.commit() # 預設是沒有 auto commit 的
沒有留言:
張貼留言