Θελω να κάνω εισαγωγή δεδομένων σε ένα πεδίο 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