qt数据库之 QSqlDatabase类

来源:互联网 发布:软件测试计划书模板 编辑:程序博客网 时间:2024/05/09 03:19
通过一个程序段来说明QSqlDatabase类的使用
#include <QtCore/QCoreApplication>#include <qsqlerror.h>#include <qsqldriver.h>#include <qsqldatabase.h>#include <qstring.h>#include <qdebug.h>#include <qstringlist.h>#include <qsqlrecord.h>#include <qsqlindex.h>#include <iostream>int main(int argc, char *argv[]){QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//添加数据库db.setHostName("localhost"); //设置服务器,异地的话可以写IPdb.setPort(3306);     //端口号db.setUserName("root");     //用户名,根用户就选择rootdb.setPassword("xxx");       //登录密码db.setDatabaseName("xxx");   //数据库的名字,一个服务器中含有多个数据库if(db.open()){std::cout<<"The database open successfully"<<std::endl;}else{std::cout<<"Failed to open the database"<<std::endl;qDebug()<<db.lastError().text()<<endl;}qDebug()<<"database's name is:"<<db.databaseName(); //获取连接的数据库名字qDebug()<<"database's hostname is:"<<db.hostName(); //获取主机名qDebug()<<"database's port is"<<db.port();    //获取端口号qDebug()<<"database's username is"<<db.userName();  //获取用户名qDebug()<<"database's password is"<<db.password();  //获取密码qDebug()<<"driver's name is:"<<db.driverName();     //获取连接用的数据库驱动名字qDebug()<<"connect option is:"<<db.connectOptions();//连接选项qDebug()<<"connect name is:"<<db.connectionName();  //连接名字QStringList drivers = db.drivers();//获取可用驱动std::cout<<"the useful driver as following:"<<std::endl;for (int i=0; i<drivers.size();i++)qDebug()<<drivers.at(i);QStringList tables = db.tables();//获取数据库中表项std::cout<<"the useful tables as following:"<<std::endl;for(int i=0;i<tables.size();i++)qDebug()<<tables.at(i);QSqlRecord record = db.record("testtable");//获取表记录对象int cnt = record.count();std::cout<<"the fields in the record as following"<<std::endl;for(int i=0;i<cnt;i++)qDebug()<<record.fieldName(i);QSqlIndex key = db.primaryIndex("testtable");qDebug()<<key.cursorName();std::cout<<"The numerical precision is:"<<std::endl;//数值精度qDebug()<<db.numericalPrecisionPolicy();    //返回的是枚举类型}

原创粉丝点击