if(drivers.contains(QString("QSQLITE")))
{
QSqlDatabase db = QSqlDatabase::addDatabase(QString("QSQLITE"));
QSqlQuery qry(db);
QSqlError err;
db.setDatabaseName(QString("test"));
if(!db.open())
{
err = db.lastError();
qDebug()<<"open db error:"<<err.text()<<"\n";
return -1;
}
if(!qry.exec("create table if not exists family(id character(8) not null primary key,chs_name nchar(10) not null)"))
{
err = qry.lastError();
qDebug()<<"create table error:"<<err.text()<<err.type()<<"\n";
return -1;
}
if(!qry.exec("INSERT family VALUES('00000001','王韬')"))
{
err = qry.lastError();
qDebug()<<"insert values error:"<<err.text()<<"\n";
return -1;
}
}
else
{
qDebug()<<"Driver \'QSQLITE\' has not been installed\n";
return -1;
}
程序运行结果
create table error: "out of memory Unable to execute statement" 2
C:\Qt\Project\test-bin\db1\debug\db1.exe exited with code -1
我把创建表的语句放到sqlite3的控制台下执行没有任何问题
sqlite> create table if not exists family(id character(8) not null primary key,c
hs_name nchar(10) not null);
sqlite> .tables
family
sqlite>
求高手帮忙看看
6 个解决方案
#1
试试看不要用id 做名字呢
#2
改了,问题依旧,求帮顶一下
#3
高手何在???
#4
怎么就没人帮我看一下呢,求帮顶一下
#5
关注这个问题。。楼主解决了没啊?
#6
我也遇到了这个问题,不过我找到解决方案了:
QSqlQuery qry(db);
之前必须先打开db也就是上面这一行必须在
db.open();
之后才行
QSqlQuery qry(db);
之前必须先打开db也就是上面这一行必须在
db.open();
之后才行
#1
试试看不要用id 做名字呢
#2
改了,问题依旧,求帮顶一下
#3
高手何在???
#4
怎么就没人帮我看一下呢,求帮顶一下
#5
关注这个问题。。楼主解决了没啊?
#6
我也遇到了这个问题,不过我找到解决方案了:
QSqlQuery qry(db);
之前必须先打开db也就是上面这一行必须在
db.open();
之后才行
QSqlQuery qry(db);
之前必须先打开db也就是上面这一行必须在
db.open();
之后才行