XML FIREBIRD

 Tópico anterior Próximo tópico Novo tópico

XML FIREBIRD

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#463115 - 06/06/2016 15:54:38

GUIGOR
ITABORAI
Cadast. em:Abril/2012


Boa tarde amigos
E o seguinte tenho um banco de dados no FIREBIRD e um campo onde guardado o xml da nfce com a seguinte estrutura: BLOB SUB_TYPE 0 SEGMENT SIZE 80 sendo que carrego ele em um listview sendo que ele esta me trazadno um monde de ???????????????????????????????? gostaria de saber como eu posso fazer para converter isso ????? seria possivel




Resposta escolhida #463117 - 06/06/2016 17:13:15

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O tipo de dados BLOB, uma abreviatura de Binary Large OBject. A palavra chave aqui BINARY. Binrio no pode ser representado como texto diretamente. Se voc quer exibir os dados em formato de texto, voc precisa de um campo do tipo texto, ou converter o contedo binrio em texto, que pela minha experincia no VBMania o que voc vai querer fazer, certo?

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#463130 - 06/06/2016 23:20:11

GUIGOR
ITABORAI
Cadast. em:Abril/2012


Isso msm tenho q pegar esses dados e converter pois esse banco e de outro sistema no o meu por isso esse problema. Eles guardam o contedo do xml das nfce assim eu preciso gerar os xml a partir desse campo



#463134 - 07/06/2016 00:06:31

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Imaginei. Primeiro voc deve ser certificar que o contedo do BLOB realmente string gravado como binrio. Se sim, voc pode usar uma rotina relativamente simples para converter o contedo binrio em um arquivo:

Private Function Decode(ByRef rc As ADODB.Recordset) As String
Dim myStream As New ADODB.Stream
myStream.TYPE = adTypeBinary
myStream.Open
Call myStream.Write(rc.Fields(NOME DO CAMPO BLOB AQUI))
myStream.Position = 0

Dim sResults As String
sResults =

Do While Not myStream.EOS
sResults = sResults & Chr(AscB(myStream.Read(1)))
Loop

Decode= sResults & vbNewLine
End Function


Basicamente para cada linha, voc vai usar esse mtodo onde voc passa o recordset(posicionado em uma linha qualquer) que retorna um string do contedo do campo BLOB dessa linha em formato string. partir da, voc faz com ele o que quiser, salvar num arquivo ou exibir em um grid, tanto faz um simples string.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por GUIGOR em 07/06/2016 09:24:10