Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Row changed between retrieve and update / 13 сообщений из 13, страница 1 из 1
23.11.2009, 22:06
    #36327069
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
Поискал по форуму, случая похожего на мой не нашел

есть 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
24.11.2009, 15:04
    #36328591
Raven A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
В процедуре при изменении верните 1
RETURN 1
...
Рейтинг: 0 / 0
24.11.2009, 15:09
    #36328606
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
Raven AВ процедуре при изменении верните 1
RETURN 1
у меня нет процедуры на изменение или удаление... процедура только на селект
...
Рейтинг: 0 / 0
24.11.2009, 15:58
    #36328774
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
Raven A навел на мысль
решил так
при dw.Update() в dberror вылавливаю эту ошибку -> return 1
а после commita сделал dw.ResetUpdate()
...
Рейтинг: 0 / 0
24.11.2009, 15:58
    #36328775
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
VanoRу меня нет процедуры на изменение или удаление... процедура только на селектА какие, и, главное, как и куда "changes" Вы хотите "Save", нажимая на соответствующую кнопку то? Вы уж, если ожидаете ответа, вводные то полностью давайте - каким образом у вас в этом ДВ реализован Insert/Update/Delete ?
...
Рейтинг: 0 / 0
24.11.2009, 16:11
    #36328822
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
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
24.11.2009, 16:14
    #36328839
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
хотя все равно не понятно, почему эта ошибка стала вылазить только после перехода на РВ11
...
Рейтинг: 0 / 0
25.11.2009, 21:43
    #36332164
voronk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Row changed between retrieve and update
Вано, а ты уверен что проблемы не было в девятке а одинадцатый починил при миграции?

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

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

update=yes updatewhereclause=но

на

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

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

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

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

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

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


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