源码如下:
#include "widget.h"
#include "ui_widget.h"
#include
#include
#include
#include
#include
#include
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.1.102"); //远程主机IP地址
db.setDatabaseName("test_db1"); //通过mysql-workbench创建一个数据库
db.setUserName("root");
db.setPassword("sy31214"); //根据你自己设置远程登陆的密码修改
if(!db.open())
QMessageBox::information(this,tr("worning"),tr("Opendatabase faiLED!"));
else
QMessageBox::information(this,tr("worning"),tr("Opendatabase succeed!"));
QSqlQueryquery;
query.exec("create table hello(id bigint not nullauto_increment,name varchar(255),age bigint,primary key (id))");
query.exec("insert intohello(name, age) values('xiaoxi', 18)");
query.exec("insert into hello(name, age) values('xiaonan',19)");
query.exec("insert into hello(name, age) values('xiaobei',20)");
query.exec("insert into hello(name, age) values('xiaodong',21)");
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("select * from hello");
model->setHeaderData(0,Qt::Horizontal, "id");
model->setHeaderData(1, Qt::Horizontal, "name");
model->setHeaderData(2, Qt::Horizontal, "age");
QTableView *view = new QTableView(this);
view->resize(400,200);
view->setWindowTitle("QSqlQueryModel");
view->setModel(model);
view->show();
db.close();
}
程序编译结果如图所示:
执行命令,将mysql_test拷贝到NFS共享目录:
cd mysql_test /nfsshare
7.将Mysql移植到EVB-335X-II
1)给开发板上电拷贝文件
开发板上电后,执行命令:
ifconfig eth0 192.168.1.112
mount -t nfs 192.168.1.102:/nfsshare /mnt -o nolock
2)拷贝QT MySql驱动以及Mysql客户端库文件到QT的plugins目录
cp /mnt/libsqlmysql.so /usr/lib/qt/plugins/sqldrivers
cp /mnt/libmysql* /usr/lib/qt/plugins/sqldrivers
3)设置加载MySql库的路径环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/qt/plugins/sqldrivers
4)执行程序
cd /mnt
./mysql_test
运行效果如图所示:
系统提示我们远程连接成功,并且打开数据库成功。
点击“OK”按钮后,QT软件开始建表、插入数据、查询数据、以及显示数据,效果如图所示:
8.小结
经过前后9个小时努力,终于完成了在嵌入式arm板运行的QT+MySql程序,并且实现了EVB-335X-II对远程数据库服务器的访问,使得我们的EVB-335X-II真正的成为了车间级的数据中转服务器。在移植的过程中,出现了很多预想不到的错误,由于一些疏忽,走了不少弯路,不管怎么说,远程MySql上层应用程序可以运行了,从18点开始移植,到测试结束,已是凌晨3点31分,虽然很累、很困,但是移植成功的收获还是值得这些付出的,不多说了,明天早起赶火车,下篇报告,我们再继续。
0
评分
积分 +10
收起
理由
+ 10
您的帖子很精彩,期待您分享的下一个帖子!.