QT中的SQLite CREATE查询

时间:2016-09-13 13:47:27

标签: c++ qt sqlite

dataBase = QSqlDatabase::addDatabase("QSQLITE");
dataBase.setDatabaseName("login_password.sqlite");

QSqlQuery authQuery;

if(!dataBase.open())
{
    qDebug() << dataBase.lastError().text();
}

QString create("CREATE TABLE BASE(LOGIN VARCHAR(15) PRIMARY KEY NOT NULL, "
               "PASSWRD TEXT(50) NOT NULL, RIGHTS INT NOT NULL);");

bool state = authQuery.exec(create);
if(!state) qDebug() << "Не удалось создать таблицу!";

查询有什么问题,是否可以制作文本PRIMARY KEY?

1 个答案:

答案 0 :(得分:2)

来自docs

  

警告:您必须加载SQL驱动程序并在之前打开连接   QSqlQuery已创建。此外,连接必须保持打开状态   查询存在;否则,QSqlQuery的行为是未定义的。

在您的问题中,您在打开数据库之前创建了SubstituteBindings,您必须在QSqlQuery调用之后移动authQuery声明语句,如下所示:

dataBase.open()