INSERT E UPDATE DE FOTO/IMAGEM NO FIREBIRD

JMSGRILO 03/09/2014 11:08:44
#440909
Olá!
Estou com problemas para inserir e alterar foto em um banco firebird. Alguém tem alguma ideia que como se faz isso ?
Estou usando um código que fazia a inserção e alteração, porem copiei de uma aplicação que usava o acess. Como estou migrando o programa para firebird, estou tendo esta dificuldade.
Segue abaixo o código que estou utilizando

Dim fst As New FileStream(Application.StartupPath + [Ô]\phoenix.dat[Ô], FileMode.Open)
Dim arrbyte(fst.Length) As Byte
fst.Read(arrbyte, 0, arrbyte.Length)
fst.Close()
Dim s1 As String = [Ô]UPDATE REGISTRO SET [FOTO]=? WHERE IDCLIENTE =[ô][Ô] & IDCLI.Text & [Ô][ô][Ô]
Dim cmnd As New FbCommand(s1, conn)
Dim par As New FbParameter([Ô]@Imagem[Ô], FbDbType.Binary)

par.Value = arrbyte
par.Size = arrbyte.Length
cmnd.Parameters.Add(par)
conn.Open()
cmnd.ExecuteNonQuery()
conn.Close()

Desde já agradeço a todos.

Grilo
GUIMORAES 03/09/2014 14:11:24
#440916
Como está o campo no banco de dados?
Para foto no firebird, você deve utilizar o tipo BLOB.
ex: FOTO BLOB SEGMENT SIZE 4096
JMSGRILO 03/09/2014 14:43:03
#440917
Na tabela o campo está:
BLOB - SIZE 16384 - Binary
PROFESSOR 03/09/2014 16:09:14
#440923
Resposta escolhida
Tente algo assim:


[ô]...
conn.Open()
Using cmnd As FbCommand = conn.CreateCommand
cmnd.CommandText = [Ô]UPDATE REGISTRO SET [FOTO]=@Imagem WHERE IDCLIENTE=@Id[Ô]
cmnd.Parameters.AddWithValue([Ô]@Imagem[Ô], [ sua matriz com a imagem ])
cmnd.Parameters.AddWithValue([Ô]@Id[Ô], [ sua variável com o ID do registro ] )
Try
cmnd.ExecuteNonQuery()
Catch ex As Exception
Dim msg As String = ex.Message
While ex.InnerException IsNot Nothing
ex = ex.InnerException
msg &= String.Format([Ô]{0}{1}[Ô], ex.Message, vbNewLine)
End While
Message.Show(msg)
End Try
End Using
conn.Close()
[ô]...

JMSGRILO 03/09/2014 18:51:58
#440927
Valeu Professor!
Testei seu código e serviu como uma luva. Só fiz uma adaptação.
Obrigado pela ajuda.

Tópico encerrado , respostas não são mais permitidas