![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RefreshSQL в ZeosDBO PostgreSQL [PostgreSQL]
Sirus © (2009-11-29 15:20:00)Привет Мастера :)
Есть таблица с двумя полями
id serial, (автоинкремент)
name character(30)
В таблицу делается вставка через InsertSQL
insert into table (name) values (:name)
В RefreshSQL
select * from table
where id=:old_id
При Post выскакивает ошибка, типа результат запроса пустой.
Это понятно, потому что old_id пока не имеет значения.
Вопрос: Как узнать значение поля id только что вставленной записи и как сделать правильный RefreshSQL?
clickmaker (2009-11-30 13:50:00) [1]ну да, новый id, как и новую жизнь, нужно начинать в понедельник )
Sirus (2009-11-30 11:10:00) [2]Проблемка решилась id=:new_id
Хотя хрен его знает, вчера этот метод не прокатывал :),
Может из-за того что седня понедельник.
"По понедельникам можно"
Sirus (2009-11-30 10:26:00) [3]Ошибка выходит такая: Update Refresh SQL delivered no resultset
Sirus (2009-11-30 07:29:00) [4]Значение поля id только что вставленной записи можно узнать так
insert into table1 (field1, field2) values ('value1', 'value2') returning id
Вот только как использовать это в RefreshSQL? Как я уже писал
select * from tableВыдает пустой результат :(
where id=:old_id
Плохиш (2009-11-29 23:00:00) [5]В PostgreSQL значение поля с типом serial можно записывать явно при вставке.
Само следующее значение serial для таблицы читается запросом
select nextval(''<требуемая таблица>_<поле serial>_seq'')
Подробности в описании PosgreSQL.