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

 

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

Infragistics και πρόβλημα με GUID

Îåêßíçóå áðü ôï ìÝëïò m6s. Τελευταία δημοσίευση από το μέλος m6s στις 29-07-2008, 10:33. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-07-2008, 12:36 43461

    Infragistics και πρόβλημα με GUID

    Καλημέρα(!)

    Υπάρχει ένας άνθρωπος που έχει αντιμετωπίσει το εξής "παλαβό" πρόβλημα;

    Εχω ένα πίνακα Collation SQL_LATIN_850_CI_AI:
    id = GUID
    Description = πεδίο nvarchar

    Δημιουργώ ένα UltraCombo, και βάζω value το id και displaymember το Description.
    Όταν επιλέγω απτο combo βλέπω κανονικά τα λεκτικά, και αποθηκεύω μετά τα δεδομένα, οπότε στην βάση αποθηκεύεται το value. Σωστά.
    Όταν φορτώνω την εγγραφή, δεν "λέει", μα... με τίποτα να μεταφράσει το guid σε λεκτικό... παρόλο οτι οι τιμές είναι φορτωμένες στο combo.

    Δεν το κάνει πάντα. Δεν μπορώ να καταλαβώ, γιατί το κάνει.
    Το είδα και σε πίνακα που έχει μέσα 1000 guid, και εντόπισα καμιά 50αριά που το combo σε ultrawingrid, δεν μπορεί να τις μεταφράσει τις τιμές.

    Με έχει αρρωστήσει! Ick!
  •  16-07-2008, 18:15 43491 σε απάντηση της 43461

    Απ: Infragistics και πρόβλημα με GUID

    Κανένας ;
  •  16-07-2008, 22:25 43501 σε απάντηση της 43491

    Απ: Infragistics και πρόβλημα με GUID

    Μήπως επειδη δεν καταλαβαίνουμε τί ρωτάς? Τι εννοείς να "μεταφράσει"? Ένα combo δεν "μεταφράζει" τιμές σε λεκτικά αλλά περιέχει ζεύγη από τιμές και λεκτικά. Στο textbox του εμφανίζει το ζεύγος που έχει επιλεγεί. Στο απλό Combox επιλέγεις ένα ζεύγος με την SelectedIndex ή την SelectedItem. Κάτι αντίστοιχο θα έχει και το UltraCombo.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  18-07-2008, 10:41 43523 σε απάντηση της 43501

    Απ: Infragistics και πρόβλημα με GUID

    Οκ,

    Εχω φορτώσει τα ζεύγη : guid - τιμή.

    Τo combo τις έχει, μπορείς να τις επιλέξεις π.χ κλειδί: guid1 -> τιμή: Αρχείο.

    Όταν σώσω τα δεδομένα, και τα ξαναφορτώσω, αντί να δώ την τιμή "Αρχείο". βλέπω guid.

    Αυτό γίνεται είτε σε gridakia είτε σε combobox, της infragistics.

    Καλύτερα;Big Smile
  •  18-07-2008, 12:31 43525 σε απάντηση της 43523

    Απ: Infragistics και πρόβλημα με GUID

    Όχι. Πως τα σώζεις? Πως τα φορτώνεις? Με dataset ή δικό σου collection? Θέτεις σωστά τα DataSource, DataMember? Μήπως δεν χρησιμοποιείς καν data binding? Για να τα δείχνει διαφορετικά τη μία φορά και διαφορετικά την άλλη υποψιάζομαι ότι αλλιώς τα φορτώνεις την πρώτη φορά και αλλιώς τη δεύτερη, ή τα σώζεις ανάποδα, ή ... ή ...

    Το πιο πιθανό (99,999999999%) είναι το πρόβλημα να είναι στον κώδικα σου - αλλιως η Infragistics θα είχε λύσει το πρόβλημα πριν ... 10 χρόνια. Αν δεν δώσεις συγκεκριμένες πληροφορίες μόνο να μαντέψει μπορεί κανείς. Θα σου πρότεινα να δοκιμάσεις μέ ένα νέο καθαρό project, μία φόρμα και ένα combo μόνο επάνω και να βάλεις τον κώδικα που θα φορτώσει τις τιμές από τη βάση χρησιμοποιώντας databinding. Έτσι θα βεβαιωθείς ότι το control δουλεύει σωστά. Μετά πρόσθεσε βήμα-βήμα κώδικα για να δημιουργείς και να σώζεις νέες εγγραφές.
    Έτσι θα μπορέσεις να καταλάβεις και πως λειτουργεί το combo και που βρίσκεται το πρόβλημα.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  18-07-2008, 15:41 43528 σε απάντηση της 43525

    Απ: Infragistics και πρόβλημα με GUID

    Εμ..Χμ.. παρατηρώ λίγα αρνητικά vibes Gift

    Δεν είπα ποτέ οτι φταίει η infragistics.Cool

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

    Anyway, η απορία μου είναι άν έχει τύχει αυτό σε κανένα.Geeked

    Τώρα όσο για τα combo box, άντε να το φταίει αυτό που λές. Το πρόβλημα ότι το κάνουν Grid(!) αντικείμενα.Cake

    Υ.Γ: Πάντως απο παλαιότερη αναζήτηση σε θέματα infragistics, η εταιρεία δεν φημίζεται ότι άμεσα λύνει θέματα και προβλήματα στα objects...

    Anyway, ευχαριστώ και σίγουρα θα ανεβάσω ένα παράδειγμα όσο πιο άμεσα μπορέσω, για...meditation Big Smile
  •  21-07-2008, 23:58 43586 σε απάντηση της 43528

    Απ: Infragistics και πρόβλημα με GUID

    Φίλε m6s,

    Το πρόβλημα που αναφέρεις εχει να κάνει με το οτι το combo έχει value πχ({124121-4142.....}) αλλά όταν ξαναφορτώνεις την λίστα δεν έρχετε αυτή η εγγραφή με το συγκεκριμένο GUID.

    Με λίγα λόγια, η Infrafistics σου δείχνει το DisplayMember όταν το ValueMember υπαρχει στην λίστα, αλλιώς θα σου δείξει το ID!!!

     Για να το αποφύγεις αυτό κάνε το Combo πρίν ξαναφορτώσεις την λίστα Combo.Value = null.

     

    Ελπίζω να βοήθεισα

    Νάσος


    "Success is the ability to go from one failure to another with no loss of enthusiasm."
    Winston Churchill

    "Quality means doing it right when no one is looking."
    Henry Ford

  •  22-07-2008, 08:43 43589 σε απάντηση της 43586

    Απ: Infragistics και πρόβλημα με GUID

    Νάσο, αν ισχύει αυτό που λές, τότε μάντεψες ότι ο m6s φορτώνει διαφορετικά δεδομένα απ' ότι περιμένει. Ωραίος!


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-07-2008, 13:03 43600 σε απάντηση της 43589

    Απ: Infragistics και πρόβλημα με GUID

    Απλά Παναγιώτη μου έχει συμβεί πολλές φορές, αφου εδώ και 5 χρόνια χρησημοποιώ τα Controls της Infragistics, και οφείλω να πώ, ως απάντηση στον m6s, ότι το Forum της Infragistics ειναι πολύ καλό και απαντά αρκετά γρήγορα!


    "Success is the ability to go from one failure to another with no loss of enthusiasm."
    Winston Churchill

    "Quality means doing it right when no one is looking."
    Henry Ford

  •  29-07-2008, 09:37 43761 σε απάντηση της 43600

    Απ: Infragistics και πρόβλημα με GUID

    Σας ευχαριστώ παιδιά για τις απαντήσεις αλλά τελικά βρήκα τι συμβαίνει και νομίζω είναι..."απίστευτο".

    Τα guid φαίνεται από κάποιο σημείο του κώδικα (προφανώς) μπαίνανε ΚΑΙ μικρά ΚΑΙ μεγάλα.
    Με αποτέλεσμα ότι είναι με μικρά γράμματα, η εφαρμογή δεν το αναγνώριζε(!). Όχι όμως μια inner join ερώτηση στον server. Αυτός το καταλάβαινε.

    Το ανησυχιτικό, είναι άλλο. Η βάση είναι CI_AI ως προς το collation. Έπρεπε να αντιμετωπίζουμε τέτοιο θέμα;


  •  29-07-2008, 09:58 43763 σε απάντηση της 43761

    Απ: Infragistics και πρόβλημα με GUID

    Ναι. Όταν επιλέγεις μία τιμή στο Combo, οποιοδήποτε Combo, η αναζήτηση γίνεται με την Equals του τύπου της τιμής. Αν ο τύπος του Value είναι String, θα δουλέψει η String.Equals() η οποία είναι Case Sensitive. Αν ο τύπος είχε παραμείνει GUID, ή έστω αν είχε μετατραπεί σε string με την Guid.ToString() δεν θα υπήρχε τέτοιο πρόβλημα.
    Όσον αφορά τη βάση, το collation δεν παίζει κανένα ρόλο αν η στήλη με τα Guids έχει οριστεί ως uniqueidentifier, καθώς ο τύπος αυτός είναι binary και όχι string. Όταν κάνεις την αναζήτηση ο SQL Server μετατρέπει το string σε binary και μετά κάνει την αναζήτηση. Αν χρησιμοποιήσεις parameterized query ή stored procedures δεν θα γίνει καν μετατροπή.

    Γενικά είναι κακή τακτική να χρησιμοποιεί κανείς strings αντί για συγκεκριμένους τύπους, ακριβώς επειδή προκύπτουν προβλήματα σαν κι αυτό που αντιμετώπισες. Παρόμοια προβλήματα δημιουργούνται με αριθμούς και ημερομηνίες όταν χρησιμοποιεί κανείς χύμα SQL αντί για stored procedures ή parameterized queries. Σε κάθε περίπτωση το πρόβλημα είναι ότι αντί να διατηρηθεί ο τύπος των δεδομένων, όπως είναι η defaul συμπεριφορά, για κάποιο λόγο αυτά μετατρέπονται σε strings.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-07-2008, 10:33 43765 σε απάντηση της 43763

    Απ: Infragistics και πρόβλημα με GUID

    Ενα δεν κατάλαβα. "Γενικά είναι κακή τακτική να χρησιμοποιεί κανείς strings αντί για συγκεκριμένους τύπους".

    Επειδή δεν χρησιμοποιώ parameterized query. Είμαι κολλημένος με ένα access layer, που δεν έχω την πολυτέλεια να αλλάξω. Κάνω τα εξής όταν θέλω κάτι γρήγορο απο την βάση:
        1. Όταν θές να αποθηκεύσεις μια νέα εγγραφή στην βάση και χρησιμοποιείς GUID, καλείς την System.Guid.NewGuid().ToString().
    και τώρα που βρήκα το πρόβλημα:
        2. Για να μην ξαναέχω πρόβλημα, μετατρέπω την εντολή σε System.Guid.NewGuid().ToString().ToUpper().

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

    Μια και το φερε το θέμα, τι data access layer χρησιμοποιείται γενικά;
    custom? proprietary? opensource?
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems