PySide数据库类学习QSqlDatabase(-)

  

QSqlDatabase

大钢

函数

·                     def close ()

·                     def commit ()

·                     def connectOptions ()

·                     def connectionName ()

·                     def databaseName ()

·                     def driver ()

·                     def driverName ()

·                     def exec_ ([query=”“])

·                     def hostName ()

·                     def isOpen ()

·                     def isOpenError ()

·                     def isValid ()

·                     def lastError ()

·                     def numericalPrecisionPolicy ()

·                     def open ()

·                     def open (user, password)

·                     def password ()

·                     def port ()

·                     def primaryIndex (tablename)

·                     def record (tablename)

·                     def rollback ()

·                     def setConnectOptions ([options=”“])

·                     def setDatabaseName (name)

·                     def setHostName (host)

·                     def setNumericalPrecisionPolicy (precisionPolicy)

·                     def setPassword (password)

·                     def setPort (p)

·                     def setUserName (name)

·                     def tables ([type=QSql.Tables])

·                     def transaction ()

·                     def userName ()

静态函数

·                                 def addDatabase (driver[, connectionName=QLatin1String(defaultConnection)])

·                                 def addDatabase (type[, connectionName=QLatin1String(defaultConnection)])

·                                 def cloneDatabase (other, connectionName)

·                                 def connectionNames ()

·                                 def contains ([connectionName=QLatin1String(defaultConnection)])

·                                 def database ([connectionName=QLatin1String(defaultConnection)[, open=true]])

·                                 def drivers ()

·                                 def isDriverAvailable (name)

·                                 def registerSqlDriver (name, creator)

·                                 def removeDatabase (connectionName)

细节描述

 PySide.QtSql.QSqlDatabase 类返回一个数据库连接。 PySide.QtSql.QSqlDatabase提供给开发者存取数据库的接口。PySide.QtSql.QSqlDatabase 类根据不同的数据库驱动来为不同的数据库提供访问接口,这些驱动由PySide.QtSql.QSqlDriver类支持。

可以通过静态函数PySide.QtSql.QSqlDatabase.addDatabase()创建一个连接。你可以为一个数据库创建多个连接,每个连接名需要自已定义,如果自已未定义连接名,则使用默认的连接名。

1:连接PostgreSQL 数据库,使用默认连接名
db = QSqlDatabase.addDatabase("QPSQL") 
db.setHostName("acidalia")
db.setDatabaseName("customdb")
db.setUserName("mojito")
db.setPassword("J0a1m8")
ok = db.open()
2:连接Sqlite3数据库,连接名为dbname1
db = QSqlDatabase.addDatabase("QSqlite","dbname1")
ok = db.open()

PySide.QtSql.QSqlDatabase对象建立之后, PySide.QtSql.QSqlDatabase.setDatabaseName()设置数据库名称 ,PySide.QtSql.QSqlDatabase.setUserName() , 设置用户名PySide.QtSql.QSqlDatabase.setPassword()设置密码 ,PySide.QtSql.QSqlDatabase.setHostName()设置服务器主机名 , PySide.QtSql.QSqlDatabase.setPort() 设置数据库服务器端口

然后用PySide.QtSql.QSqlDatabase.open()打开数据库。

PySide.QtSql.QSqlDatabase.addDatabase()用于注册一个数据连接PySide.QtSql.QSqlDatabase.database()会跟据连接名获取这个连接 PySide.QtSql.QSqlDatabase.removeDatabase()会跟据连接名删除这个连PySide.QtSql.QSqlDatabase.contains()用来查看在连接列表中连接是否存PySide.QtSql.QSqlDatabase.tables()得到数据库中的所有表PySide.QtSql.QSqlDatabase.primaryIndex()得到表的主键PySide.QtSql.QSqlDatabase.record()得到表的记录

:

Qsqldatabase.exec()已经过时。使用QSqlQuery.exec()代替

如果驱动程序支持,我们可以使用 PySide.QtSql.QSqlDatabase.transaction() 来开如始一个事务, PySide.QtSql.QSqlDatabase.commit()提交事务PySide.QtSql.QSqlDatabase.rollback()回滚事务。可用PySide.QtSql.QSqlDriver.hasFeature() 检测数据库是否支持事务。

注:当使用事务时,你必须在创建查询之前开始事务。

如果发生错误,可能用 PySide.QtSql.QSqlDatabase.lastError() 获取错误信息。

使用PySide.QtSql.QSqlDatabase.drivers()可以得到可用驱动器名称

可用 PySide.QtSql.QSqlDatabase.isDriverAvailable() 检查指定数据驱动器是否存在。

如果您已经创建了您自己的自定义驱动程序,你必须使用PySide.QtSql.QSqlDatabase.registerSqlDriver() 为之注册。

class PySide.QtSql.QSqlDatabase

class PySide.QtSql.QSqlDatabase(driver)

class PySide.QtSql.QSqlDatabase(other)

class PySide.QtSql.QSqlDatabase(type)

参数:

  • driver  PySide.QtSql.QSqlDriver
  • other  PySide.QtSql.QSqlDatabase
  • type – unicode

目前可用的驱动器类型有:

驱动器类型

描述

QDB2

IBM DB2数据库驱动

QIBASE

Borland InterBase数据库驱动

QMYSQL

MySQL数据库驱动

QOCI

Oracle 数据库驱动

QODBC

用于支持微软数据库的ODBC

QPSQL

PostgreSQL驱动

QSQLITE

SQLite 3或更高

QSQLITE2

SQLite 2

QTDS

Sybase Adaptive Server

其它第三方驱动程序,包括您自己定制的驱动程序可以动态加载

static PySide.QtSql.QSqlDatabase.addDatabase(type[,connectionName=QLatin1String(defaultConnection)])

参数:

  • type – unicode
  • connectionName – unicode

返回类型:

PySide.QtSql.QSqlDatabase

添加一个数据库使用的驱动器类型和连接的名称到数据库连接的列表,如果存在相同的数据库连接名,连接将移除。如果是无效的驱动类型PySide.QtSql.QSqlDatabase.isValid()函数会返回false.如果没指定连接名connectionName则使用默认的名称。

警告  如果连接名存在,侧新建的连接取代旧连接。如果不存,则取代默认连接。

在使用连接前必须初始化,如PySide.QtSql.QSqlDatabase.setDatabaseName() , PySide.QtSql.QSqlDatabase.setUserName() ,PySide.QtSql.QSqlDatabase.setPassword() , PySide.QtSql.QSqlDatabase.setHostName() ,PySide.QtSql.QSqlDatabase.setPort() ,  PySide.QtSql.QSqlDatabase.setConnectOptions() 等之后再调用PySide.QtSql.QSqlDatabase.open()

 在此文中我习惯用“连接”来阐述函数返回的 QSqlDatabase对象

你可能感兴趣的:(GUI,python,PySide,QSqlDatabase,QSql)