--
--
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();
}
]
--
--