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

 

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

Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

Îåêßíçóå áðü ôï ìÝëïò cap. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 27-05-2010, 14:58. Υπάρχουν 12 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-11-2006, 22:17 19662

    Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Θελω να κάνω εισαγωγή δεδομένων σε ένα πεδίο image ενός πίνακα που βρίσκεται σε SQL Server 2000. Το σενάριο είναι απλό: Ο χρήστης, μέσω μιας Windows Forms εφαρμογής θα πατάει ένα κουμπάκι, θα διαλέγει ένα αρχείο από το αντίστοιχο instance του FileOpenDialog και αυτό το αρχείο θα εισάγεται (μαζί με άλλες πληροφορίες που θα έχουν συμπληρωθεί) σε ένα ή περισσότερους πίνακες.

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

    Προσωπικά χρειάστηκα μόνο μια γραμμή (εντάξει, δύο) για να δημιουργήσω ένα byte array το οποίο μετά μπορώ να χρησιμοποιήσω σε κάποιο Sql Insert (για το testing χρησιμοποιησα ένα dataset που έφτιαξα τσατρα-πατρα και ένα όμορφο - generated - INSERT sql statement το οποίο δέχεται, φυσικά, bytearray ως παράμετρο όταν το αντίστοιχο πεδίο είναι image):

    Dim bindoc As Byte()
    bindoc = File.ReadAllBytes(strFilePath)

    Οπου strFilePath είναι αυτονόητο τι είναι, και binDoc είναι το byteArray στο οποίο θα μπεί η πληροφορία η οποία μετά θα εισαχθεί στον SQL Server. Το δοκίμασα, και ταυτοχρονα δοκίμασα να το "ξαναβγάλω" στο δίσκο μου και να το φορτώσω. Φάνηκε να δουλεύει.

    Αρα γιατί ο καθείς φτιάχνει streams, streamreaders, και όλα τα συναφή; Μήπως κάτι μου διαφεύγει;


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  01-11-2006, 22:22 19663 σε απάντηση της 19662

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Να συμπληρώσω, για να είμαι πιό σαφής στο παραπάνω, οτι τα αρχεία που θα εισάγονται θα είναι οτιδήποτε: Doc, Xls, Ppt, Zip, Rar, Jpeg, Tiff...


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  01-11-2006, 23:18 19667 σε απάντηση της 19662

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Αν είναι σαν MemoryStream δεν χρειάζεται να το σώσεις στον δίσκο σου για να το δείξεις (view) στον χρήστη, οπότε χρειάζεται λιγότερο χρόνο για να φορτώσει κλπ κλπ..
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  01-11-2006, 23:20 19668 σε απάντηση της 19663

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Σε .ΝΕΤ 1.1 χρειάζονται όλα αυτά. Στο 2.0 είναι πιο εύκολα τα πράγματα... Smile

    Ααααχχχ... Θυμάμαι την εποχή του 1.1. Τότε ναι, γράφαμε κώδικα! Όχι τώρα που με δυο γραμμές καθαρίζεις! Σήμερα οι νέοι έχουν κακομάθει...
    Vir prudens non contra ventum mingit
  •  01-11-2006, 23:31 19669 σε απάντηση της 19667

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

     pkefal wrote:
    Αν είναι σαν MemoryStream δεν χρειάζεται να το σώσεις στον δίσκο σου για να το δείξεις (view) στον χρήστη, οπότε χρειάζεται λιγότερο χρόνο για να φορτώσει κλπ κλπ..

    Αχα! Κααααποιος μου είχε υποσχεθεί στο τελευταίο community event να μου δώσει σχετικό κώδικα :). Ελα εδώ τώρα πουλάκι μου, για γράψε και ενα snippet το πώς φορτώνεις blob απο sql ως memorystream και κάνεις view από memorystream να μην ψάχνομαι...(windows forms εφαρμογή). :)


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  01-11-2006, 23:33 19670 σε απάντηση της 19668

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

     KelMan wrote:
    Σε .ΝΕΤ 1.1 χρειάζονται όλα αυτά. Στο 2.0 είναι πιο εύκολα τα πράγματα... Smile

    Ααααχχχ... Θυμάμαι την εποχή του 1.1. Τότε ναι, γράφαμε κώδικα! Όχι τώρα που με δυο γραμμές καθαρίζεις! Σήμερα οι νέοι έχουν κακομάθει...

    Χε! Ξέχασα το σημαντικότερον κατά την εκφώνηση, οτι φυσικά ήταν 2.0!

    Ναι, οι νέοι με άσπρα μαλλιά έχουν όντως κακομάθει! :) Σέ αυτή τη φάση θα ήταν χαρούμενοι να πληρώνουν άλλους να τους κάνουν αυτές τις δουλειές :) :) :)

     

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  02-11-2006, 00:49 19673 σε απάντηση της 19670

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Και άλλος ένας λόγος να χρησιμοποιήσεις stream και όχι το ReadAllBytes είναι για να φορτώσεις μεγάλα αρχεία σταδιακά.
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  02-11-2006, 00:50 19674 σε απάντηση της 19673

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    ή επίσης ασύγχρονα ή να περάσεις τα περιεχόμενα του αρχείου σε κάποιο άλλο stream (π.χ. σε network stream).
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  02-11-2006, 01:03 19676 σε απάντηση της 19669

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

     cap wrote:

     pkefal wrote:
    Αν είναι σαν MemoryStream δεν χρειάζεται να το σώσεις στον δίσκο σου για να το δείξεις (view) στον χρήστη, οπότε χρειάζεται λιγότερο χρόνο για να φορτώσει κλπ κλπ..

    Αχα! Κααααποιος μου είχε υποσχεθεί στο τελευταίο community event να μου δώσει σχετικό κώδικα :). Ελα εδώ τώρα πουλάκι μου, για γράψε και ενα snippet το πώς φορτώνεις blob απο sql ως memorystream και κάνεις view από memorystream να μην ψάχνομαι...(windows forms εφαρμογή). :)



    byte[] buffer;
    MemoryStream nStream = new MemoryStream(buffer);
    Image nImage = Image.FromStream(nStream, false);
    pictureBox1.Image = nImage;


    Το μόνο που έχεις να κάνεις είναι να μετατρέψεις το BLOB που διαβάζεις σε byte array.
    Ο SqlDataReader έχει ενα method το οποίο λέγεται GetBytes() με το οποίο μπορείς να επιστρέψεις το column σε byte array.

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  02-11-2006, 13:01 19698 σε απάντηση της 19662

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    και συνεχίζω... άλλη μια ωραία χρήση είναι η εξής:

    Μπορείς να κάνεις τη συνάρτηση που αποθηκεύει την εικόνα σου να δέχεται stream αντί byte array οπότε να τις περνάς ένα file stream ή memory stream κλπ. Θα μπορείς να αποθηκεύσεις έτσι εικόνα που να προέρχεται είτε από αρχείο είτε από την μνήμη χωρίς η συνάρτησή σου να το ξέρει.
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  05-11-2006, 15:37 19853 σε απάντηση της 19662

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Λοιπόν πιστεύω οτι σε σχέση με το αρχικό ερώτημα με καλύψατε πλήρως, οπότε κλείνω το post ως απαντημένο. Ευχαριστώ για τις διαφωτιστικές παρατηρήσεις!


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  27-05-2010, 14:51 58837 σε απάντηση της 19853

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Μπορούν τα stream να επικοινωνήσουν με Java?
    Ενα αρχείο txt να γίνει bytes σε C# και να αναδομηθεί σε Java ? ( Θυμίζει λίγο "Μύγα" )
  •  27-05-2010, 14:58 58839 σε απάντηση της 58837

    Απ: Εισαγωγή δεδομένων σε BLOB πεδίο πίνακα στον SQL Server - απορία

    Η ερώτηση σου είναι λίγο ...... ξεκάρφωτη. Τί εννοείς και γιατί "κολλάς" την ερώτηση σε ένα thred το οποίο έκλεισε πριν 4 χρόνια?

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


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems