我想访问一个MySQL数据库,我想在我的Qt/C++程序中从+向数据库读+写数据。对于读写过程,我尝试使用QSqlTableModel、QSqlTableRcord和QSqlDatabase,因为这是一种非常令人愉快的方法,没有太多我出于某种原因(为了处理自己)不喜欢的SQL命令。
我已经在运行一个类似的方法(所以数据库已经在运行),但是它到处都是杂乱的。
因此,简单的问题是,在这几行示例代码中,我做错了什么:
使用qt4.5.x
测试数据库有3列:float x、float y、blob img
int main(){
QImage img("./some_image.png");
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setPort(3306);
db.setUserName("root");
db.setPassword("xxxxxxx");
if (!db.open() )
qDebug("Mising db / unable to open");
else {
QSqlTableModel model;
qDebug() << "tables::" <<db.tables(); //so I see the table exists and gets detected
model.setTable("test_table");
QSqlRecord rec;
rec.setValue(0,1.0f);
rec.setValue(1,2.0f);
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
img.save(&buffer, "PNG");
rec.setValue(2,ba);
model.insertRecord(0,rec);
qDebug() << model.lastError().text();
if (!model.submitAll())
qDebug() << "Submit all did not work";
return 0;
}
Thx对于任何帮助,我已经从Qt文档的一端运行到另一端,但没有找到解决方案,我已经浪费了5个小时,因此我感谢任何提示(除非您建议完全不同)。