18. maj 2006 - 21:09Der er
10 kommentarer og 1 løsning
Vedr. spørgsmål omkring database mulige problem?
Goddag Eksperter
Jeg ville bare høre om hvis nu man har en Windows Applikation hvor der skal indvolveres en MySQL database, kan følgende så give problemer:
1)Hvis nu man antager at f.eks. 2 ersoner sidder med en kørende windows applikation op mod den samme database, hvad sker der så? Får den ene så lov at rette og bagefter retter den anden forespørgsel?
2) Nogen der kan fortælle lidt om LOCK og UNLOCK kommandoen og skal disse på for at slippe for problemet i spørgsmål 1?
3) Nogen der kan give eksempel på syntax kode med LOCK og UNLOCK?
4) Kan man på nogen måde definere en fejl kode hvis nu man prøver at få adgang til en databse der er LOCK? Tænker f.eks. på Try/Catch i sin klasse?
5) Kan man i en C# med Try/Catch i sin klasse, lave en mysql error message ligesom i PHP eller?
Det der skal ske er bare sådan at man ikke skal kunne redigere i samme data på samme tid, hvad anbefaler du man bruger der, altså f.eks. ikke insert og update og lign i samme data?
arne_v... Tak for hjælpen, det skal kun være sådan at man ligesom gør således at flere personer ikke kan skrive til samme data samtidig elelr en person prøver at trække data ud mens de bliver rettede i, men det er kun enten mens man lægger data ved select ned i DataSet i C# elelr man kører en query til insert og lign.
Hvad anbefaler du der arne?
Har aldrig rodet med transactioner, kan du give et syntax eksempel?
1) Det er nok kun kort tid når jeg laver udtræk i en mysql prompt drejer det sig om 0.10 sek højest tror jeg, hvor er skalaen fra hvad er kort tid og hvad er lang tid?
2) Men hvad er transaktion, er det en form for "session" der gør at udanset hvad der sker så udføres det som er inde i en transaction?
3) Kan du forklare hvad er hvornår bruges commit og rollback?
2 process/tråde kører samme kode som indeholder 2 SQL sætninger tiden mellem de 2 SQL sætninger er måske 20 millisekunder, så er transaktion den helt rigtig løsning
eksempel på lang tid:
du har noget hent og noget opdater kode, hver bruger kalder hent kode, sidder og retter i data i en 5-10 minutter og kalder så opdater koden, så er transaktion ikke den rigtige løsning
Her kan jeg risikere at PC1 prøver at udføre en redigering i en database samtidig med at PC2 udføre samme redigering i samme data altså udføre 2 forskellige PC'er redigering, giver det ikke fejl?
skal være således at 5 PC'ere skal kunen arbejde i samme database samtidig, hvordan gør man det så de ikke får fejl? eller behøver man ikke gøre noget?
lad os antage at den redigering består af en SELECT og en UPDATE
hvis programmet er sådan at når brugeren klikker save så udføres både SELECT og UPDATE så er transaction det rigtige
hvis programmer er sådan at når brugeren klikker load så udføres select og når brugeren klikker save så udføres update, så skal du kigge på alternativer til transaction
det afgørende er om det er lang tid (p.g.a. menneskelig interaktion) mellem de ting der skal hænge sammen uden forstyrrelser
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.