当前位置: 代码迷 >> QT开发 >> Qt 数据库有关问题
  详细解决方案

Qt 数据库有关问题

热度:60   发布时间:2016-04-25 04:34:25.0
Qt 数据库问题
我在ubuntu下Qt Creator里写了数据库的创建,.pro里也设置了Qt +=sql,程序编译没错,但是无法打开。运行后显示:“build error!”。刚开始接触数据库,不懂是怎么回事,请高手指点。
#include <QtCore/QCoreApplication>
//#include <QtSql>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QString>
#include <QSqlRecord>
#include <QDebug>
#include <QVariant>

int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);
  //从MySql驱动程序中获取一个MySql数据库
  QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
  db.setHostName("localhost");//指定数据库服务器名称
  db.setDatabaseName("Student"); //连接一个已存在的数据
  db.setUserName("root"); //设置登录名
  db.setPassword("123456"); //设置登录密码

  //打开数据库连接
  if(db.open())
  {
  qDebug()<<"database is established!";
  }
  else
  {
  qDebug()<<"build error!";
  return a.exec();
  }

  QSqlQuery query; //定义一个QSqlQuery 类型的变量

  //创建数据库表,并填充数据
  query.exec(QObject::tr("create table student(snovar char(10) not null primary key,sname varchar(20) not null,sclass varchar(10) not null)"));
  query.exec(QObject::tr("insert into student(sno,sname, sclass) values('2009001','lilei','0901')"));
  query.exec(QObject::tr("insert into student(sno,sname, sclass) values('2009002','lucy','0902')"));
  query.exec(QObject::tr("insert into student(sno,sname, sclass) values('2009003','mike','0903')"));

  //执行数据库查询语句
  query.exec(QObject::tr("select * from student"));
  qDebug() << "sno sname sclass";
  while(query.next())
  {
  qDebug()<<query.value(0).toString()<<" "<<query.value(1).toString()<<" "<<query.value(2).toString();
  }

  return a.exec();
}

------解决方案--------------------
你有没有qt连接mysql的驱动?
------解决方案--------------------
1.你需要自己编译MySQL的数据库驱动,Qt的pulgins里面不自带MySQL数据库驱动的;
2.Qt的源码里有编译MySQL数据库驱动的工程,是在不知道怎么搞,就百度一些有详细的编译方法
------解决方案--------------------
这里是qt下mysql驱动的编译步骤:
http://mobile.51cto.com/symbian-268727.htm
  相关解决方案