微軟官方建議的驅動程式有 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 的
沒有留言:
張貼留言