mojaSymfonia FORUM
https://forum.mix-soft.pl/

nie działa mi OnAfterDelete dla ZMO
https://forum.mix-soft.pl/viewtopic.php?f=15&t=2775
Strona 1 z 1

Autor:  zz [ 2011-02-04, 13:44 ]
Tytuł:  nie działa mi OnAfterDelete dla ZMO

Witam.
Chcę 'posprzątać' po usuniętym zamówieniu obcym, ale nie działa mi procedura OnAfterDelete. W innych procedurach jest OK.
Czy coś robię źle?

Kod:
int Sub OnAfterDelete(long lId)
   dispatch xDk
   xDk = xFactory.NewObject("BDokumentZo")
   xDk.Load(using "id=%l", lId)
   string sKodZo=xDk.kod
   message sKodZo
   OnAfterDelete = 0
EndSub

Autor:  rafal [ 2011-02-04, 16:19 ]
Tytuł: 

Co chcesz posprzatać?
W kodzie wczytujesz do obiektu dokument, którego juz w bazie nie ma.

Autor:  zz [ 2011-02-04, 16:31 ]
Tytuł: 

chcę wyczyścić inne pomocnicze tabele
To po co taka procedura, która działa 'inaczej'? <mysli>

Autor:  rafal [ 2011-02-04, 16:37 ]
Tytuł: 

No dobra ale widzę, że chcesz do obiektu wczytać skasowany dokument to się zastanawiam co jest grane.

Co rozumiesz przez stwierdzenie nie działa? Nie wykonuje się kod tej procedury czy wywala jakis błąd?

Autor:  zz [ 2011-02-04, 16:44 ]
Tytuł: 

nie wyświetla się (czyli nie przekazuje dalej) kodu ZMO
rozumiem, że tego obiektu już nie ma, ale może jakoś dałoby się wynaleźć jego kod?

Autor:  rafal [ 2011-02-04, 17:19 ]
Tytuł: 

W takim razie przechowuj dane w tabelach pomocniczych powiązanie po ID.

Dodatkowo widzę, że procedura OnAfterDelete wykonuje się tylko dla wystawionych zamówień. Nie wykonuje się przy kasowaniu zamowień z bufora.

Autor:  zz [ 2011-02-07, 08:32 ]
Tytuł: 

Własnie tak zrobiłem. Zastosowałem takie zapytanie:

Kod:
delete FROM tab WHERE NOT EXISTS (SELECT id FROM ZO WHERE ZO.id=tab.id)


i pomogło (sprawdziłem, że id nadaje się kolejne nawet jeśli wykasujemy rekord).

PS. Jest przecież OnAfterBuforDelete.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/