Вниз
Скачать: CL | DM;

RefreshSQL в ZeosDBO PostgreSQL   Найти похожие ветки 

← →
Sirus   (2009-11-29 15:20) [0]

Привет Мастера :)
Есть таблица с двумя полями
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?


← →
Плохиш ©   (2009-11-29 23:00) [1]

В PostgreSQL значение поля с типом serial можно записывать явно при вставке.
Само следующее значение serial для таблицы читается запросом
select nextval(""<требуемая таблица>_<поле serial>_seq"")
Подробности в описании PosgreSQL.


← →
Sirus   (2009-11-30 07:29) [2]

Значение поля id только что вставленной записи можно узнать так
insert into table1 (field1, field2) values ("value1", "value2") returning id

Вот только как использовать это в RefreshSQL? Как я уже писал
select * from table
where id=:old_id
Выдает пустой результат :(


← →
Sirus   (2009-11-30 10:26) [3]

Ошибка выходит такая: Update Refresh SQL delivered no resultset


← →
Sirus   (2009-11-30 11:10) [4]

Проблемка решилась id=:new_id
Хотя хрен его знает, вчера этот метод не прокатывал :),
Может из-за того что седня понедельник.
"По понедельникам можно"


← →
clickmaker ©   (2009-11-30 13:50) [5]

ну да, новый id, как и новую жизнь, нужно начинать в понедельник )



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
1-1255507938
defen
2009-10-14 12:12
2011.05.29
исключение для EDBEngineError


15-1297368889
KilkennyCat
2011-02-10 23:14
2011.05.29
забавное программирование. Андроид


15-1297282011
картман
2011-02-09 23:06
2011.05.29
SCAN


15-1297577350
AlexDn
2011-02-13 09:09
2011.05.29
html, iframe


10-1173447466
Provodnick
2007-03-09 16:37
2011.05.29
Проблема в консольном приложении с COM




   Наверх