[PyQt]PyQt5連接SQL Server數據庫,並讀取所有數據庫名稱


  • PyQt5使用QSqlDatabase類連接數據庫。

    • 一般可以使用其靜態方法addDatabase()來創建QSqlDatabase對象。addDatabase()方法有兩個參數,第一個參數是驅動名稱字符串,比如“QODBC”;第二個參數是連接名稱字符串,由用戶自行定義,也可以省略,省略時創建默認數據庫連接。QSqlDatabase對象創建后,可以使用靜態方法database()獲取其引用,其第一個參數是數據庫名稱字符串,第二個參數是布爾值(默認值為True),用於設置是否打開數據庫,如果兩個參數都省略,返回默認數據庫並打開。

    • 創建數據庫對象后需要對其進行設置,相關的設置方法有setHostName()、setPort()、setDatabaseName()、setUserName()、setPassword()等。在使用ODBC驅動時,setDatabaseName()比較重要,它的參數可以是DSN名稱,也可以是數據庫連接字符串。這些設置必須在數據庫打開前完成,否則無效。

    • 數據庫對象設置完畢后,使用open()方法打開,使用close()方法關閉。

  • PyQt5使用QSqlQuery對象操作數據庫。

    • 可使用QSqlQuery(database)構造方法來創建數據庫對象,如果省略參數,則使用默認數據庫連接。

    • 可使用QSqlQuery的exec()方法執行SQL語句。

  • 舉例:連接Sql Server數據庫並獲取所有數據庫名稱。


#導入QtSql模塊
from PyQt5.QtSql import QSqlDatabase, QSqlQuery

#創建數據庫連接並打開(未指定數據庫名,創建默認連接)
db = QSqlDatabase.addDatabase("QODBC")
db.setDatabaseName("Driver={Sql Server};Server=localhost;Database=master;Uid=sa;Pwd=123456")
db.open()

#創建查詢對象(使用默認數據庫連接)
query = QSqlQuery()

#查詢數據庫名(保存在master.sys.databases表中)
query.exec("Select name From sys.databases")

#依次打印數據庫名(系統數據庫除外)
while query.next():
    #獲取名稱字段的值
    name = query.value("name")
    #如果不是系統數據庫,打印之
    if name.lower() not in ('master', 'tempdb', 'model', 'msdb'):
        print(name)

#關閉數據庫
db.close()


免責聲明!

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



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