Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 10.11.2017, 16:19   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию SQL вставка с получением результата

есть таблица, у которой id INTEGER PRIMARY KEY AUTOINCREMENT.
С помощью INSERT INTO я добавляю новые строки.
Скажите пожалуйста как получить результат этого добавления? В частности интересует id, ну и другие поля тоже.
SAMOUCHKA вне форума Ответить с цитированием
Старый 10.11.2017, 16:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
Скажите пожалуйста как получить результат этого добавления? В частности интересует id
это зависит от СУБД
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.11.2017, 16:25   #3
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это зависит от СУБД
все это используется с Qt. Драйвер QSQLITE
SAMOUCHKA вне форума Ответить с цитированием
Старый 10.11.2017, 17:08   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

смотрите,
http://www.sqlite.org/lang_corefunc.html
last_insert_rowid()

отсюда-
http://www.sql.ru/forum/679602/sqlit...zdannyy-zapisi
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.11.2017, 18:48   #5
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Если я правильно понял, предлагается сначала создать новую запись. за тем прочитать последнюю созданную запись.
Но что если перед тем как я читаю последнюю запись, кто то создаст новую? тогда я прочитаю не ту запись.
SAMOUCHKA вне форума Ответить с цитированием
Старый 10.11.2017, 19:07   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Кто-то будет в другом соединении с базой, а last_insert_rowid возвращает ключ последней вставленной в текущем соединении. Так что SELECT сразу после INSERT-а
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL использование JOIN LEFT не дает нужного результата Yuran БД в Delphi 2 12.04.2015 11:49
Ошибка при попытке вывода результата sql-запроса в DBGrid Fahnrich БД в Delphi 6 08.07.2013 17:23
Трудности с обработкой результата SQL запроса Shepetov_SA БД в Delphi 2 19.03.2010 11:59
автоматическая вставка результата поиска в прайсе в файл расчета ATTA Microsoft Office Excel 23 29.01.2008 14:07
Вставка БД с SQL server 2005 фЁдОр SQL, базы данных 17 20.11.2007 17:15


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS