【问题标题】:How to create a table in qt with SQLite?如何使用 SQLite 在 qt 中创建表?
【发布时间】:2020-10-07 14:54:24
【问题描述】:

我有一个名为 m_database 的类的属性。

class SqlThread : public QThread
{
public:
SqlThread();
void run();

private:
QSqlDatabase   m_database;
QString        m_dbfilename;
};

我在构造函数中实例化,如下例所示:

SqlThread::SqlThread()
{
 m_database = QSqlDatabase::addDatabase("QSQLITE");
}

我在运行函数中创建数据库,就像那样(我用其他类创建的 m_dbFileName):

    m_database.setDatabaseName(m_dbfilename);

    if (!m_database.open())
    {
        qWarning("%s", m_database.lastError().text().toLocal8Bit().data());
        return;
    }

    QSqlQuery databaseQuery(m_database);
    databaseQuery.prepare("CREATE TABLE data (id int not null primary key, tu text, data BLOB, puits integer);");

    if (!databaseQuery.exec())
    {
        qWarning("%s", databaseQuery.lastError().text().toLocal8Bit().data());
        return;
    }

为什么我收到错误消息:No query Unable to fetch row ??

【问题讨论】:

  • 我真的很困惑,因为有时该功能有效,有时无效。

标签: c++ database sqlite qt qt-creator


【解决方案1】:

将查询字符串替换为:

databaseQuery.prepare("CREATE TABLE IF NOT EXISTS data (id int not null primary key, tu text, data BLOB, puits integer);");

否则如果表已经存在则执行失败。

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2015-03-06
    • 1970-01-01
    • 2017-11-25
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多