12. november 2003 - 19:43Der er
24 kommentarer og 1 løsning
Java over netværk mod en MySql
Hej,
Jeg skal i gang med at lave et GUI flere-bruger program som skal køre over netværk op imod en database (MySQL). Mit spørgsmål lyder på hvordan jeg skal lave det sådan at når en bruger har "åbnet" en post fra db'en, så skal de andre bruger ikke kunne skrive til den samme post, de skal kun have lov til at læse, altså read-only.
Jeg har aldrig prøvet at lave den slags før og jeg aner overhovedet ikke hvor jeg skal starte og hvor jeg skal slutte :-(
Når du laver din UPDATE (eller hvis transaktionen afsluttes).
Synes godt om
Slettet bruger
12. november 2003 - 22:14#15
Det kan være at jeg ikke har udtrykt mig klart nok. Jeg skal have lavet er retur-system til mit arbejde. Der problemmet opstår er hvis bruger2 åbner det journal-nr som en bruger1 sidder og retter i, så skal bruger2 ikke have mulighed for at skrive men kun læse. Men bruger1 kan jo sagtens have det journal-nr åben i længere tid af gangen
Recorden har et versions nummer som hentes med ud når man laver SELECT (det vises selvfølgelig ikke).
Når man så skal gemme sine rettelser så laver man en logik som:
transaktion { SELECT version FROM tabel if minversion < version { rollback transaktion informer bruger om at en anden har rettet } else { UPDATE tabel SET felt=værdi, version=minversion+1 commit transaktion } }
Det vil jeg kigge lidt mere på. Jeg har oxo en anden løsning i tankerne. Når bruger1 henter en post, kan man have et felt som man sætter til 1, hvilket så betyder at hvis en anden bruger forsøger at hente fra samme post og programmet detektere at det felt er sat til 1, får de en besked om at en anden bruger arbejder på den post. Når de så forlader den post så bliver feltet sat til 0 og det er så klart til næste bruger.
Jeg kan umiddelbart se 2 fælder: 1) En bruger lader sin maskine stå på det journal-nr fra morgen til aften 2) En bruger lukker programmet forkert, f.eks. ved at pille stikket ud af maskinen
De 2 andre løsninger har ikke det problem. SELECT FOR UPDATE fordi transaktionen forsvinder med connection. Version fordi den vender problem stillingen om.
Synes godt om
Slettet bruger
12. november 2003 - 23:34#25
Det har du ret i, men samtidig er der den problem-stilling at hvis brugeren har lavet en masser rettelser og imens er der en anden bruger der har lavet en lille rettelse har vi problemmet. En af dem mister info.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.