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

 

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

Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

Îåêßíçóå áðü ôï ìÝëïò DaltonGR. Τελευταία δημοσίευση από το μέλος DaltonGR στις 10-01-2007, 10:05. Υπάρχουν 21 απαντήσεις.
Σελίδα 2 από 2 (22 εγγραφές)   < 1 2
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-01-2007, 08:53 23190 σε απάντηση της 23111

    Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    anjelinio πολύ καλο αυτό που έστειλες στον φίλο μας αλλά πιστεύω ότι ο φίλος μας πρέπει να κατανοήσει ότι αν η εφαρμογή παίζει σέ απομακρυσμένο δίκτυο και ο όγκος τών δεδομένων είναι μεγάλος τότε το αποτέλεσμα του performance θα είναι τραγικό γι' αυτό και επιμένω στην λογική της stored procedure η οποία θα είναι απείρως πιό γρήγορη γιατί δέν υπάρχει μεταφορά δεδομένων και οι εντολές insert , update, delete σε μαζικά statements είναι πιό γρήγορη από την Transact SQL από τό να γίνεται μέσω DataAdapter
    Ιωάννης Μανουσάκης
  •  08-01-2007, 11:48 23200 σε απάντηση της 23190

    Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    Εννοείται !!! Αλλά απ'ότι φαίνεται, υπάρχει σαφές requirement να υπάρχει ενδιάμεσα κάποιο application ... παν/κή εργασία μου μυρίζει;
    Angel
    O:]
  •  09-01-2007, 12:08 23254 σε απάντηση της 22828

    Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    καλημέρα

    Δέν είναι παν/κή εργασία, έχω τελειώσει απο αυτό πρόσφατα.Είναι ένα project που κάνω για να μάθω διάφορες τεχνολογίες που σίγουρα θα μου ζητηθούν.

    Λοιπόν στο ψαχνό, μπορώ να μεταφέρω τα δεδομένα που έχω σε ένα dataset σε ένα αλλο dataadapter και αυτά με την σειρά τους να τα ποθηκεύσω στην νέα βάση δεδομένων???
  •  09-01-2007, 15:27 23277 σε απάντηση της 23254

    Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    Έχεις ένα DataAdapter με ένα Dataset που κατεβάζεις τά δεδομένα που θέλεις να περάσεις στην άλλη βάση.

    Κατόπιν έχεις ένα DataAdapter και ένα Dataset από την βάση που θέλεις να εισάγεις τά δεδομένα.

    Κάνεις fill τους δύο DataAdapter καλό είναι στόν δεύτερο DataAdapter για να μην κατεβάσεις δεδομένα να προσθέσεις στό SelectCommand.CommandText και WHERE 0=1

    Κατόπιν κάνεις import τα rows του πρώτου Dataset στο άλλο (αυτό μπορεί να γίνει με διάφορους τρόπους αν η δομή τών Dataset είναι η ίδια χρησιμοποίησε την ImportRow ) και κάνεις update στον δεύτερο DataAdapter
    Ιωάννης Μανουσάκης
  •  09-01-2007, 15:59 23279 σε απάντηση της 23277

    Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    Γιατί να μην έχεις και την πίτα ολόκληρη και τον σκύλο χορτάτο; Ο καλύτερος τρόπος είναι να χρησιμοποιήσεις την κλάση SQLBulkCopy του ADO.NET 2.0. Θα πετύχεις ταχύτητες ανάλογες του DTS καθώς χρησιμοποιεί TDS (Tabular Data Sream) πακέτα αλλά θα έχεις ικανοποιήσει και το requirement να γίνεται η δουλειά μέσω εφαρμογής. Για περισσότερα δες εδώ, έχει και παράδειγμα ακριβώς αυτού που προσπαθείς να κάνεις: http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx


    Vir prudens non contra ventum mingit
  •  09-01-2007, 18:32 23282 σε απάντηση της 23279

    Hmm [^o)] Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    Αν έχω καταλάβει καλά πρόκειται για ένα module το οποίο δε θα τρέξει μιά φορά και τέλος αλλά μιλάμε για μία ongoing διαδικασία που θα τρέχει σε τακτά χρονικά διαστήματα.
    Αν θεωρήσουμε λοιπόν ότι και τα δύο dataset περιέχουν αρκετούς πίνακες τα πράγματα περιπλέκονται λιγάκι, οπότε και χρειάζεσαι "στρατηγική".
    Πρώτον καλό θα είναι να έχεις φροντίσει στο κάθε dataset νσ έχεις relations οπότε και να προστατευθείς από ξεκρέμαστα δεδομένα. Έπίσης πρέπει να σκεφθείς τι γίνεται με τις διαγραφές και με τις τροποποιήσεις δεδομένων.

    Ας θεωρήσουμε ότι το Dataset A είναι η πηγή και το Β ο στόχος

    // Δημιουργία του Dataset A instanse
    // Γέμισμα του Dataset A με δεδομένα με την χρήση Dataadapters από την βάση πηγή
    // Δημιουργία του Dataset Β instanse
    // Γέμισμα του Dataset B με δεδομένα με την χρήση Dataadapters από την βάση στόχο

    // Merge (συγνώμη για το αγγλικό δε μου έβγαινε καλύτερο) τα δεδομένα των δύο dataset στο 2ο
    // το Merge είναι ολόκληρη ιστορία και εξαρταάται αν το κάθε datatable στο A έχει ίδιο
    // structure με το αντίστοιχο datatable στο dataset B
    // Οπότε εδώ πρέπει να αποφασίσεις κάθε φορά αν θα χρησιμοποιήσεις το merge στο datatable
    // (δουλεύει στο NET 2.0 only for datatables) ή πας για μεγάλες λούπες με συγκρίσεις κλειδιών
    // οπότε βοήθεια σου

    // Το καλό είναι βέβαια ότι μετά από αυτή τη διαδικασία έχεις ότι πιο αξιόπιστο γίνεται για το
    // συγκεκριμμένο τρόπο migration και έχεις τα new, modified, deleted rows

    // Ακολουθεί το UPDATE του κάθε datatable στο dataset B και τελείωσες.

    Επίσης θα πρέπει να αποφασίσεις αν όλα τα παραπάνω θα τρέξουν σε transaction ώστε να είσαι σίγουρος αν μπήκαν όλες οι εγγραφές.

    Οι αποφάσεις είναι δικές σου ανάλογα με τις απαιτήσεις που έχεις οι οποίες δεν ήταν και τόσο ξεκάθαρες


    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  10-01-2007, 10:05 23298 σε απάντηση της 22828

    Απ: Μεταφορά δεδομένων απο μία βάση σε μια άλλη μέσω εφαρμογής

    ευχαριστώ παιδιά για τα replies..θα το κοιτάξω το θέμα με το bulkcopy και αν δεν βγεί άκρη εν τέλει τις stored procedures και θα σας πω τα αποτελέσματα..

Σελίδα 2 από 2 (22 εγγραφές)   < 1 2
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems