? ? 上次把環(huán)境搞定了浅蚪,把如何安裝第三方包也弄清楚了,pymssql也裝好淋纲,剩下的其實(shí)就比較簡(jiǎn)單的了劳闹,百度下,找了段例子洽瞬。
#coding=utf-8
# sqlserver的連接
import pymssql
class MSSQL:
? ? def __init__(self,host,user,pwd,db):
? ? ? ? self.host = host
? ? ? ? self.user = user
? ? ? ? self.pwd = pwd
? ? ? ? self.db = db
? ? def __GetConnect(self):
? ? ? ? """
? ? ? ? 得到連接信息
? ? ? ? 返回: conn.cursor()
? ? ? ? """
? ? ? ? if not self.db:
? ? ? ? ? ? raise(NameError,"沒(méi)有設(shè)置數(shù)據(jù)庫(kù)信息")
? ? ? ? self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
? ? ? ? cur = self.conn.cursor()
? ? ? ? if not cur:
? ? ? ? ? ? raise(NameError,"連接數(shù)據(jù)庫(kù)失敗")
? ? ? ? else:
? ? ? ? ? ? return cur
? ? def ExecQuery(self,sql):
? ? ? ? """
? ? ? ? 執(zhí)行查詢(xún)語(yǔ)句
? ? ? ? 返回的是一個(gè)包含tuple的list本涕,list的元素是記錄行,tuple的元素是每行記錄的字段
? ? ? ? """
? ? ? ? cur = self.__GetConnect()
? ? ? ? cur.execute(sql)
? ? ? ? resList = cur.fetchall()
? ? ? ? #查詢(xún)完畢后必須關(guān)閉連接
? ? ? ? self.conn.close()
? ? ? ? return resList
? ? def ExecNonQuery(self,sql):
? ? ? ? """
? ? ? ? 執(zhí)行非查詢(xún)語(yǔ)句
? ? ? ? 調(diào)用示例:
? ? ? ? ? ? cur = self.__GetConnect()
? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? self.conn.commit()
? ? ? ? ? ? self.conn.close()
? ? ? ? """
? ? ? ? cur = self.__GetConnect()
? ? ? ? cur.execute(sql)
? ? ? ? self.conn.commit()
? ? ? ? self.conn.close()
def main():
? ? ms = MSSQL(host="LM-PC",user="sa",pwd="12345678",db="example_for_lm")
? ? resList = ms.ExecQuery("SELECT * FROM sample")
? ? print(resList)
if __name__ == '__main__':
? ? main()
? ? python的書(shū)寫(xiě)規(guī)范其實(shí)跟其他語(yǔ)言差不多伙窃,里面的實(shí)現(xiàn)技巧也大同小異菩颖,用"""" 和""""做跨段注釋?zhuān)?做本行注釋?zhuān)茫鹤鲱?lèi)開(kāi)頭。我在sql server 2014里建了個(gè)數(shù)據(jù)庫(kù)"example_for_lm"为障,里面建了個(gè)"sample"的表晦闰,試著怎么查詢(xún)?nèi)缓箫@示出來(lái)放祟。把? ? ms = MSSQL(host="XX-PC",user="sa",pwd="12345678",db="example_for_me")里面的host改為數(shù)據(jù)庫(kù)服務(wù)器主機(jī)名或ip,user改為數(shù)據(jù)庫(kù)用戶(hù)呻右,pwd為密碼跪妥,db為連接后的默認(rèn)數(shù)據(jù)庫(kù),上機(jī)運(yùn)行声滥,成功眉撵。python挺好玩,直接就print結(jié)果集落塑,簡(jiǎn)單粗暴纽疟。搞清楚整個(gè)流程,剩下的只是拼湊ms.ExecQuery后面執(zhí)行的sql語(yǔ)句了憾赁,增刪改記錄什么的污朽,這些百度一下,都不難搞定龙考。
? 注意點(diǎn):
一蟆肆、pymssql主要提供的conn(連接)和cursor(操作)兩個(gè)方法。
二晦款、用完記得把conn關(guān)閉掉 close()颓芭。