powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Row changed between retrieve and update
13 сообщений из 13, страница 1 из 1
Row changed between retrieve and update
    #36327069
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поискал по форуму, случая похожего на мой не нашел

есть DW, на хранимой процедуре.
прям в РВ на этой DW нажимаем Retrieve -> список нормально ретривится
удаляю одну или несколько строк, нажимаю "Save changes" вываливается вот такое соощение
Row changed between retrieve and update.
No changes made to database.
DELETE FROM bg_2joins WHERE j_id = 2307
PB11.5.1 build 4608, коннект к базе через SNC SQL Native Client(OLE DB), база MSSQL2000

Но дело в том что таже самая DW отлично сохраняет если коннект к Ораклу... и также нормально сохраняла в MSSQL пока сорсы были на РВ9.

Похоже проблема именно в SNC SQL Native Client(OLE DB)... может какой параметр нужно ему в строку коннекта вставить? чего ему надо то?
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36328591
Фотография Raven A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В процедуре при изменении верните 1
RETURN 1
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36328606
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Raven AВ процедуре при изменении верните 1
RETURN 1
у меня нет процедуры на изменение или удаление... процедура только на селект
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36328774
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Raven A навел на мысль
решил так
при dw.Update() в dberror вылавливаю эту ошибку -> return 1
а после commita сделал dw.ResetUpdate()
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36328775
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRу меня нет процедуры на изменение или удаление... процедура только на селектА какие, и, главное, как и куда "changes" Вы хотите "Save", нажимая на соответствующую кнопку то? Вы уж, если ожидаете ответа, вводные то полностью давайте - каким образом у вас в этом ДВ реализован Insert/Update/Delete ?
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36328822
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IkarVanoRу меня нет процедуры на изменение или удаление... процедура только на селектА какие, и, главное, как и куда "changes" Вы хотите "Save", нажимая на соответствующую кнопку то? Вы уж, если ожидаете ответа, вводные то полностью давайте - каким образом у вас в этом ДВ реализован Insert/Update/Delete ?
процедура страбатывает только на dw.retrieve(), при этом возвращает все необходимые данные, чтоб можно было потом эту dw апдейтить, а именно Primary Key. Также все описано в Update Properties. Удаление и изменение как в обычной (без процы) dw

удаление строки из этой dw - dw.DeleteRow( dw.GetRow()); dw.Update()
изменение - чего-нибудь поменял, потом dw.Update()
инсерта в этой dw нету совсем, другими путями инсертится
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36328839
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя все равно не понятно, почему эта ошибка стала вылазить только после перехода на РВ11
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36332164
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вано, а ты уверен что проблемы не было в девятке а одинадцатый починил при миграции?

Я на 9, но и в предыдущих версиях, при искусственно добавлении или убирании колонки из датавинды, разваливался весь where clause и при update использовались только key columns ... увидеть это можно было только в source editor ... и юзеры доставшие одновременно один и тот же рекорд друг друга успешно переписывали ...

Я потом себе даже парсер написал, пройтись по всем датавиндам в библиотеках и поправить

update=yes updatewhereclause=но

на

update=yes updatewhereclause=yes
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36332200
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверен. проблемы пропали

и... проблема была не в добавлении колонок, а только при сохранении удаленных строк.
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36332337
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voronk...а ты уверен что проблемы не было в девятке а одинадцатый починил при миграции?...
Есть мнение ( в оч-чень узких кругах), что процесс миграции в РВ ( любых версий) для "ленивых", т.е. всё равно "руцями" надо корректировать, иначе работать (если повезет) будет как то криво.

От сюда совет: на Аллаха надейся, а ишака привязывай.
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36332665
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз
проблемма не в миграции... Похоже проблема именно в SNC SQL Native Client(OLE DB)
если прочитать тему с начала, то должно стать все понятно
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36349390
bumsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ента беда OLE DB. У вас скорее всего есть триггер на удаление на таблице bg_2joins,который что-то да возвращает (например, кол-во задействованных строк от Select'а в скрипте триггера) . Раз что-то вернулось, то то ли PowerBuilder, то ли драйвер БД считает, что произошла ошибка.
Если в самом начале триггера написать
Код: plaintext
SET NOCOUNT ON
проблема должна исчезнуть.

К сожалению, так надо писать во всех триггерах и процедурах. Хотя может есть и другой способ.
...
Рейтинг: 0 / 0
Row changed between retrieve and update
    #36349423
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле после вставки
SET NOCOUNT ON
...тело триггера
SET NOCOUNT OFF

все заработало... Спасибо

только вот не совсем понятно... ругается только когда в тригере есть delete from... , а вот если в триггере например есть Insert (аудитовский триггер какой-нибудь), то не ругается
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Row changed between retrieve and update
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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