? ? 上次把環(huán)境搞定了,把如何安裝第三方包也弄清楚了,pymssql也裝好,剩下的其實就比較簡單的了,百度下,找了段例子。
#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,"沒有設(shè)置數(shù)據(jù)庫信息")
? ? ? ? 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ù)庫失敗")
? ? ? ? else:
? ? ? ? ? ? return cur
? ? def ExecQuery(self,sql):
? ? ? ? """
? ? ? ? 執(zhí)行查詢語句
? ? ? ? 返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段
? ? ? ? """
? ? ? ? cur = self.__GetConnect()
? ? ? ? cur.execute(sql)
? ? ? ? resList = cur.fetchall()
? ? ? ? #查詢完畢后必須關(guān)閉連接
? ? ? ? self.conn.close()
? ? ? ? return resList
? ? def ExecNonQuery(self,sql):
? ? ? ? """
? ? ? ? 執(zhí)行非查詢語句
? ? ? ? 調(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的書寫規(guī)范其實跟其他語言差不多,里面的實現(xiàn)技巧也大同小異,用"""" 和""""做跨段注釋,用#做本行注釋,用:做類開頭。我在sql server 2014里建了個數(shù)據(jù)庫"example_for_lm",里面建了個"sample"的表,試著怎么查詢?nèi)缓箫@示出來。把? ? ms = MSSQL(host="XX-PC",user="sa",pwd="12345678",db="example_for_me")里面的host改為數(shù)據(jù)庫服務(wù)器主機(jī)名或ip,user改為數(shù)據(jù)庫用戶,pwd為密碼,db為連接后的默認(rèn)數(shù)據(jù)庫,上機(jī)運行,成功。python挺好玩,直接就print結(jié)果集,簡單粗暴。搞清楚整個流程,剩下的只是拼湊ms.ExecQuery后面執(zhí)行的sql語句了,增刪改記錄什么的,這些百度一下,都不難搞定。
? 注意點:
一、pymssql主要提供的conn(連接)和cursor(操作)兩個方法。
二、用完記得把conn關(guān)閉掉 close()。

