Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.596 pregleda

Najnovija ↓

Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 07:40 · pre 176 meseci #1
Pozdrav svima...
Koristim VB.NET i mySQL u izradi jedne aplikacije.
Interesuje me kako uraditi UNDO operaciju nad mysql bazom iz .NET-a.
Da li treba izbrisan podatak pamtiti u nekoj backup tabeli ili...

Takođe me interesuje nešto u vezi replikacije baze...
Kako se podešava, koji su bitni parametri i slično...

Hvala
Miloš
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 09:04 · pre 176 meseci #2
Citat:
mish_ns: Pozdrav svima...
Koristim VB.NET i mySQL u izradi jedne aplikacije.
Interesuje me kako uraditi UNDO operaciju nad mysql bazom iz .NET-a.
Da li treba izbrisan podatak pamtiti u nekoj backup tabeli ili...



START TRANSACTION, COMMIT, and ROLLBACK Syntax
Potpis
"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 09:09 · pre 176 meseci #3
Hvala Aco...

Ovo mi je jasno, ali kako da kada korisnik slučajno obriše neke podatke iz tabele, omogućim putem Button-a Undo, da ih vrati u odgovarajuću tabelu?
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 10:10 · pre 176 meseci #4
Jednom kada uradiš uradiš commit ne možeš da radiš nikakav undo. Jedino da uradiš restore baze.
Jedno od rešenja ti je da u tabeli setuješ neki flag umesto da fizički izbrišeš red u bazi:

Code:

PERSON
======
ID
FIRST_NAME
LAST_NAME
...
IS_DELETED

I onda kod brisanja umesto delete izvrši update naredbu.
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 11:37 · pre 176 meseci #6
Drugo resenje je da imas history tabelu i trigger (ne znam da li mysql ima iste) koji ce puniti history tabelu na svaku promenu. Posle mozes da vratis bilo koje stanje. Ovo naravno ima svoj problem sto se tice prostora koji ce zauzimati takva baza kao i to da bi nastala zbrka sa relacijama ako ih imas a verovatno imas.
Treca opcija je da napravis apstrakciju i ne radis undo na nivou baze nego na nivou aplikacije pa da u aplikaciji cuvas stara stanja i napravis logiku kako da ih vracas.
Sve u svemu, nimalo jednostavna stvar.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 11:45 · pre 176 meseci #7
Hvala i tebi Shadowed...
Sada mi pade na pamet da bih mogao imati pomoćnu tabelu koja bi pamtila poslednje tri izbrisane stavke...
Pošto sa trigerima nisam puno radio, pa ne znam da li bi mogao triger - before insert, recimo da prepozna ako ima više od tri stavke u tabeli da ih izbriše?
Kako to može da se uradi?
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 12:38 · pre 176 meseci #8
Nema potrebe da komplikujes sa 3 ili nekim drugim brojem stavki. Za svaku tabelu imas history tabelu, i kada brises ili menjas red, selis ga trigerom u history tabelu.

A onda ako se bas pojavi problem da su u history tabelama milioni redova, mozes napraviti job koji ce jednom nedeljno (ili kad vec) cistiti redove starije od X dana.
Re: Undo operacija nad mysql bazom iz vb.net-a 19.04.2012. u 18:31 · pre 176 meseci #10
Citat:
Da li treba izbrisan podatak pamtiti u nekoj backup tabeli ili...

Ovo mi je jasno, ali kako da kada korisnik slučajno obriše neke podatke iz tabele, omogućim putem Button-a Undo, da ih vrati u odgovarajuću tabelu?


Zavisi koliko ti je vazno, bar sto se tice onog prvog.

Ovo drugo ima osnova u praksi, da se zna sta je menjano ili obrisao. Pre brisanja prvo sacuvas, ili pre menjanja sacuvas prethodne vrednosti. Ali vracanje nikako ne na dugme jer to nema smisla, nego na zahtev. S druge strane vazne podatke zastiti od brisanja i menjanja.

Ako slucajno obrise, slucajno ce ponovo da ih unese. Podaci ne nestaju slucajno, kompjuter ne gresi nego covek.

Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme