Python 3.6 連接mssql數據庫(pymssql 方式)


剛開始學習python ,之前學習一直是用mysql數據庫,一直連接成功,今天項目需要連接mssql數據一直測試不成功,搞了一天python3.6連接mssql2016 成功,記錄一下:

 

在cmd下pip install pymssql  提示缺少Visual C++14 ,網上下載下來安裝,提示卸載vs ,這個玩的比較大,其實原因不在這里,網上查看文章先下載pymssql-2.1.3-cp36-cp36m-win_amd64.whl 再初始化:pip install E:\pymssql-2.1.3-cp36-cp36m-win_amd64.whl 

 

在pycharm 里面也可以看到了    File->Settings->Project:項目名稱->Project Interpreter 

 

初始化包成功后就可以寫代碼了,如下:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import pymssql


class MSSQL(object):
    '''
    對pymssql的簡單封裝
    pymssql庫,該庫到這里下載:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql
    使用該庫時,需要在Sql Server Configuration Manager里面將TCP/IP協議開啟

    用法:
    '''

    def __init__(self,host,user,pwd,db):
        self.host=host
        self.user=user
        self.pwd=pwd
        self.db=db

    def GetConnect(self):
        '''
        得到鏈接信息
        :return:
        '''
        if not self.db:
            raise (NameError,"沒有設置數據庫信息")
        self.connect=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
        cur=self.connect.cursor()
        if not cur:
            raise (NameError,"鏈接數據庫失敗")
        else:
            return cur

    def ExecQuery(self,sql):
        '''
        執行查詢語句
        返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段

        調用示例:
                ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
                resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")
                for (id,NickName) in resList:
                    print str(id),NickName
        :param sql: sql語句
        :return:
        '''
        cur=self.GetConnect()
        cur.execute(sql)
        resList = cur.fetchall()

        #查詢完畢后必須關閉連接
        self.connect.close()
        return resList

    def ExecNonQuery(self, sql):
        """
        執行非查詢語句

        調用示例:
            cur = self.__GetConnect()
            cur.execute(sql)
            self.conn.commit()
            self.conn.close()
        """
        cur = self.__GetConnect()
        cur.execute(sql)
        self.connect.commit()
        self.connect.close()

def test():
        ## ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
        ## #返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段
        ## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")

        ms = MSSQL(host="172.16.2.248", user="sa", pwd="qazwsx", db="cytest")
        resList = ms.ExecQuery("SELECT * FROM t_user")
        print(resList)


if __name__ == '__main__':
    test()

 

 

python 連接各類主流數據庫簡單示例:http://blog.csdn.net/a87b01c14/article/details/51546727

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM