Dopo varie peripezie e aver consultato un bel po di forum sul .NET framework sono riuscito a tirare fuori la procedura per inserire queste benedette immagini nel database MySQL.
condivido qst mia conoscenza con tutti gli utenti del forum.
...... e non mi dite che c'era gia qlc in giro, xke NON HO TROVATO NIENTE!!!!![]()
tendo a precisare che il codice è scritto per VB.NET !!!! non so se è possibile convertire tutto in vb6 ?!?
allora.... comincio col dirvi che è stato necessario scaricare un driver di terzi (gratuito)
questo componente è praticamente uguale al componente OLEDB !!! solo per MySQL.
fatto questo aprite il progetto
inserite il riferimento a: "CoreLab.MySql" che dopo l'installazione si trova in "C:\Programmi\CoreLab\MySQLDirect.NET\CoreLab.MySq l.dll"
poi nel codice potete inserire all'inizio un bel
mentre questo è il codice per uplodare l'immagine nel databasecodice:Imports CoreLab.MySql
N.B. :codice:Public Function InsertImage(ByVal ImgPath As String, ByVal FieldName As String, ByVal Sql As String) As Boolean Try Dim objconn As New Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & DB_SERVER & ";DATABASE=" & DB_NAME & ";USER=" & DB_USER & ";PASSWORD=" & DB_PWD & ";OPTION=3;") objconn.Open() Dim stream As System.IO.FileStream Dim flength As System.Int32 = 0 stream = New System.IO.FileStream(ImgPath, System.IO.FileMode.Open, System.IO.FileAccess.Read) flength = CInt(stream.Length) Dim buffer(flength) As Byte stream.Read(buffer, 0, flength) Dim cmd As New Odbc.OdbcCommand(Sql, objconn) Dim param As Odbc.OdbcParameter = New Odbc.OdbcParameter(FieldName, Odbc.OdbcType.Binary) param.Value = buffer cmd.Parameters.Add(param) cmd.ExecuteNonQuery() cmd = Nothing stream.Close() objconn.Close() Catch ex As Exception Return False End Try Return True End Function Public Function LoadImage(ByVal FieldName As String, ByVal Sql As String) As System.Drawing.Image Dim img As System.Drawing.Image Try Dim objconn As New Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & DB_SERVER & ";DATABASE=" & DB_NAME & ";USER=" & DB_USER & ";PASSWORD=" & DB_PWD & ";OPTION=3;") objconn.Open() Dim cmd As New Odbc.OdbcCommand(Sql, objconn) Dim myReader As Odbc.OdbcDataReader = cmd.ExecuteReader() While myReader.Read() Dim buffer() As Byte buffer = myReader(FieldName) Dim stream As New System.IO.FileStream(Path.GetTempPath & "img.tmp", System.IO.FileMode.Create) stream.Write(buffer, 0, buffer.Length) img = img.FromStream(stream) stream.Close() Dim f As File If f.Exists(Path.GetTempPath & "img.tmp") = True Then f.Delete(Path.GetTempPath & "img.tmp") End While myReader.Close() cmd = Nothing objconn.Close() Catch ex As Exception Return Nothing End Try Return img End Function
database: test
tabella: myimages
campi: ID (int)
ImgField (blob)
mi manca la procedura per riprendere l'immagine.... ma qnd la completo la posto subito.....
SE AVETE MIGLIORIE scrivetele subito perchè ho intenzione di creare una bella guida per i prossimi utenti
CIAO

Rispondi quotando
