0
Qtとsqliteに問題があります。私は(まったく同じ機能を使用して)テーブルを作成しようとしたときに最近まで、私は、今、何の問題もテーブルを作成を持っていますが、いなかった私は、エラーメッセージを取得:Qt Sqliteエラー1 - テーブルがすでに存在します
QSqlError("1", "Unable to fetch row", "table selections already exists")
を次のように私のクエリ文字列は、次のとおりです。
CREATE TABLE external_files (path VARCHAR (255) NOT NULL, used INTEGER (12) NOT NULL);
これも以前と同じです。
奇妙なことですが、すべてのテーブルは問題なく作成されますが、まだエラーメッセージが表示されます。
なぜこのようなことが起こるか知っていれば、私はそれを感謝します。 :)
UPDATE:最小、完全、検証可能な例:事前に
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QFile>
#include <QTextStream>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "CONN");
db.setDatabaseName("test.db");
if(!db.open()){
qDebug() << "Connection failed!";
}
QFile tableListFile(":/resources/sql/tables.sql");
if(tableListFile.open(QIODevice::ReadOnly))
{
QTextStream stream(&tableListFile);
while(!stream.atEnd())
{
QString queryString = stream.readLine();
qDebug() << "Query string: " << queryString;
QSqlQuery query(queryString, db);
if(!query.exec()){
qDebug() << "Query error: " << query.lastError();
}
}
}
db.close();
return a.exec();
}
感謝。
のデータベースは、「テーブル 'selections'がすでに存在している」、とテーブルがあり、なぜ、あなたは疑問がわかりますか? –
これを実行する前にデータベースが空です。それはテーブルの選択を作成するが、私はこのエラーメッセージをとにかく得る。 – Flashcap20
明らかに、データベースはCREATE TABLEステートメントの前に* not *空です。 –