Paytor Δημοσ. 11 Σεπτεμβρίου 2006 Δημοσ. 11 Σεπτεμβρίου 2006 Καλημέρα! Προσπαθώ να αποθηκεύσω εικόνες στον SQL Server 2000 απο την Visual Basic μέσω του ADODB.Stream object 2.6 αλλα οταν φτάνει να κάνει update στο Recordset μου βγάζει το εξής σφάλμα:[Microsoft][ODBC SQL Server Driver] Incorrect syntax near the keyword 'File' οπου File είναι το όνομα του πεδίου στην βάση τύπου image στο οποίο αποθηκέυω την εικόνα.Εχω κάνει πολλες αλλαγές στον κώδικα αλλα δεν δούλεψε σωστά.Μέχρι στιγμής το έχω καταφέρει μόνο με την ιδιότητα AppendChunk αλλα με το ADODB.Stream όχι.Καμία βοήθεια??? Ευχαριστώ!
Paytor Δημοσ. 11 Σεπτεμβρίου 2006 Μέλος Δημοσ. 11 Σεπτεμβρίου 2006 Μια λεπτομέρεια που ξέχασα να αναφέρω:Μιλάω για Visual Basic 6 και οχι Visual Basic.NET
Infrared Δημοσ. 11 Σεπτεμβρίου 2006 Δημοσ. 11 Σεπτεμβρίου 2006 Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim mstream As ADODB.Stream Dim i As Integer Set cn = New ADODB.Connection cn.Open "Provider=MSDataShape.1;Persist Security Info=True;Data Source=mysqlserver;User ID=sa;Password=12345;Initial Catalog=pubs;Data Provider=sqloledb.1" Set rs = New ADODB.Recordset rs.Open "Select * from authors where au_id = '172-32-1176'", cn, adOpenKeyset, adLockOptimistic Set mstream = New ADODB.Stream mstream.Type = adTypeBinary mstream.Open mstream.LoadFromFile "c:\buttons.gif" rs.Fields("AuthorPhoto").Value = mstream.Read rs.Update rs.Close cn.Close To field AuthorPhoto εχει type image
Paytor Δημοσ. 11 Σεπτεμβρίου 2006 Μέλος Δημοσ. 11 Σεπτεμβρίου 2006 Ετσι ακριβώς το έχω κάνει και εγώ.Απλά εχει βάλει και ενα CommonDialog για να διαλέγω την εικόνα που θα αποθηκεύσω ως εξής CommonDialog1.ShowOpen strFileName = CommonDialog1.FileName οπου strFileName το έχω δηλώσει As String και to φορτώνω ετσι mstream.LoadFromFile (strFileName).Επίσης στο σημείο οπου κάνεις ενα μικρο query για το recordset έβαλα το παρακάτω:rs.Open "Select * from Image", cn, adOpenKeyset, adLockOptimistic όπου Image έιναι το όνομα του πίνακα.Ο πίνακας εριέχει 3 στοιχεία 1)το πεδίο File τύπου image 2)Το πεδίο Name τύπου varchar και 3)Το πεδίο Size τύπου int.To σφάλμα όμως δεν άλλαξε.Μου το βγάζει ακόμα.
Paytor Δημοσ. 11 Σεπτεμβρίου 2006 Μέλος Δημοσ. 11 Σεπτεμβρίου 2006 Για να εμφανίζει το όνομα(Name) και το μέγεθος(Size) της εικόνας στην βάση κάνω το εξής rs.Fields("Name").Value = CommonDialog1.FileTitle rs.Fields("Size").Value = FileLen(strFileName) αλλα το προβλημα δεν είναι σε αυτα τα δύο,πρέπει να είναι στο File οπως αναφέρω και στο σφάλμα που μου βγάζει. rs.Fields("File").Value = st.Read
sotospez Δημοσ. 14 Σεπτεμβρίου 2006 Δημοσ. 14 Σεπτεμβρίου 2006 ayto poy soy epistrefi o sql einai oti exeis dosi lathos SQL desd ligo to select soy mipos o sql einai CS kai theli kefalea i mikra opos einai gramena stin basi des gia kana ' ksexasmeno
sotospez Δημοσ. 14 Σεπτεμβρίου 2006 Δημοσ. 14 Σεπτεμβρίου 2006 ayto poy soy epistrefi o sql einai oti exeis dosi lathos SQL desd ligo to select soy mipos o sql einai CS kai theli kefalea i mikra opos einai gramena stin basi des gia kana ' ksexasmeno
Paytor Δημοσ. 15 Σεπτεμβρίου 2006 Μέλος Δημοσ. 15 Σεπτεμβρίου 2006 Τελικα βρήκα το λάθος.Αντι να χρησιμοποιήσω ADODB New Recordset έκανα το εξής : φόρτωσα την εικόνα κανονικά στο stream object και μετα για να την αποθηκεύσω στην βάση έβαλα Adodc1.Recordset.Fields("File").Value = st.Read και δούλεψε κανονικά!Ευχαριστώ πάντως για την παρατηρηση σου πάνω στο θέμα!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.