我在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