Добавление новой строки в БД
От: arfaa  
Дата: 24.05.19 08:26
Оценка:
Доброе утро, имеется файл mydatabase.sqlite, который содержит три столбца(rowid, login, password). Через QSglFileManager добавлены две строки, хочу добавить третью через код, но не получается, в чем ошибка:
    QSqlDatabase db;
        db = QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName("mydatabase.sqlite");
        db.open();
        //Осуществляем запрос
        QSqlQuery query;
        query.exec("SELECT rowid, login, password FROM authorization");
        while (query.next())
        {
            QString _id = query.value(0).toString();
            QString login = query.value(1).toString();
               QString password = query.value(2).toString();
       }    

        qDebug() << "Opened!";

        query.prepare("INSERT INTO authorization(rowid,login,password) VALUES(:rowid,:login,:password);");

        query.bindValue(":rowid",1);
        query.bindValue(":login","12");
        query.bindValue(":password","12");

         if( !query.exec() )
             qDebug() << query.lastError().text();
         else
             qDebug( "Inserted!" );

        db.close();
Отредактировано 24.05.2019 8:48 arfaa . Предыдущая версия .
Re: Добавление новой строки в БД
От: SaZ  
Дата: 24.05.19 10:21
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Доброе утро, имеется файл mydatabase.sqlite, который содержит три столбца(rowid, login, password). Через QSglFileManager добавлены две строки, хочу добавить третью через код, но не получается, в чем ошибка:

A>...

Ну а что текст ошибки говорит? Отладку пробовали?

P.S. вы тут вопросы всё задаёте, а на предыдущую тему уже забили? Могли бы хотя-бы там оценки проставить и написать, что именно вам помогло.
Re: Добавление новой строки в БД
От: Igore Россия  
Дата: 24.05.19 10:23
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Доброе утро, имеется файл mydatabase.sqlite, который содержит три столбца(rowid, login, password). Через QSglFileManager добавлены две строки, хочу добавить третью через код, но не получается, в чем ошибка:

A> if( !query.exec() )
A> qDebug() << query.lastError().text();
A> else
A> qDebug( "Inserted!" );
Добрый, покажи структуру таблицы и ошибку, можешь сделать еще проще, открыть БД каким нибудь приложением на вроде SQLiteExpert и выполнить там в редакторе этот код. На вскидку такой rowid уже есть и тут нужен update а не insert.
Отредактировано 24.05.2019 10:25 Igore . Предыдущая версия .
Re[2]: Добавление новой строки в БД
От: arfaa  
Дата: 24.05.19 10:26
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, arfaa, Вы писали:


A>>Доброе утро, имеется файл mydatabase.sqlite, который содержит три столбца(rowid, login, password). Через QSglFileManager добавлены две строки, хочу добавить третью через код, но не получается, в чем ошибка:

A>>...

SaZ>Ну а что текст ошибки говорит? Отладку пробовали?


SaZ>P.S. вы тут вопросы всё задаёте, а на предыдущую тему уже забили? Могли бы хотя-бы там оценки проставить и написать, что именно вам помогло.


а как тему закрыть?
Re: Добавление новой строки в БД
От: Maniacal Россия  
Дата: 31.05.19 07:20
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Доброе утро, имеется файл mydatabase.sqlite, который содержит три столбца(rowid, login, password). Через QSglFileManager добавлены две строки, хочу добавить третью через код, но не получается, в чем ошибка:

A>

A>        query.prepare("INSERT INTO authorization(rowid,login,password) VALUES(:rowid,:login,:password);");

A>


rowid же виртуальный столбец, самому в него писать нельзя, только читать
Re[2]: Добавление новой строки в БД
От: Denis Ivlev  
Дата: 05.06.19 04:07
Оценка: :))
Здравствуйте, SaZ, Вы писали:

SaZ>Ну а что


Дурачок, ты что возбудился? Зачем ходишь за мной и минусы ставишь?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.