【发布时间】:2013-12-14 17:32:57
【问题描述】:
我必须使用 C++ 和 QT 库开发一个社交网络模拟器。 我使用 QODBC 将用户存储到 mysql 数据库中。 当我运行我的应用程序时,我抛出一个 SIGSEGV 错误。
这里,我的函数抛出了这个错误:
QMutex userMutex;
userMutex.lock();
QListIterator<User*> i(users);
User* user;
QString sql = "insert into t_user (id, pseudo, name, firstname, birthdate) values ";
QString bindValue = QString::fromStdString("(?, ?, ?, ?, ?),").repeated(users.count());
sql.append(bindValue);
QSqlQuery query = QSqlQuery(Interface::getCnx());
query.prepare(sql);
while(i.hasNext())
{
user = i.next();
query.addBindValue(QString::number(user->getId()));
query.addBindValue(user->getPseudo());
query.addBindValue(user->getName());
query.addBindValue(user->getFirstname());
QString birthdate = QString::number(user->getBirthDate().year()) + "-" + QString::number(user->getBirthDate().month()) + "-" + QString::number(user->getBirthDate().day());
query.addBindValue(birthdate);
}
query.exec();
userMutex.unlock();
引发此错误的是“query.exec()”行。
你知道有什么问题吗?
【问题讨论】:
-
在调试和所有警告(例如
g++ -Wall -g)编译后尝试使用一些调试器(例如gdb) -
看看答案。
标签: c++ qt segmentation-fault