QT: 连接 mysql

来源:互联网 发布:中小企业记账软件 编辑:程序博客网 时间:2024/05/10 13:50

--
--
qt: 连接 mysql: newtower: ok:

 

1.
先从网上下载已编译好的 mysql qt 驱动, 将其中 *.a *.dll 放到类似 F:/Qt/2010.05/qt/plugins/sqldrivers 的目录
http://xiaojinta.com/temp/qt_mysql_driver.rar

 

2.
写代码,
[
#include <QtCore/QCoreApplication>

// *.pro:  QT += sql

#include <QtDebug>
#include <QtSql>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    // a.setDefaultCodec( QTextCodec::codecForName("GBK") );

    QString s = QString::fromUtf8("呵呵");
    qDebug() << s;
    // qDebug( s.toStdString().c_str() );

    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
    {
        // qDebug() << "[" + driver + "]";
        qDebug( driver.toStdString().c_str() );
    }
    qDebug("--------");

    // QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "mysql"); // error
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setDatabaseName("db_aaa");
    db.setUserName("aaa");
    db.setPassword("123");
    if( ! db.open() ){
      qDebug("42: 打不开 ");
      qDebug() << db.lastError().text();
      return false;
    }

    qDebug("30");

    QSqlQuery query; //以下执行相关QSL语句

    query.exec(" select * from user ");

    // error: qDebug( "query.size() = " + query.size() );
    s = QString("query.size() = %1").arg( query.size() ) + " aaa" + "bbb";
    qDebug() << s.toStdString().c_str();

    qDebug("49");

    while(query.next())  //query.next()指向查找到的第一条记录,然后每次后移一条记录
    {
        int f_0 = query.value(0).toInt();        //query.value(0)是id的值,将其转换为int型
        QString f_1 =query.value(1).toString();
        QString f_2 =query.value(2).toString();
        QString f_3 =query.value(3).toString();
        qDebug() << f_0 << f_1 << f_2 << f_3; // 输出两个值
    }
    qDebug("58");

    return a.exec();
}
]
--
--

原创粉丝点击