C++ 및 QT 라이브러리를 사용하여 소셜 네트워크 시뮬레이터를 개발해야합니다. QODBC를 사용하여 사용자를 mysql 데이터베이스에 저장합니다. 응용 프로그램을 실행할 때 SIGSEGV 오류가 발생합니다. 이 오류를 던져 여기 Qt 분할 오류
, 내 기능 :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()"라인입니다.
잘못된 것이 있습니까? "(,,,,?????)"그래서
QString bindValue = QString::fromStdString("(?, ?, ?, ?, ?),").repeated(users.count());
하거나 문자열을 추가 한 후 시간-1을 계산하고 "반복": 모든
디버깅으로 컴파일 한 후 일부 디버거 (예 :'gdb')를 사용하고 모든 경고 (예 :'g ++ -Wall -g') –
에서 답을 살펴보십시오. –