Visual Basic.NET - Ayuda con error "There was an error parsing the query."

 
Vista:

Ayuda con error "There was an error parsing the query."

Publicado por Dinfevo (1 intervención) el 24/05/2012 16:58:50
Buenas.
Tengo una aplicación en el cual quiero guardar una imagen del picturebox a una base de datos SQL CE 3.5, el problema es el siguiente:
Al ejecutar los queries me despliega el siguiente error "There was an error parsing the query. [ Token line number = 1,Token line offset = 2268,Token in error = RT403 ]"
Antes no tenia este problema, estaba utilizando como base de datos MySql y funcionaba perfectamente, pero decidí migrar a Sql CE 3.5 ya que es una base de datos local.
En MySQL la imagen lo guardaba en un campo tipo BLOB, ahora lo estoy tratando de guardar en un campo tipo IMAGE.

este es el código que estoy utilizando:

Dim cmdBuilderRTL04 As New SqlCeCommandBuilder
Dim cmdBuildStr4 As String = "SELECT RT401, RT402, RT404, RT403 FROM RTL04 WHERE RT401= " & txtNoEmp.Text & "'"
Dim cmdstr4 As String = "INSERT INTO RTL04(RT401, RT402, RT404, RT403, RT405) VALUES('" & txtNoEmp.Text & "', '" & str.ToString & "', '" & Format(Today, "yyyy-MM-dd") & "', ?RT403, " & listbox.SelectedValue.ToString & ")"
Dim cmdstr4Update As String = "UPDATE RTL04 SET RT402='" & str & "', RT403= ?RT403, RT404= '" & Format(Today, "yyyy-MM-dd") & "', RT405= '" & lstbDedo.SelectedValue.ToString & "' WHERE RT401= " & txtNoEmp.Text & ""
Dim mypar As New SqlCeParameter("@RT403", SqlDbType.Image)
Dim strExist As String = "SELECT RT401 FROM RTL04 WHERE RT401= '" & txtNoEmp.Text & "'"

Try
ds = New RelojDataSet
conn = New SqlCeConnection(constr)
da4 = New SqlCeDataAdapter(cmdBuildStr4, conn)
Dim arrfotoh() As Byte = Nothing
Dim fotodehuella As Image
fotodehuella = picHuella.Image
'esta es una función que cree para transformar la imagen de imagen a byte
arrfotoh = Conversion.ImageToByte2(fotodehuella)

mypar.Value = arrfotoh
mypar.Size = arrfotoh.Length

If conn.State = False Then

Try

conn.Open()
cmdBuilderRTL04 = New SqlCeCommandBuilder(da4)
Dim cmdRTL04 As New SqlCeCommand(cmdstr4, conn)
cmdRTL04.Parameters.Add("?RT403", arrfotoh)
Dim cmdExist As New SqlCeCommand(strExist, conn)
Dim exists As String ' = cmdRTL04.ExecuteScalar().ToString

exists = cmdRTL04.ExecuteScalar.ToString
updateCMD:

If MessageBox.Show("Desea reemplazar la actual por la nueva?", "Existente", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes Then
mypar.Value = arrfotoh
mypar.Size = arrfotoh.Length
cmdRTL04 = New SqlCeCommand(cmdstr4Update, conn)
cmdRTL04.Parameters.Add("?RT403", arrfotoh)
cmdRTL04.ExecuteNonQuery()

Else
GoTo noCMD
End If
GoTo noCMD

insertCMD:
cmdRTL04.ExecuteNonQuery()

noCMD:
conn.Close()


Catch sqlex As SqlException
If sqlex.Number = 1062 Then
GoTo updateCMD
Else
MsgBox("" & sqlex.Number & ": " & sqlex.Message & "", MsgBoxStyle.Critical, "ERROR EN BASE DE DATOS!")
End If
Catch nullex As NullReferenceException
GoTo insertCMD
'conn.Close()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "ERROR DE EXCEPCION!")



De antemano muchísimas gracias por su ayuda !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder