移植mysql驱动


1)在PC机上编译此驱动

首先进入qt的安装目录

root@ubuntu: # cd /opt/qtsdk-2010.05/qt/src/plugins/sqldrivers/mysql

打开mysql.pro,添加如下两行:

 INCLUDEPATH  += /usr/local/mysql/include/mysql

 LIBS         += -L/usr/local/mysql/lib/mysql lmysqlclient_r

再用安装的armqte目录下的qmake命令生成Makefile

我的armqte安装在/opt下,此命令在/opt/QtEmbedded-4.7.2/arm/bin下,即

/opt/QtEmbedded-4.7.2/arm/bin/qamke mysql.pro

make

make install

执行完后,会在当前目录生成libqsqlmysql.so文件,将其移到arm板上/opt/QtEmbedded-4.7.2/arm/plugins/sqldrivers目录中,可以通过如下程序测试可用的数据库驱动:

程序1

 

#include <QsqlDatabase>

#include <QSqlQuery> 

#include <QSqlError> 

#include <QApplication> 

#include <QSqlDatabase> 

#include <QStringList> 

#include <QMessageBox> 

#include <QDebug> 

int main(int argc, char* argv[]) 

{              

   QApplication app(argc, argv);  

   qDebug() << "Available drivers:";     QStringList drivers = QSqlDatabase::drivers();     foreach(QString driver, drivers)              

   qDebug() << "\t" << driver;     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");     qDebug() << "MYSQL driver valid?" << db.isValid();  

 

此程序可以测试出当前开发板可用的数据库驱动。

(2)在开发板上测试数据库的连接

一般建移植好mysql后会有testmysql两个供用户练习的数据库,所以此处不用再建数据库,不过在程序中必须注意:由于是要下载到开发板上,所以密码必须和开发板上用户密码一致。如果成功,则会显示 数据库连接成功

程序2

#include <QtGui> 

#include <QtSql> 

#include <QTableView> 

#include <QString> 

#include <QObject> 

int main(int argc, char **argv)  

{           

          QApplication app(argc, argv);           QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //设置tr()编码。           

          QSqlQueryModel *model;           

          QTableView *table=new QTableView;           QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");           db.setHostName("localhost");   //数据库服务器           db.setDatabaseName("test");   //数据库名           db.setUserName("root");      //登录名           db.setPassword("123456");    //密码           

          if(db.open())           

          {                     

             QMessageBox::information(0,QObject::tr("信息"),  QObject::tr("数据库连接成功"));                     

             QSqlQuery query;              query.exec(QObject::tr("INSERT INTO bbb VALUES ('柯南')")); 

             query.exec("SELECT name FROM testTable");//name为属性名;  

//testTable为表名                     

             model=new QSqlQueryModel;                     

             model->setQuery(query);                     

             model->setHeaderData(0, Qt::Horizontal, QObject::tr("姓名"));              table->setModel(model);                     

             table->show();           

          }           

          else            

          { // 数据库打开失败,显示数据库返回的失败信息               QMessageBox::critical(0,QObject::tr("出错"),db.lastError().text());           }                     

              Qapplication::connect(&app, 

SIGNAL(lastWindowClose()), &app, SLOT(quit()));

              return app.exec();  

           } 

}

 

至此,mysql在开发板上的移植与连接基本完成,以后需要什么插件,只需再编译、移植即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值