mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Procedura - trigger na bazie https://forum.mix-soft.pl/viewtopic.php?f=15&t=8527 |
Strona 1 z 1 |
Autor: | Bluesky [ 2018-03-28, 12:10 ] |
Tytuł: | Procedura - trigger na bazie |
Czy jest możliwość stworzenia Procedury w której będzie metoda OnAfterInsert() na tabelę "ZZ" W ten sam sposób co w towarach? Dodając nową procedurę nie pojawia się ona w ustawieniach: czy ma się wykonywać TAK : NIE Jedynie są tam te procedury predefiniowane przez Symfonię. Jeśli jest możliwość, to proszę o przykład. Pozdrawiam |
Autor: | rafal [ 2018-03-28, 12:28 ] |
Tytuł: | Re: Procedura |
Możesz użyć SQLowego Triggera |
Autor: | Bluesky [ 2018-03-28, 13:14 ] |
Tytuł: | Re: Procedura |
Kod: string sCon = "Moj conn..." con.ConnectionString = sCon con.Open dispatch rs = "ADODB.Command" rs.ActiveConnection = con string sql = "CREATE TRIGGER test2 AFTER UPDATE ON ZZ FOR EACH ROW INSERT INTO test VALUES (NEW.id)" rs.CommandText = sql rs.Execute () gdzie tabela test ma tylko polę Id które jest integer. Mam błąd EOF czyli może być wszystko. |
Autor: | Bluesky [ 2018-04-12, 13:33 ] |
Tytuł: | Re: Procedura |
Ponawiam pytanie, jak użyć sqlTrigger onAfterInsert oraz onAfterUpdate na tabelę "ZZ". (jeżeli w Symfonii) W domyślnych procedurach Symfonii jest klient, towar itd zaś żadna z nich nie reaguje na tabelę "ZZ". Używając SQLTrigger na bazie danych bezpośrednio bez Symfonii, na samym Pervasive, nie ma żadnej reakcji, chyba że sam w bazie wykonam insert, zaś tego triggera Symfonia jako program nie widzi. Pozdrawiam;) |
Autor: | rafal [ 2018-04-12, 14:57 ] |
Tytuł: | Re: Procedura |
Jakie operacje konkretnie Cię interesują? |
Autor: | Bluesky [ 2018-04-12, 15:35 ] |
Tytuł: | Re: Procedura |
Wygląda to tak. Chciałem złapać moment zmiany upustu indywidualnego dla klienta. Przykładowo wchodzę w klienta XYX upusty indywidualne i nadaję mu rabat 12% na produkt abc lub zmieniam dla produktu abc rabat z 12% na 10%. Oczywiście jak usuniemy rabat dla produktu abc też chcę to złapać. Wszystko w obrębie klienta XYX. Potrzebuję wywołać procedurę na tabeli "ZZ" analogicznie jak to wygląda dla tabeli "TW" Czyli mamy "Procedury towaru" w Symfonii gdzie istnieje zapis: onAfterInsert, onAfterDelete itd. Tam mogę się wpinać w event po jakiejś czynności na tabeli "TW" W ten sam sposób chciałem wykryć zmianę na tabeli "ZZ" |
Autor: | rafal [ 2018-04-12, 16:48 ] |
Tytuł: | Re: Procedura |
Posiadamy rozbudowę procedur Kod: OnTriggerINSERT(string dataBase, long recordId) OnTriggerDELETE(string dataBase, long recordId) OnTriggerUPDATE(string dataBase, long recordId) przykład Kod: int sub OnTriggerINSERT(string dataBase, long recordId) baseZZ zz baseAll ba ba.SetBase( dataBase ) ba.Open() ba.GetRecById( recordId ) if dataBase=="ZZ" then if ba.GetField("typi") == 64 then message using "Dodano upust indywidualny. Rekord %l w tabeli ZZ", recordId endif endif ba.Close() endsub int sub OnTriggerDELETE(string dataBase, long recordId) endsub int sub OnTriggerUPDATE(string dataBase, long recordId) if dataBase == "ZZ" then message using "Zmiana w ZZ rekordu %l", recordId endif endsub Skontaktuj się z Ekspertem |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |