问题遇到的现象和发生背景
qt中使用sqlite创建表失败
问题相关代码,请勿粘贴截图
部分代码
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(mHistoryDB);
if(db.open())
{
qDebug()<<"Database History Opened";
QSqlQuery sql_query;
QString create_sql = "create table if not exists Customer (id INTEGER primary key AUTOINCREMENT,\
name varchar(100), \
type int ,\
vaccine int,\
reason varchar(100))"; //创建数据表
sql_query.prepare(create_sql);
sql_query.exec(); //创建表
QString sql = "insert into Customer values(NULL,\"%1\",%2,%3,\"%4\")"; //插入数据
sql = sql.arg(p->name).arg(p->type).arg(p->vaccine).arg(p->reason); //这些参数的格式验证过没有问题
sql_query.prepare(sql);
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"插入记录成功History";
}
}
db.close();
}
运行结果及报错内容
Database History Opened
QSqlError("", "Unable to fetch row", "No query")