我尝试在qt中使用sqlite,但我遇到了一个错误.
qDebug() << QSqlDatabase::drivers();
QSqlDatabase DB = QSqlDatabase::addDatabase("QSQLITE");
DB.setDatabaseName("/Volumes/MAJID/majid/Naminic/db0.db");
QSqlQuery createQuery;
qDebug()<< "open: " << DB.open();
createQuery.exec("CREATE TABLE contact(name,tell)");
qDebug() << createQuery.lastError().text();
qDebug() << "insert : " << createQuery.exec("insert into contact(name,tell) values('a','b')");
qDebug() << createQuery.lastError().text();
这是调试的输出:
(“QSQLITE”,“QODBC3”,“QODBC”)
开:真的
内存不足无法执行语句
insert:false
内存不足无法执行语句
最佳答案 我看到的几个问题应该让这个工作.
1.创建时,需要将数据库对象传递给QSqlQuery.
以下行是错误的
QSqlQuery createQuery;
把它改成以下你应该是好的
QSqlQuery createQuery(DB);
2.您需要在创建QSqlQuery对象之前打开数据库.如果使用它初始化QSqlQuery对象,则需要打开与数据库的连接.所以不是这样的:
QSqlQuery createQuery(DB);
qDebug()<< "open: " << DB.open();
做这个
qDebug()<< "open: " << DB.open();
QSqlQuery createQuery(DB);
那会让事情变得有效.