FOTO SE RECUSA A IR DE UM BD PARA OUTRO

MARCOS 15/03/2016 14:16:07
#459230
Boa tarde!
Prezados colegas,
De vez em quando surgem aquelas tarefas,que nunca se fez
ou se fez, foi a muito tempo atrás e não lembramos como fazer.
Pesquisei ,mas não encontrei resposta.Logo...

Dúvida:

Como transportar imagens (Fotos) de uma Base de dados Oracle, para
uma base de dados Sql Server em modo de execução ( No código) ?

Tentei usar um DataTable, para ler a tabela , com as imagens do Oracle, e consegui ler tranquilo.
Mas,ao tentar inserir as imagens do DataTable, numa tabela do SqlServer,surge uma mensagem
indicando problema de tipo de campo.

Obs: é claro que a tabela de destino da imagem, no SqlServer, eu atribui o Tipo Image . Mas,mesmo
assim não funciona.

Algum colega pode ajudar
KERPLUNK 15/03/2016 14:41:00
#459232
E nem vai funcionar desse jeito. Salve a foto, leia novamente com o tipo correto do Sql Server e então inclua.
ACCIOLLY 15/03/2016 14:52:46
#459239
Eu ainda preferia salvar a imagem na máquina e gravar no bd apenas o caminho.
DAMASCENO.CESAR 15/03/2016 16:24:11
#459253
pra salvar a imagem na pasta temp

Dim fileName As String = Path.GetTempFileName()
img = PctImagem.Image
File.Delete(fileName)
img.Save(fileName)
Dim CAMINHO As String = fileName

nunca trabalhei com SqlServer, então não sei como inserir a img no banco de dados, mas com o caminho temporário deve ser possível
PLUGSOFTSM 15/03/2016 17:03:50
#459254
Primeiro passo... leia a imagem do oracle e converta-a para um tipo image

No sql server pode-se usar a rotina abaixo para ler a imagem do Banco de dados
No oracle não sei como se faz

dim Pic as image = nothing
If Not IsDBNull(Rst!Logo) Then
Dim Img As New MemoryStream(CType(Rst!Logo, Byte()))
Pic = Image.FromStream(Img)
End If


Para gravar a imagem no Sql Server,

if not Pic is Nothing
Dim Img As New MemoryStream
Pic.Save(Img, Pic.RawFormat)
Dim ArrImage() As Byte = Img.GetBuffer
[ô]Aqui gravar a imagem bo BD do sqlserver. O valor de ArrImage() é que deve ser informado para gravar no Banco de dados
Endif

Esqueci de colocar que Rst!Logo é a imagem recuperada no Banco de dados Sql Server
FFCOUTO 15/03/2016 17:15:31
#459255
Resposta escolhida
Uma outra alternativa (NÃO FIZ TESTES) seria você ler a imagem do banco Oracle e salvá-la em uma variável byte array (byte[]) e, em seguida, salvar no SQL usando essa variável, da mesma forma que seria feito para ler uma imagem do disco e salvá-la no banco.
Tópico encerrado , respostas não são mais permitidas