PROBLEMA AO GRAVAR IMAGEM USANDO O BLOB

ALVAROVB2009 21/11/2013 11:17:25
#431334
Galera estou usando o BLOB para salvar uma imagem no banco de dados, segue abaixo o esquema

Dim st As New ADODB.Stream
st.Type = adTypeBinary
st.Open
st.LoadFromFile Caminhodaimagem
Set rs = New ADODB.Recordset
rs.Open [Ô]Select * from imagem[Ô], Db, adOpenKeyset, adLockPessimistic
rs.AddNew
rs.!Imagem = st.Read
rs.Update
ou
Db.Execute [Ô]Insert into imagem (imagem) values([ô][Ô] & st.Read & [Ô][ô])[Ô]


Em meu pc esta funcionando perfeitamente, agora qdo passo o projeto para outro pc, não é grava a imagem, o campo fica null. Não da mensagem de erro algum, já atualizei os arquivos e nada.
Fiz um instalador na minha máquina e coloquei na segunda máquina e também não deu em nada, simplesmente ele ignora o comando e grava null no banco.
Detalhe a mesma imagem que esta no meu pc e que grava e exibe perfeitamente esta no segundo pc

Independente da forma que eu use a gravação no banco, eu coloquei as duas formas acima, da o mesmo resultado

Meu banco é mysql
Meu S.O Windows XP Service Pack 3
S.O do segundo pc, todas as configurações iguais ao meu pc

Alguém tem idéia do que pode estar de errado

Agradeço a todos desde já
MARCELO.TREZE 21/11/2013 19:14:41
#431345
tenta assim

Dim st As ADODB.Stream
Dim rs As ADODB.Recordset

Set st = New ADODB Stream
Set rs = New ADODB.Recordset

st.Type = adTypeBinary

rs.Open [Ô]Select * from imagem[Ô], Db, adOpenStatic, adLockPessimistic
st.Open
st.LoadFromFile Caminhodaimagem
rs.AddNew
rs!Imagem = st.Read
rs.Update
st.Close
rs.Close
Set rs = Nothing


da forma acima é como eu uso, e funciona até no seven
ALVAROVB2009 21/11/2013 19:25:44
#431346
Marcelo obrigado pelo retorno, no momento estou em casa e não tem como eu testar, pq como coloquei aqui funciona 100%

Más assim, essa forma que vc colocou não é a mesma forma que eu coloquei no exemplo, eu coloquei os dois tipo que tentei usar na máquina que não esta funcionando

Dim st As New ADODB.Stream
st.Type = adTypeBinary
st.Open
st.LoadFromFile Caminhodaimagem
Set rs = New ADODB.Recordset
rs.Open [Ô]Select * from imagem[Ô], Db, adOpenKeyset, adLockPessimistic
rs.AddNew
rs.!Imagem = st.Read
rs.Update
ou
Db.Execute [Ô]Insert into imagem (imagem) values([ô][Ô] & st.Read & [Ô][ô])[Ô]

MARCELO.TREZE 21/11/2013 19:32:53
#431347
então tente da maniera como coloquei as vezes a ordem do fator altera o produto outra diferença que notei foi aqui

você usa

rs.Open [Ô]Select * from imagem[Ô], Db, [txt-color=#e80000]adOpenKeyset[/txt-color], adLockPessimistic

eu uso estático

rs.Open [Ô]Select * from imagem[Ô], Db, [txt-color=#e80000]adOpenStatic[/txt-color], adLockPessimistic

bom você testa quando puder e posta ai o resultado

ALVAROVB2009 22/11/2013 09:21:32
#431355
Tentei todas as formas solicitadas e nada, sempre esta gravando null no banco ao invés da imagem

Coloquei uma cópia do projeto, como vc vai ver é uma cópia de um projeto daqui do vbmania, espero que ai de o erro de gravação da imagem.
ALVAROVB2009 22/11/2013 09:46:34
#431361
Vou deixar registrado, achei o problema, me deu um estalo e eu troquei o drive odbc 5.1 pelo 3.51 na abertura do banco, e funcionou perfeitamente a gravação e a recuperação da imagem.

Pelo visto nem td do 3.51 esta melhor no 5.1 rsrsrs

Marcelo agradeço a ajuda
ALVAROVB2009 22/11/2013 09:49:24
#431362
Vou deixar o tópico aberto hj, caso alguém saiba se tem como gravar a imagem no drive odbc 5.1 ou queira comentar algo a mais
Tópico encerrado , respostas não são mais permitidas