Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как обновить одну строку, когда / 8 сообщений из 8, страница 1 из 1
14.06.2005, 10:43
    #33115061
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
значение первичного ключа в поле этой строки присваивается в триггере?
...
Рейтинг: 0 / 0
14.06.2005, 11:25
    #33115171
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
urvasзначение первичного ключа в поле этой строки присваивается в триггере?
Сделать хранимую процедуру, с параметром @ID out, в триггере сделать присваивание только если ключ ID IS NULL, в процедуре перед вставкой так же получать значение ключа в ID и вставлять его уже вместе с записью. В DataWindow выключить Update Properties и включить обновления записей через Update Stored Proc, назначить данную процедуру (и соотвествующие для UPDATE и DELETE), совместить поля с параметрами процедуры, не забыв для INSERT процедуры для ID поставить out.
...
Рейтинг: 0 / 0
14.06.2005, 12:13
    #33115338
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
а есть ещё функция dwcontrol.reselectRow(row)
...
Рейтинг: 0 / 0
14.06.2005, 12:17
    #33115349
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
можно ещё указать в dwpainter->update properties->identity columns колонку с ПК. Она, колонка, кое-как считается (зависит от dbms), но при условии, что в соответствующем поле datawindow будет значение NULL. если что-то другое (например, 0), то почему-то не считывается..
...
Рейтинг: 0 / 0
14.06.2005, 12:37
    #33115429
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
С ReselectRow() не всё так просто:
Usage

ReselectRow is supported for SQLSelect DataWindows. Use ReselectRow to discard values the user changed and replace them with values from the database after an update fails (due to a concurrent access error, for example).

"можно ещё указать в dwpainter->update properties->identity columns" тоже не прошдло с моей базой (Oracle)

А вот инсерт через хранимую процедуру с параметром out все прокатило!
СПАСИБО!
...
Рейтинг: 0 / 0
14.06.2005, 19:36
    #33116556
gz
gz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
ASCRUS urvasзначение первичного ключа в поле этой строки присваивается в триггере?
Сделать хранимую процедуру, с параметром @ID out, в триггере сделать присваивание только если ключ ID IS NULL, в процедуре перед вставкой так же получать значение ключа в ID и вставлять его уже вместе с записью. В DataWindow выключить Update Properties и включить обновления записей через Update Stored Proc, назначить данную процедуру (и соотвествующие для UPDATE и DELETE), совместить поля с параметрами процедуры, не забыв для INSERT процедуры для ID поставить out.
to_Ascrus
Может я чего-то недопонял, но зачем создавать хранимые процедуры ? Разве недостаточно одного триггера ?
...
Рейтинг: 0 / 0
14.06.2005, 19:43
    #33116561
gz
gz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
to_Ascrus
Вопрос отменяется. Невнимательно прочитал исходный вопрос
...
Рейтинг: 0 / 0
14.06.2005, 19:43
    #33116562
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить одну строку, когда
А как значение ключа из триггера попадет в строку DW?
А в хранимой процедуре через out.
У меня уже работает
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как обновить одну строку, когда / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]