日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python使用pyodbc連接sqlserver_python

作者:羅漢松駐扎的工作基地 ? 更新時間: 2023-04-14 編程語言

用python操作ms?sqlserver,有好幾種方法:

(1)利用pymssql (2)利用pyodbc

這里講import?pyodbc來操作sql?server?database。

pyodbc是Python包,使用ODBC驅動器來連接SQL Server數據庫,其中pyodbc的基本類型是Connection,Cursor、Row

其中,Connection表示客戶端和數據庫的連接,并用于提交事務;

Cursor表示向數據庫發送的查詢請求;

Row表示獲取的結果集。

首先查看自己電腦有沒有安裝sql?server對應的odbc,在控制面板中可以查:

控制面板-->管理工具-->數據源(ODBC)

我電腦的版本是??ODBC Driver 11 for SQL Server?

不同電腦安裝了不同的sql?server版本,可能driver不同,有可能是12、13、19等等版本。

然后利用powershell下載安裝pyodbc包,如圖輸入

pip install pyodbc

下載成功之后,輸入看看有沒有成功安裝package

pip list

成功安裝package之后,就可以開始編輯python代碼了。

代碼如下(兩個文件DBHelp_SqlServer.py??和?testConn.py):

文件1(DBHelp_SqlServer.py)

import pyodbc
 
 
class MSSQL:
    def __init__(self, IP, UserID, Pwd, db):
        self.host=IP;
        self.user=UserID;
        self.password=Pwd;
        self.dbname=db;
 
    def __getConnect(self):
        if not self.dbname:
            raise(NameError,"db name undefine error")
        else:
            connSTR="Driver={ODBC Driver 11 for SQL Server};SERVER=%s,1433;DATABASE=%s;UID=%s;PWD=%s" % (self.host, self.dbname, self.user, self.password)
            ##example: Driver={ODBC Driver 11 for SQL Server};SERVER=127.0.0.1,1433;DATABASE=MyTestDB;UID=sa;PWD=Abc123
            self.conn = pyodbc.connect(connSTR);
            cu= self.conn.cursor();
        if not cu:
            raise(NameError,"db connect error");
        else:
            return cu;
 
    def ExecuteTableQuery(self,selectSql):
        cuu = self.__getConnect();
        selectRows = cuu.execute(selectSql);
        resList=selectRows.fetchall();
        self.conn.close();
        return resList;
 
    def ExecuteNonQuery(self,sql):
        cuu = self.__getConnect();
        cuu.execute(sql);
        self.conn.commit();
        self.conn.close();
 
    def PrintODBCDrivers(self):
        print(pyodbc.drivers() );
 
 

文件2(testConn.py)

import DBHelp_SqlServer
 
 
db=DBHelp_SqlServer.MSSQL(IP="127.0.0.1", UserID="sa", Pwd="Abc123", db="MyTestDB");
 
sqlinsert="insert into TeacherTable(TName,TClass) values('呂老師','三年級')" 
db.ExecuteNonQuery(sql=sqlinsert);
 
sql1="select * from TeacherTable";
datatable = db.ExecuteTableQuery(selectSql=sql1);
print(datatable);

運行之后就能看到insert?sql和select?sql的結果了。

備注:如果使用pymssql,可能會出現中文亂碼的問題,我搞不懂怎么解決。而使用pyodbc就沒出現亂碼。哪個簡單用哪個。

原文鏈接:https://blog.csdn.net/MFCdestoryer/article/details/128903053

欄目分類
最近更新