Ajuda com RTF em crystal report

PJ

Power Member
Boas,

O problema é o seguinte :

Importo um ficheiro rtf com texto e imagens e converto-o para um byte array deste modo :

Código:
Dim path As String = openfile.FileName()
stream = New FileStream(path, FileMode.Open, FileAccess.Read)
Dim buffer(CType(stream.Length, Integer)) As Byte
stream.Read(buffer, 0, CType(stream.Length, Integer))
stream.Close()

Depois submeto-o na base de dados, a coluna é do tipo image.
No crystal, ao ir buscar este campo ele não me consegue interpretar correctamente o que está na base de dados.

A base de dados é em sql, testei inserir um objecto através do Access e o crystal já me interpreta os dados correctamente.

Alguém me pode dar uma ajuda?

Existirá maneira de converter o meu array de bytes num objecto igual ao que o Access introduz na bd? Penso que seja OLE...

Cumps
 
Fiz uma aplicação que guarda PDF's na bd..
Mas tens de fazer o insert correctamente com os devidos parametros senão não funciona.. Tipo de dados para o campo da tabela tem que ficar como Blob
http://www.microsoft.com/technet/prodtechnol/sql/2000/reskit/part3/c1161.mspx


Boas,

A inserção na bd é feita correctamente. Se eu ler o que escrevi na bd e colocar numa RichTextBox está tal e qual o documento rtf.

O problema é o crystal que não me interpreta isto da mesma forma, mas obrigado na mesma.

Cumps
 
Penso que a solução passa por criar um objecto OLEDB, pois acho que é isso que o Access faz, para inserir na base de dados, mas não sei como fazer isso...

Alguma ajuda?
 
Ok problema resolvido da seguinte forma :

Insiro na bd o texto do rtf numa coluna do tipo ntext. Se ler da bd os dados vêm todos ok, excepto as images, como já tinha dito. Estas são acrregadas para outra coluna do tipo image ;).

O field do crystal tem que estar para interpretar RTF.

É uma solução, mas tem que se utilizar duas colunas na bd quando talevz se pudesse utilizar apenas uma...

Cumps
 
Porque não transformas o RTF em binary (bytes array) (com as imagens) e fazes como te falei no poste anterior que funciona com as imagens :)

Fazes o enconding para o INSERT e o decoding para o SELECT ..
Ao separar as imagens deve ficar consufo caso tenhas muitas no documento..

Quanto a situação que dizes que funciona, pareceu me logo que não estavas a fazer o INSERT com dados em binary.. apenas está a fazer o INSERT de texto certo ?


Se tiveres duvidas como fazer o INSERT com os parametros para binary da um toque ..

Fica bem :)

Boas,

Isso era o que eu estava a fazer em primeiro. Transformava o ficheiro todo em byte array e inseria na bd numa coluna do tipo image. Mas fazia um insert normal, Insert into ....

Quanto ao fazer insert com parâmetros para binary se puderes aprofundar mais agradecia.

Cumps
 
Código:
Dim oParam As New SqlParameter("?XD", _
[B]SqlDbType.Blob[/B], bytPDF.Length, _
ParameterDirection.Input, False, _
0, 0, Nothing, DataRowVersion.Current, bytPDF)

Pois, no vb.net não tenho esse tipo de sqldbtype.....

É estranho. Obrigado pela ajuda na mesma
 
Back
Topo