Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Платформы Windows Mobile и Windows Embedded > SQLite узнать id только что добавленной в БД записи


Автор: Brodyaga 23.8.2009, 14:30
Ещё вопросик...
Как в SQLite можно узнать id только что добавленной в БД записи?
Думаю сделать это с помощью функции Max, но может есть какие-то специальные средства? Как например специалныепеременные в MSSQL...

Автор: Alexeis 23.8.2009, 19:15
Можно сделать генератор в базе и самому устанавливать ID тогда не нужно узнавать.

Автор: Brodyaga 24.8.2009, 06:20
Цитата

Можно сделать генератор в базе и самому устанавливать ID тогда не нужно узнавать.

Генератор в базе? это как?

Автор: Alexeis 24.8.2009, 09:24
Цитата(Brodyaga @  24.8.2009,  05:20 Найти цитируемый пост)
Генератор в базе? это как? 

  Не уверен поддерживает ли SQLite такую штуку, но вообще SQL допускает создание генераторов.
Код

CREATE GENERATOR <имя генератора>;
SET GENERATOR <имя генератора> TO 0;


Использование 
Код

SELECT GEN_ID(<имя генератора>, 1) FROM rdb$database;


Но мне думается что с SQLite такое не проканает, потому что имя системной таблицы отличается
Нашел еще такой вариант.
Код

SELECT last_insert_rowid();


Цитата

last_insert_rowid()  Return the ROWID  of the last row insert from this connection to the database. This is the same value that would be returned from the sqlite3_last_insert_rowid() API function. 



Автор: Romikgy 24.8.2009, 10:37
Цитата(Alexeis @  24.8.2009,  08:24 Найти цитируемый пост)
"SELECT last_insert_rowid()";

апи возможно и работает , но из sql результат не верный отдает :(
вот запрос который отдает все значения генераторов по всем таблицам sqlite 
Код

select * from sqlite_sequence;

Автор: Brodyaga 27.8.2009, 14:39

Цитата

Цитата(Alexeis @  24.8.2009,  08:24 Найти цитируемый пост)
"SELECT last_insert_rowid()";

апи возможно и работает , но из sql результат не верный отдает :(
вот запрос который отдает все значения генераторов по всем таблицам sqlite 
Код

select * from sqlite_sequence;



Ну это в сущности тоже самое что и Max использовать...

Автор: Romikgy 27.8.2009, 20:26
Цитата(Brodyaga @  27.8.2009,  13:39 Найти цитируемый пост)
Ну это в сущности тоже самое что и Max использовать...

не совсем макс берет максимум 
а эта таблица содержит сам генератор....

Автор: Brodyaga 30.8.2009, 11:00
Цитата

не совсем макс берет максимум 
а эта таблица содержит сам генератор....


Ну, а генератор и есть максимальный...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)