Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в SQLite можно получить last_insert_id? Какие способы? 
V
    Опции темы
Lindemann66
  Дата 11.8.2011, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinking...
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 2.8.2011
Где: Ульяновск

Репутация: нет
Всего: нет



Всем привет!

Думаю над вопросом, как можно получить last_insert_id, работая с SQLite

Будет ли работать 
Код

//процедура добавления ссылки
int DataBase::AddLink(LinkInfo link) {
    QString queryStr(("INSERT INTO links (page_id, address, type) "
                      "VALUES ('%1', '%2', '%3')").arg(link.page_id).arg(link.address).arg(link.type);
    QSqlQuery query(queryStr);

    if (!query.isActive()) {
        QMessageBox::warning(0, "Database Error",
                             query.lastError().text());
        return -1;
    }

    query("select last_insert_id()");
    if (!query.isActive()) {
        QMessageBox::warning(0, "Database Error",
                             query.lastError().text());
        return -1;
    }

    qint32 id = query.value(0).toInt();
    return id;
}


Либо надо делать выборку всего и применять last(), либо просто делать выборку с условием MAX()?

Это сообщение отредактировал(а) Lindemann66 - 11.8.2011, 10:31
--------------------
stay true
PM MAIL WWW ICQ   Вверх
skyboy
Дата 12.8.2011, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



 С++ интерфейс, как я понимаю?
тогда рекомендую посмотреть про sqlite3_last_insert_rowid 
PM MAIL   Вверх
Lindemann66
Дата 12.8.2011, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinking...
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 2.8.2011
Где: Ульяновск

Репутация: нет
Всего: нет



Цитата(skyboy @  12.8.2011,  00:28 Найти цитируемый пост)
С++ интерфейс, как я понимаю?

да
большое спасибо, я так и сделалsmile

Вот код, вдруг кому-то пригодится
Код

    query = QSqlQuery("select last_insert_rowid()");
    if (!query.isActive()) {
        QMessageBox::warning(0, "Database Error",
                             query.lastError().text());
        return -1;
    }
    query.next();
    int id = query.value(0).toInt();


Это сообщение отредактировал(а) Lindemann66 - 12.8.2011, 09:25
--------------------
stay true
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие СУБД | Следующая тема »


 




[ Время генерации скрипта: 0.1116 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.