Προς το περιεχόμενο

C# και SQL


nikos2027

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια χαρα παιδια.

Φτιαχνω 1 προγραμμα σε C# που συνδεεται με SQL

και θέλω να όταν γράφω στη βάση να κλειδώνει και

να μη αφήνει καποιον αλλο να γράφει ή ακομα καλυτερα

να εχει προσβαση στη DB. Δεν θέλω να γίνεται

μονο κατα τη διαρκεια της εγγραφης (βρήκα τη να γίνεται με

transaction) αλλα όσο είναι ανοιχτη η συνδεση να μη επιτρέπει

σε αλλου να έχουν πρόσβαση.

Ευχαριστώ.

Δημοσ.

Δουλευω σε visual C#.

Βασικά έχω 2 προγραμματα που γράφουν

ταυτοχρονα σε μια DB. Θέλω λοιπον

όταν γραφει το 1 το άλλο να περιμένει

να τελειωσει η εγγραφή για να γράψει.

Γιαυτο σκεφτηκα τα transaction.

Καμια ιδεα?

Δημοσ.

καθε DB έχει μηχανισμούς κλειδωμάτων , που ειναι πιό εύκολοι στη χρήση απο το να τους υλοποιησεις προγραμματιστικά.

 

ποια συγκεκριμενη βάση χρησιμοποιείς; ( mysql, microsoft sql server, oracle, άλλη; )

 

επίσης, υπάρχουν διαφόρων ειδών κλειδώματα. πρεπει να γινεις πιο συγκεκριμένος.

Table locks, Row locks, Field locks

 

αυτο που φαίνεται να ζητάς, δηλ. επειδη ενας ειναι στη μέση ενος update, να μην μπορουν ουτε connection να κάνουν οι άλλοι, ειναι υπερβολικό

Δημοσ.

Όντως και εγώ υπερβολικό το βλέπω και δεν καταλαβαίνω γιατί θα πρέπει να κλειδώσει την βάση δεδομένων.

Γιατί είδους εγγραφή μιλάμε; Απλή εγγραφή σε πίνακες μίας καταχώρησης;

Αυτό γίνεται εν ριπή οφθαλμού από το server και δεν επιδρά αν έχει ολόκληρη λίστα αναμονής για παρόμοιες αλλαγές. Αναλαμβάνει αυτός.

Ενημέρωση καταχωρήσεων σε όλους τους πίνακες οπότε θα πρέπει όλοι να είναι εκτός;

 

Γίνε πιο συγκεκριμένος γιατί τα εργαλεία είναι πολλά, αλλά κάτι που έχεις στο μυαλό του ότι θέλεις να κάνει, μπορεί να μην το χρειάζεσαι καθόλου.

3-4 διαφορετικά σενάρια μπορεί να βοηθήσουν ώστε να δώσουμε λύσεις.

Δημοσ.

Παιδια ευχαριστώ για τη βοηθεια.

Δουλεύω σε Visual C# και SQL express.

Αυτο που ηθελα να κανω ειναι να μη γίνονται

2 εγγραφες ταυτοχρονα. Αρχικα σκεφτηκα

να κλειδώνω τη σύνδεση. Μετα βρήκα

τα transaction τα οποία δουλευουν.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...