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

 

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

Dataset (DataTable) default values in dataset designer

Îåêßíçóå áðü ôï ìÝëïò vxan. Τελευταία δημοσίευση από το μέλος vxan στις 02-05-2006, 10:54. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-05-2006, 14:19 12234

    Big Smile [:D] Dataset (DataTable) default values in dataset designer

    Καλό μήνα σε όλους

    χρησιμοποιώντας το dataset designer στο παλιό αλλά και στο νέο Visual Studio αντιμετωπίζω το εξής πρόβλημα:

    Κάνοντας drag & drop ένα πίνακα από τη βάση δεν έρχονται τα default values που έχουν ορισθεί στη βάση. Βέβαια στη συνέχεια μπορείς να τα προσθέσεις χειροκίνητα πάνω στο datatable αλλά τι γίνεται όταν θα ξανακάνεις drag & drop το πίνακα μέσα στο dataset?

    Έλπιζα ότι στην νέα έκδοση του Visual Studio θα είχε ληθεί το πρόβλημα αλλά ...

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

    ΚΑΙ ΛΟΓΩ ΠΑΣΧΑ ΧΡΟΝΙΑ ΠΟΛΛΑ ΣΕ ΟΛΟΥΣ ΣΑΣ

     


    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  01-05-2006, 14:59 12236 σε απάντηση της 12234

    Απ: Dataset (DataTable) default values in dataset designer

    Θα απαντήσω με το σκεπτικό συζήτηση να γίνεται. Νομίζω πως η Microsoft δεν το βλέπει σαν πρόβλημα και ίσως για αυτό να μην το έχει φτιάξει ακόμα και πολύ πιθανό ούτε πρόκειται. Υπάρχει μία τάση από την πρώτη έκδοση του VS να χωρίζεται όλο και πιο πολύ το επίπεδο της βάσης με αυτό της εφαρμογής μας στο βαθμό που αυτό είναι δυνατό. Ίσως αυτό που ζητάς και να το αναφέρεις σαν πρόβλημα να το θεωρούν πλεονασμό και να μην ταιριάζει με το γενικότερο σκεπτικό τους. Θυμάμαι και μία άλλη περίπτωση που ενώ το ADO υποστήριζε μία λειτουργία το ADO.NET όχι μόνο δεν την υποστήριζε αλλά και ούτε επρόκειτο. Για όσους αναρωτιούνται μιλάω για Server Side Cursors που μπορούσες να ορίσεις στο Recordset αλλά όχι στο Dataset. Γενικά καμία φορά υπάρχει διαφορά με αυτό που νομίζουμε εμείς πρόβλημα με αυτό που μας δίνεται από την ομάδα ανάπτυξης του VS.

    Όπως είπα τα παραπάνω είναι στο πνεύμα συζήτηση να γίνεται. Είναι μία προσωπική γνώμη και ούτε έχω διαβάσει κάπου σχετικά με αυτό για το αν το έχει εν γνώση της η Microsoft και για το αν πρόκειται να κάνει κάτι.
  •  01-05-2006, 17:14 12239 σε απάντηση της 12234

    Απ: Dataset (DataTable) default values in dataset designer

    Η συμπεριφορά αυτή του designer υφίσταται για δύο λόγους.

    Ο πρώτος λόγος είναι ότι το DefaultValue property του DataColumn object δεν λειτουργεί με τον ίδιο τρόπο όπως οι default τιμές ενός πεδίου σε μια βάση. Στο πεδίο, μπορείς να ορίσεις ως default κάποιο expression το οποίο γίνεται evaluate κατά το insert. Για παράδειγμα, ορίζεις ως default το GETDATE() function ή μπορεί το expression αυτό να είναι ένα απλό literal δηλαδή να ορίζεις ως default value ένα string. Στο DataColumn μπορείς να ορίσεις μόνο literal. Κατ' επέκταση όταν κάνεις drag-n-drop από τον server explorer τον πίνακα αγνοεί τα default που έχουν τεθεί στα πεδία του πίνακα γιατί δεν μπορεί να τα κάνει parse μιας και τα expressions είναι platform specific (μπορεί να έχουν συντακτικό Access, SQL Server, Oracle, κλπ).

    O δεύτερος λόγος (για τον οποίο δεν έχει νόημα να κρατάς default values) είναι ότι για να εισαχθεί το default value ενός πεδίου κατά το insert θα πρέπει ή να παραληφθεί αυτό το πεδίο από το statement ή να χρησιμοποιηθεί το DEFAULT keyword ως τιμή. Αυτό όμως δεν μπορεί να το κάνει αυτόματα το ADO.NET γιατί όταν καλείς την Update μέθοδο του DataAdapter, τότε ο DataAdapter στέλνει ένα batch από Insert, Update, Delete statements τα οποία είναι έτοιμα και περιέχουν τιμές για κάθε πεδίο της εγγραφής, δηλαδή αυτά τα statements δεν γίνονται generate δυναμικά και per row (όπως γίνονταν στο ADO).

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


    Vir prudens non contra ventum mingit
  •  02-05-2006, 10:54 12250 σε απάντηση της 12239

    Απ: Dataset (DataTable) default values in dataset designer

    Μπράβο Μάνο

    ήσουν ακριβής, πολύ καλή απάντηση και ειδικά ο πρώτος λόγος που αναφέρεις νομίζω ότι είναι ιδιαίτερα ισχυρός. Αυτό θα πρέπει να μας προβληματίζει όταν ειδικά σχεδιάζουμε ένα σύστημα το οποίο θα πρέπει να είναι ανεξαρτητοποιημένο από τη βάση δεδομένων (στα πλαίσια του δυνατού πάντοτε). Αδίκως λοιπόν γκρίνιαξα ...


    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems