hi i am trying to put a file into a database
managed to do this by encoding the file to base64 but since that makes the file bigger i wanted to try something else and found (and changed) the code below.. but it gives me an error at the execute..


VB Code:
  1. Dim objStream As System.IO.Stream = System.IO.File.Open(filename, System.IO.FileMode.Open) : Dim buffer(objStream.Length) As Byte : Dim x As String
  2.         Dim uploadname As String
  3.         Dim sSQL As String = "INSERT INTO layers ('filename', 'source', 'eid') VALUES ('filename', source, eid)"
  4.         Dim command As New ADODB.Command
  5.         Dim param As New ADODB.Parameter
  6.         Dim param2 As New ADODB.Parameter
  7.         Dim param3 As New ADODB.Parameter
  8.  
  9.         uploadname = Mid(filename, InStrRev(filename, "\") + 1)
  10.         Dim enc As New System.Text.ASCIIEncoding
  11.         objStream.Read(buffer, 0, objStream.Length) : objStream.Close()
  12.         x = System.Convert.ToString(buffer)
  13.  
  14.         command.ActiveConnection = Con
  15.         command.CommandText = sSQL
  16.         command.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
  17.         param = command.CreateParameter("filename", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 100, uploadname)
  18.         command.Parameters.Append(param)
  19.         param2 = command.CreateParameter("source", ADODB.DataTypeEnum.adBSTR, ADODB.ParameterDirectionEnum.adParamInput, x.Length, x)
  20.         command.Parameters.Append(param2)
  21.         param3 = command.CreateParameter("eid", ADODB.DataTypeEnum.adTinyInt, ADODB.ParameterDirectionEnum.adParamInput, 4, eventid)
  22.         command.Parameters.Append(param3)
  23.    
  24.         command.Execute()
please help