【问题标题】:Writing SQlite Database in Qt在 Qt 中编写 SQlite 数据库
【发布时间】:2015-12-26 13:36:06
【问题描述】:

我为客户端服务器程序编写了一个 SQLite 数据库。但是在调试期间,当涉及到我在代码中加注的行时,它会崩溃并停止调试。你能帮我吗?谢谢

代码如下:

bool create = !QFile::exists("Message.dat");

if (!myserver.createConnection())
   return 1;

if (create)    ***"Here return false"****

   myserver.insertMessage();

void insertMessage(QString IPAddrress, QDate date, QString message)
{
    QSqlQuery query;
    query.addBindValue(IPAddrress);
    query.addBindValue(date);
    query.addBindValue(message);
    query.exec();
}

void MainWindow::insertMessage()
{
  QSqlQuery query;

  query.prepare("INSERT INTO messages(IPAddress, date, message)"
                        " values(?,?,?)");
 }

【问题讨论】:

  • 提供的代码无法回答这个问题......但是,看起来您认为这两个 query 对象在某种程度上是同一个对象(因为您在一个函数中准备它,并将值绑定到其他)。它们不是,它们是两个独立的对象。另外,尝试显式地将数据库提供给查询,以确保它确实使用相同的数据库。并检查每个方法的返回值,可能会返回错误。

标签: c++ qt sqlite


【解决方案1】:

请看一下这一行:

bool create = !QFile::exists("Message.dat");

你的语法写法是create is true if "Message.dat" does not exist,因为你在exists函数前面有一个!。如果"Message.dat" 确实存在,这将返回false。尝试删除 ! 运算符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多