PROBLEMA AO GRAVAR IMAGEM USANDO O BLOB
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á
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á
tenta assim
da forma acima é como eu uso, e funciona até no seven
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
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 & [Ô][ô])[Ô]
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 & [Ô][ô])[Ô]
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
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
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.
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.
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
Pelo visto nem td do 3.51 esta melhor no 5.1 rsrsrs
Marcelo agradeço a ajuda
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