nikos2027 Δημοσ. 20 Μαΐου 2008 Δημοσ. 20 Μαΐου 2008 Γεια χαρα παιδια. Φτιαχνω 1 προγραμμα σε C# που συνδεεται με SQL και θέλω να όταν γράφω στη βάση να κλειδώνει και να μη αφήνει καποιον αλλο να γράφει ή ακομα καλυτερα να εχει προσβαση στη DB. Δεν θέλω να γίνεται μονο κατα τη διαρκεια της εγγραφης (βρήκα τη να γίνεται με transaction) αλλα όσο είναι ανοιχτη η συνδεση να μη επιτρέπει σε αλλου να έχουν πρόσβαση. Ευχαριστώ.
nikos2027 Δημοσ. 20 Μαΐου 2008 Μέλος Δημοσ. 20 Μαΐου 2008 Θα μπορώ όμως να κάνω άλλες εγραφες ή να διαβαζω?
Apoll Δημοσ. 21 Μαΐου 2008 Δημοσ. 21 Μαΐου 2008 Σε τί περιβάλλον αναφέρεσαι δεν μας είπες για να βοηθήσουμε.
nikos2027 Δημοσ. 22 Μαΐου 2008 Μέλος Δημοσ. 22 Μαΐου 2008 Δουλευω σε visual C#. Βασικά έχω 2 προγραμματα που γράφουν ταυτοχρονα σε μια DB. Θέλω λοιπον όταν γραφει το 1 το άλλο να περιμένει να τελειωσει η εγγραφή για να γράψει. Γιαυτο σκεφτηκα τα transaction. Καμια ιδεα?
random Δημοσ. 22 Μαΐου 2008 Δημοσ. 22 Μαΐου 2008 καθε DB έχει μηχανισμούς κλειδωμάτων , που ειναι πιό εύκολοι στη χρήση απο το να τους υλοποιησεις προγραμματιστικά. ποια συγκεκριμενη βάση χρησιμοποιείς; ( mysql, microsoft sql server, oracle, άλλη; ) επίσης, υπάρχουν διαφόρων ειδών κλειδώματα. πρεπει να γινεις πιο συγκεκριμένος. Table locks, Row locks, Field locks αυτο που φαίνεται να ζητάς, δηλ. επειδη ενας ειναι στη μέση ενος update, να μην μπορουν ουτε connection να κάνουν οι άλλοι, ειναι υπερβολικό
Apoll Δημοσ. 22 Μαΐου 2008 Δημοσ. 22 Μαΐου 2008 Όντως και εγώ υπερβολικό το βλέπω και δεν καταλαβαίνω γιατί θα πρέπει να κλειδώσει την βάση δεδομένων. Γιατί είδους εγγραφή μιλάμε; Απλή εγγραφή σε πίνακες μίας καταχώρησης; Αυτό γίνεται εν ριπή οφθαλμού από το server και δεν επιδρά αν έχει ολόκληρη λίστα αναμονής για παρόμοιες αλλαγές. Αναλαμβάνει αυτός. Ενημέρωση καταχωρήσεων σε όλους τους πίνακες οπότε θα πρέπει όλοι να είναι εκτός; Γίνε πιο συγκεκριμένος γιατί τα εργαλεία είναι πολλά, αλλά κάτι που έχεις στο μυαλό του ότι θέλεις να κάνει, μπορεί να μην το χρειάζεσαι καθόλου. 3-4 διαφορετικά σενάρια μπορεί να βοηθήσουν ώστε να δώσουμε λύσεις.
nikos2027 Δημοσ. 23 Μαΐου 2008 Μέλος Δημοσ. 23 Μαΐου 2008 Παιδια ευχαριστώ για τη βοηθεια. Δουλεύω σε Visual C# και SQL express. Αυτο που ηθελα να κανω ειναι να μη γίνονται 2 εγγραφες ταυτοχρονα. Αρχικα σκεφτηκα να κλειδώνω τη σύνδεση. Μετα βρήκα τα transaction τα οποία δουλευουν.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.