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?
答案 0 :(得分:2)
来自docs:
警告:您必须加载SQL驱动程序并在之前打开连接 QSqlQuery已创建。此外,连接必须保持打开状态 查询存在;否则,QSqlQuery的行为是未定义的。
在您的问题中,您在打开数据库之前创建了SubstituteBindings
,您必须在QSqlQuery
调用之后移动authQuery
声明语句,如下所示:
dataBase.open()