powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / неправельная запись данных
2 сообщений из 2, страница 1 из 1
неправельная запись данных
    #32814136
Вопросник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Есть интерестный трабл, не знаю как с ним разобраться.
АСА 8, ПБ 9 +ПФЦ
Рассмотрим ситуацию на примере!
У меня есть два ДВ, связаны цепочкой linkage

tab_1.tabpage_1.dw_one.of_setLinkage(true) //мастер DW
tab_1.tabpage_1.dw_1.of_setLinkage(true) //детаил
tab_1.tabpage_1.dw_1.inv_linkage.of_setmaster(tab_1.tabpage_1.dw_one)
tab_1.tabpage_1.dw_1.inv_linkage.of_register("id_person","id_person")
tab_1.tabpage_1.dw_1.inv_linkage.of_SetStyle (tab_1.tabpage_1.dw_1.inv_linkage.RETRIEVE)
tab_1.tabpage_1.dw_one.inv_linkage.of_setTransObject(usertr)
tab_1.tabpage_1.dw_one.inv_linkage.of_setUpdateStyle(1)

Так же, мастер ДВ, на его событие updateend() навешан
следующий код
id_person=this.Object.id_person[1]
//проставляем полученный мастер-идентификатор во все DW
FOR i_row=1 TO tab_1.tabpage_1.dw_1.RowCount()
tab_1.tabpage_1.dw_1.Object.id_person[i_row]=id_person
NEXT

На событии closequery() окна навешан следущий код

if tab_1.tabpage_1.dw_one.inv_linkage.of_getUpdatesPending()<>0 then //если менялось хоть одно DW
Choose CASE MessageBox('','Сохранить изменения',Question!,YesNoCancel!)
case 1 //ДА
return_code=this.event pfc_Save()
if return_code=1 then
return 0
else // Ошибка в сохранении
return 1
end if
case 2 //Нет
return 0
case 3 //Отмена
return 1

end choose
end if

На событии pfc_endtran() окна
IF ai_update_results < 0 THEN
IF usertr.of_Rollback () < 0 THEN RETURN -1
ELSE
IF usertr.of_Commit () < 0 THEN RETURN -1
END IF

RETURN 1

C редактированием записей, проблем нет. Есть с инсертом.
Пример: мастер DW генерирует значение 15, данное значение успешно проставляется во всех подчиненных!!!! НО в подчиненном ДВ, возникает ошибка.(например -на запись уникальных значений), вся транзакция по цепочке откатывается, после исправления данных в подчиненном ДВ, мастер ДВ генерирует уже не значение 15 а 16, но в подчиненном ДВ все равно проставляется 15. Тоесть, событие updateend() - срабатывает, но ключ берется старый, тоесть не береться новое значение ключа.???????????

Зарание благодарен.
...
Рейтинг: 0 / 0
неправельная запись данных
    #32814547
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включите SQLSpy
в Вашем appmanager event pfc_open
втсавить что то подобное
Код: plaintext
1.
2.
3.
of_SetDebug(True)
inv_debug.of_openlog( True )
inv_debug.of_setsqlspy( True )
inv_debug.inv_sqlspy.of_opensqlspy( True )
при запуске откроется окно в котором будут отображаться все операции с БД.
возможно поможет разобраться.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / неправельная запись данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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