2015-12-26 2 views
0

Я написал базу данных SQLite для клиентской серверной программы. но во время отладки, когда дело доходит до строки, которую я запускаю в коде, это приводит к сбою и прекращению отладки. ? Не могли бы вы помочь мне спасибоЗапись SQlite Databse в Qt

Вот код:

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(?,?,?)"); 
} 
+2

Этот вопрос невозможен с предоставленным кодом ... но похоже, что вы считаете, что два объекта запроса являются каким-то одним и тем же объектом (потому что вы готовите его в одной функции и привязываете значения в другом). Они не являются, они представляют собой два отдельных объекта. Кроме того, попробуйте явно предоставить базу данных для запроса, просто чтобы убедиться, что она действительно использует одну и ту же базу данных. И проверьте возвращаемое значение каждого метода, который может вернуть ошибку. – hyde

ответ

1

Пожалуйста, обратите внимание на эту линию:

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

T он пишет ваш синтаксис, он говорит create is true if "Message.dat" does not exist, потому что у вас есть ! перед функцией exists. Это вернет false, если "Message.dat" действительно существует. Попробуйте удалить оператор !.

+0

Если этот ответ был верным, пожалуйста, примите его. :) – themantalope

Смежные вопросы