Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Λογική

Îåêßíçóå áðü ôï ìÝëïò m6s. Τελευταία δημοσίευση από το μέλος KelMan στις 25-10-2007, 08:30. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-10-2007, 21:07 36493

    Λογική

    Καλησπέρα σας,

    Δεν έχω κατανοήσει κάτι με τα dataset.
    Καθε dataset εχει μια INSERT,UPDATE, DELETE, SELECT εντολή (υποδοχέα θα μου επιτρέψεται να το πώ;) που οταν καλείς Dataset.Update αυτές εκτελούνται.
    Το θέμα ειναι αν εχεις πολλά select, ή πολλά insert... και οχι απαραίτητα DELETE ή τελος παντων υποσύνολο αυτών και μπορεί τη μια εντολή να θες να την εκτελέσεις Χ φορές. Οπερ σημαίνει...περνάς null ορίσματα και δίνεις π.χ. Insert οσες φορές θες να εισάγεις δεδομένα ; Και να το παω πιο πέρα...αν θες να κανεις απανωτά insert και update, θα χρησιμοποιήσεις dataset+transactions που θα ανοίγεις και θα κλείνεις πρίν και μετά το update στο dataset?

    Ολα σχεδόν τα tutorial έχουν ενα απλό select, κοτσάρουν ενα update, insert και σου λένε ετσι δουλεύει. Πώς δουλεύουμε με πολλές "μαζεμένες" sql εντολές...;

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

    Ευχαριστώ πολύ, εκ των προτέρων.
  •  23-10-2007, 09:09 36496 σε απάντηση της 36493

    Απ: Λογική

    Όχι, το Update method του Dataset κάνει apply όλες τις αλλαγές που έχουν γίνει, δηλαδή για κάθε DataRow βρίσκει αν χρειάζεται να γίνει Insert, Update ή Delete και το κάνει. Μόλις ολοκληρωθεί η διαδικασία, έχουν γίνει τα πάντα. Γι αυτόν το λόγο υπάρχει και ένα πρόβλημα. Πολλές φορές (όταν πχ το Dataset περιέχει δύο ή περισσότερους πίνακες με DataRelations και τους έχεις πειράξει όλους) χρειάζεται να ελέγξεις την σειρά που θα γίνει η διαδικασία καθώς η Update λογική του Dataset μπορεί να επιχειρήσει να σβήσει ένα master record πριν σβήσει τα αντίστοιχα details. Εκεί χρησιμοποιούμε πολλαπλά Update statements συνήθως μέσα σε transaction. Για περισσότερα, ρίξε μια ματιά εδώ: http://msdn2.microsoft.com/en-us/library/4esb49b4(VS.80).aspx 


    Vir prudens non contra ventum mingit
  •  24-10-2007, 20:59 36566 σε απάντηση της 36496

    Απ: Λογική

    Συγνώμη, που δεν απάντησα νωρίτερα. Ευχαριστώ πολύ, για το λινκ. Τωρα θα το δώ
    .Φανταζόμουνα οτι δεν ηταν τοσο ευκολο οσο φαινόταν το θέμα dataset.

    Και κάτι επιπλέον...
    Εκανα το εξής, διάβασα ενα datatable, μετα ενα datarow, ειδα οτι το datatable εχει την update. Θελει ομως ενα dataset σαν περασμα...
    του περασα το dataset που μου επιστρεφει το datatable. Αποτυχία.
    Η σκέψη ηταν γιατι να φτιάξω ολοκληρο dataset για ενα μονο πινακα...

    Υπόψιν...η εφαρμογή, εχει ενα...parent dataset δεμενο στην φόρμα. Ο πίνακας ομως που ηθελα να ανανεωσω ηταν εκτος αυτού του ντατασετ ( νευρίασα να αλλαζω ελληνικα-αγγλικα... :-) ) .
    Οκ, θα μου πείτε γιατι να μην το φορτωσεις στο ντατασετ το υπάρχον που ανηκει στην φορμα...απλα προσπάθησα να κανω την ανανέωση χωρις καν να σκεφτώ το dataset...Γίνεται ; (Χωρις executescalar συναρτηση.) Μονο datatable & datarow...?

    Ξανα...ευχαριστώ....
  •  25-10-2007, 08:30 36579 σε απάντηση της 36566

    Απ: Λογική

    Δεν μπορώ να πω ότι κατάλαβα τι προσπαθείς να κάνεις. Ωστόσο γενικά μιλώντας, δεν είναι κακό να έχεις ένα DataSet ίσα-ίσα για ένα DataTable και ούτε είναι υποχρεωτικό να είναι όλα σου τα δεδομένα στο ίδιο DataSet. Τα DataSets είναι μια in-memory λογική οργάνωση των δεδομένων, μπορείς να κάνεις ό,τι θες και όπως θες.


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems