现在的位置: 首页 > 综合 > 正文

QSqlDatabase类笔记

2013年09月12日 ⁄ 综合 ⁄ 共 1640字 ⁄ 字号 评论关闭

QSqlDatabase类 用于连接数据库的类,创建、设置、打开、关闭、删除
QSqlDatabase提供了对数据库操作的接口,QSqlDatabase类的实例表示了一个数据库连接。
创建数据库
    通过调用addDatabase()创建连接,用户通过对QSqlDatabase 实例对数据库操作。
    db=QSqldatabase::addDatabase("type","connectionName")
    type主要有以下几种数据库驱动:QMYSQL(最常用)QODBC(对ODBC操作)QPSQL,QSQLITE等
    connectionName是数据库连接名,并不是数据库的名字

设置连接参数:
    数据库名setDatabaseName(),用户名setUserName(),密码setPassword(),主机名setHostName(),端口setPort(),连接设置setConnectOptions()

关闭数据库
    close()
删除数据库
静态公有成员函数removeDatabase(cconst QString & connectionNameonst QString & connectionName),需要先关闭再删除

成员函数详细说明
静态公有成员函数(调用是 类名::函数)addDatabase(const QString & type, const QString & connectionName =QLatin1String( defaultConnection ))
    添加数据库连接,type是选择的数据库的驱动方式,connectionName是数据库名,如果该数据库已被打开则将该原来的连接删除(新的连接取代)。如果type没有给定,则isValid()返回错误;如果connectionName没有给定则连接默认的数据库。

静态公有成员函数cloneDatabase(const QSqlDatabase & other, const QString & connectionName)
    把other所连的数据库以connectionName名存储,但未被打开,使用前需open()

open()
    打开连接的数据库
open ( const QString & user, const QString & password )

实例:
#include<QApplication>
#include<QtSql>
#include<QDebug>

int main(int argc,char*argv[])
{
    {
    QSqlDatabase db;
    db=QSqlDatabase::addDatabase("QMYSQL","trial1");
    qDebug()<<db.connectionName();//输出默认的数据库名

     qDebug()<<QSqlDatabase::drivers();//输出可用的数据库驱动
    qDebug()<<db.databaseName();//默认的数据库名

    //设置名字,主机名,用户名,密码
    db.setDatabaseName("trial");
    db.setHostName("localhost");
    db.setUserName("root");
    db.setPassword("");
    bool t=db.open();
    if(!t)//打开数据库
        {qDebug()<<" can not open the database"<<db.databaseName();}
    db.close();//关闭数据库
    if(!db.isOpen())//判断数据库是否被打开
        {qDebug()<<"close the database"<<db.databaseName();}
    }
     QSqlDatabase::removeDatabase("trial1");//删除连接数据库
}

抱歉!评论已关闭.