• [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()
    
    
  • 相关阅读:
    【记录】20060430 11:30:00 本Blog访问量突破100000 !
    ESFramework介绍之(24)―― 日志记录IEsbLogger
    ESFramework介绍之(20)―― 插件自动升级
    ESFramework介绍之(21)-- Tcp组件接口ITcp介绍
    ESFramework介绍之(17)―― 支持漫游用户和跨区域功能请求
    python标准库学习9
    python标准库学习5 bisect — Array bisection algorithm
    C++中四种显示类型转换总结
    BeautifulSoup学习笔记
    jdbc连接数据库(水文)
  • 原文地址:https://www.cnblogs.com/syh6324/p/9491518.html
Copyright © 2020-2023  润新知