| ||
English | Slovak |
Menu: | |
|
Najčastejšie kladené otázky (FAQ):
Odpoveď: Na to aby ste prostredníctvom komponenty PxWebQuery vkladali nove riadky potrebujete vytvorit sequenciu, z ktorej si komponenta PxWebQuery načíta jedinečné ID pre svoj primárny klúč. Názov sequencie, by ste mali vytvoriť nasledujúcim spôsobom.
SEQ_"názov stĺpca primárneho kľúča"
Preto, keď tvoríte nové tabuľky nedávajte názov stĺpcu s primárnym kľúčom len "ID", ale napríklad ID+"názov tabuľky". Takže aby vo vašom príklade, fungovalo aj vkladanie dát do databázy, vytvorte si sequenciu SQL príkazom, ktoréj názov vytvoríte podľa hore uvedenej definície:
CREATE SEQUENCE SEQ_IDADRESAR
Odpoveď: Na to aby ste prostredníctvom PxWebQuery vkladali nove riadky, potrebujete vytvoriť sequenciu, z ktorej si komponenta PxWebQuery načíta jedinečné ID pre svoj primárny kľúč. Mysql Server sequencie nepodporuje, preto bolo zvolené riešenie, ktoré tieto sequencie nahradzuje. Teda ak chcete pracovať s Px Frameworkom pod databázou Mysql, musíte si vytvoriť sequenciu nasledujúcim spôsobom. Túto sequenciu si vytvoríte dvoma nasledujúcimi krokmi. 1. Vytvorenie tabuľky, kde sa odkladá posledná načítaná hodnota pre každú tabuľku 2. Vytvorenie procedúry, ktorá bude manažovať, načítanie a inkrementovanie hodnoty daného riadka tabuľky Aby nám fungovalo aj vkladanie dát do databázy, vytvoríme SQL príkazom najprv tabuľku a potom procedúru. Názov tabuľky a procedúry musí zostať nezmenení. Tabuľku pre generovanie sequencie, vytvoríte zadaním nasledujúceho SQL príkazu:
--VYTVORENIE TABULKY PRE SEQUENCIU,
Vytvorenie procedúry, ktorú využíva Px Framework na načítanie jedinečnej hodnoty kľúča pre danú tabuľku, vytvoríte zadaním nasledujúceho SQL príkazu:
--VYTVORENIE PROCEDURY SEQUENCIE
Do sekcie "CREATE DEFINER" procedúry, treba ešte zmeniť meno užívateľa a meno hostu na ktorom beží MySQL databáza, v našom prípade to je "'root'@'localhost'". Hore uvedená procedúra sa dala skompilovať bez chyby na servery MySQL verzia 5.1.. Pokiaľ, by nám neprešla kompilácia hore uvedenej procedúry, ďalej uvádzam upravenú procedúru, ktorá by mala zbehnúť na MySQL servery verzia 5.0.. a nižšej verzii, tu sú doplnené definície delimiterov.
DELIMITER $$
Hneď po vytvorení tabuľky a procedúry, môžeme začať pracovať s Px Frameworkom a vkladať nové riadky. Pokiaľ pre dané ID tabuľky, nebol v tabuľke All_Sequence vytvorení riadok, tak tento riadok sa automaticky vytvorí pri jej prvom zavolaní. Pri každom ďalšom zavolaní sa inkrementuje o hodnotu 1 smerom hore alebo o hodnotu Increment, zadanú v tabuľke All_Sequence. |