Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо