博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PySide数据库类学习QSqlDatabase(二)
阅读量:7031 次
发布时间:2019-06-28

本文共 5151 字,大约阅读时间需要 17 分钟。

  hot3.png

 

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

参数:

  • driver  
  • connectionName – unicode

返回类型:

 例:带驱动参数的连接

#include "qtdir/src/sql/drivers/psql/qsql_psql.cpp"

con = PQconnectdb("host=server user=bart password=simpson dbname=springfield")

drv = QPSQLDriver(con)

db = QSqlDatabase.addDatabase(drv) #变成新的默认连接

query = QSqlQuery()

query.exec_("SELECT NAME, ID FROM STAFF")

static PySide.QtSql.QSqlDatabase.cloneDatabase(otherconnectionName)

参数:

  • other  
  • connectionName – unicode

参数类型:

克隆其它数据库连接建立新连接,并为这个克隆的新连接起名。这个连接具有母连接相同的配置如设置的服务器主机名,用户名,密码等等。当使用这个连接时必须调用方法找开连接。

PySide.QtSql.QSqlDatabase.close()

关闭数据库连接。拒绝对象的所有请求。

这也将影响本对象副本

PySide.QtSql.QSqlDatabase.commit() 提交事务,成功返回true失败返回false,对有些数据库会发生错误,因为必须在创建查询之前开始事务

PySide.QtSql.QSqlDatabase.connectOptions() 返回连接选项,返回值是unicode字符串

PySide.QtSql.QSqlDatabase.connectionName()返回连接名

static PySide.QtSql.QSqlDatabase.connectionNames()返回一个列表list,包含所有连接的名称

static PySide.QtSql.QSqlDatabase.contains([connectionName=QLatin1String(defaultConnection)])

参数:

connectionName – unicode

返回类型:

PySide.QtCore.bool

检测连接名是否存在

static PySide.QtSql.QSqlDatabase.database([connectionName=QLatin1String(defaultConnection)[,open=true]])

参数:

  • connectionName – unicode
  • open  PySide.QtCore.bool

返回类型:

返回指定数据库连接名的连接(此文中我常把QSqlDatabase称作一种连接呵)。这个连接是以前通adddatabase()创建的,可以指定可选参数决定是否打开此连接。缺省情况下打开数据库。

连接名缺省,将使用系统默认连接名。如果连接名不存在返回无效连接。

可用isOpen()检测。

PySide.QtSql.QSqlDatabase.databaseName()返回数据库名

PySide.QtSql.QSqlDatabase.driver() 返回驱动

PySide.QtSql.QSqlDatabase.driverName() 返回驱动名

static PySide.QtSql.QSqlDatabase.drivers() 返回可用驱动列表(list类型)

PySide.QtSql.QSqlDatabase.exec_([query=""])

参数:

query – unicode

返回类型:

执行数据库SQL语句返回Executes  对象。可检测错误信息,如果查询是空的或无效查询,则lastError()不受影响。

PySide.QtSql.QSqlDatabase.hostName()返回连接的主机名;它可能是空的。

static PySide.QtSql.QSqlDatabase.isDriverAvailable(name) 检测驱动是否存在

PySide.QtSql.QSqlDatabase.isOpen() 检测数据库是否打开

PySide.QtSql.QSqlDatabase.isOpenError() 检测数据库是否打开错误。

PySide.QtSql.QSqlDatabase.isValid() 如果 是有效的返加true

:

db = QSqlDatabase()

print(db.isValid())         # Returns False

db = QSqlDatabase.database("sales")

print(db.isValid())         # Returns True if "sales" connection exists

QSqlDatabase.removeDatabase("sales")

print(db.isValid())         # Returns False

PySide.QtSql.QSqlDatabase.lastError()返回数据库操作失败的最后一个错误信息。

PySide.QtSql.QSqlDatabase.numericalPrecisionPolicy()返回数据库的数值精度

返回类型:

PySide.QtSql.QSqlDatabase.open(user, password)

参数:

  • user – unicode
  • password – unicode

返回类型:

PySide.QtCore.bool

使用给定的用户名和密码打开数据库连接。成功返回true;否则返回false

错误信息可以检索使用lasterror()

这个函数不储存密码。相反,密码直接传递到驱动程序打开连接,然后丢弃。

PySide.QtSql.QSqlDatabase.open() 打开当前数据库。成功返回true;否则返回false

PySide.QtSql.QSqlDatabase.password() 返加数据库密码

PySide.QtSql.QSqlDatabase.port()返回连接的端口号

PySide.QtSql.QSqlDatabase.primaryIndex(tablename) 返回分区表的主索引

参数:

tablename – unicode

返回类型:

PySide.QtSql.QSqlDatabase.record(tablename)返回记录。

static PySide.QtSql.QSqlDatabase.registerSqlDriver(name, creator)

参数:

  • name – unicode
  • creator  

这个函数注册一个新的SQL驱动器。

:

class MyDatabaseDriverCreatorBase(QtSql.QSqlDriverCreatorBase):

    ...

    def createObject(self):

        return MyDatabaseDriver()

mydriver = MyDatabaseDriverCreatorBase()

QtSql.QSqlDatabase.registerSqlDriver("MYDRIVER", mydriver)

db = QtSql.QSqlDatabase.addDatabase("MYDRIVER")

参见

static PySide.QtSql.QSqlDatabase.removeDatabase(connectionName)

从数据库连接表中删除连接

警告 请不要在打开连接时调用该函数,否则会发生资源泄漏

:

#以下是错误的

db = QSqlDatabase.database("sales")

query = QSqlQuery("SELECT NAME, DOB FROM EMPLOYEES", db)

QSqlDatabase.removeDatabase("sales")

PySide.QtSql.QSqlDatabase.rollback() 回滚事务 成功返回true;否则返回false

PySide.QtSql.QSqlDatabase.setConnectOptions([options=""])

参数:

options – unicode

设置数据库选项 .连接必须是打开的,才能调用该函数。空参数是清除选项。

选项格式为:”[option=value]; [option=value],….”  

:

...

# MySQL connection

db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1") # use an SSL connection to the server

if not db.open():

    db.setConnectOptions() # clears the connect option string

    ...

...

# PostgreSQL connection

db.setConnectOptions("requiressl=1")    # enable PostgreSQL SSL connections

if not db.open():

    db.setConnectOptions() # clear options

    ...

...

# ODBC connection

# set ODBC options

db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY;SQL_ATTR_TRACE=SQL_OPT_TRACE_ON")

if not db.open():

    db.setConnectOptions()              # don't try to set this option

    ...

可参看

PySide.QtSql.QSqlDatabase.setDatabaseName(name)设置数据库

对于 QOCI (Oracle) 驱动, 数据库名为 TNS服务名.

对于QODBC驱动,是连接字符串

例:

db = QSqlDatabase.addDatabase("QODBC")

db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=myaccessfile.mdb")

if db.open():

    # success!

    pass

...

PySide.QtSql.QSqlDatabase.setHostName(host)设置服务器主机名

PySide.QtSql.QSqlDatabase.setNumericalPrecisionPolicy(precisionPolicy)

参数:

precisionPolicy  

PySide.QtSql.QSqlDatabase.setPassword(password)设置密码

PySide.QtSql.QSqlDatabase.setPort(p) 设置服务器端口

参数:

p  PySide.QtCore.int

PySide.QtSql.QSqlDatabase.setUserName(name)设置用户名

PySide.QtSql.QSqlDatabase.tables([type=QSql.Tables])返回表名列表,返回值为list

参数:

type  

返回类型:

list of strings

PySide.QtSql.QSqlDatabase.transaction() 开始事务,返回值为true说明成功,false不成功

PySide.QtSql.QSqlDatabase.userName() 返回连接的用户名,它可能是空的

转载于:https://my.oschina.net/zzpzf/blog/107657

你可能感兴趣的文章
iOS-CALayer遮罩效果
查看>>
为什么需要版本管理
查看>>
五、Dart 关键字
查看>>
React Native学习笔记(一)附视频教学
查看>>
记Promise得一些API
查看>>
javascript事件之调整大小(resize)事件
查看>>
20145234黄斐《Java程序设计》第六周学习总结
查看>>
【CLRS】《算法导论》读书笔记(四):栈(Stack)、队列(Queue)和链表(Linked List)...
查看>>
hibernate 和 mybatis区别
查看>>
互联网广告综述之点击率特征工程
查看>>
HDU3421 Max Sum II【序列处理】
查看>>
POJ NOI MATH-7653 地球人口承载力估计
查看>>
iOS UI高级之网络编程(HTTP协议)
查看>>
使用cocoaPods import导入时没有提示的解决办法
查看>>
iOS数据持久化存储之归档NSKeyedArchiver
查看>>
JavaScript面向对象
查看>>
Intellij修改模板代码
查看>>
2.页面布局示例笔记
查看>>
一些老游戏CPU 100%占用的解决方法
查看>>
f5基本介绍
查看>>