Pessoal estou com um problema e o seguinte utilizo SQLRDD com FIREBIRD e XHARBOUR 0.99.7 e gostaria de saber como posso colocar um figura em JPG no campo BLOB.
Obrigado antecipadamente pela forca,
Helio Beltrao Jr.
helio@hrbinfo.com.br
Campo BLOB
Moderador: Moderadores
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Campo BLOB
Tente assim:
Para Gravar:
Para Ler o campo gravado:
Para Gravar:
Código: Selecionar todos
cFile:=memoread("foto.jpg")
cContent := strtohex(cFile)
replace campo with cContent
Código: Selecionar todos
cFile := campo
memowrit('meuarquivo',hextostr(cFile))
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- helio
- Usuário Nível 3

- Mensagens: 175
- Registrado em: 04 Ago 2004 10:36
- Localização: São Bento do Una-PE
- Contato:
Re: Campo BLOB
Valeu Leonardo pela forca vou fazer uns teste.
Helio Beltrao Jr.
msn: helio@htisistemas.com
msn: helio@htisistemas.com
Re: Campo BLOB
Olá,
Tenho usado algo parecido com o código do Leonardo mas para postgres com blob. So que ao invés de usar memoread/strtohex/memowrit/hextostr, uso o encode da Base64 que é o mesmo usado em arquivos binários enviados por html, etc:
[]'s
Rodrigo
Tenho usado algo parecido com o código do Leonardo mas para postgres com blob. So que ao invés de usar memoread/strtohex/memowrit/hextostr, uso o encode da Base64 que é o mesmo usado em arquivos binários enviados por html, etc:
Código: Selecionar todos
Function Base64Decode( cFile, cData )
Local oEncoder
Local nHandle
Local result := .t.
oEncoder := TIPEncoder():New( "base64" )
if (nHandle := FCreate(cFile)) != -1
cData := oEncoder:Decode(cData)
FWrite(nHandle, cData)
FClose(nHandle)
else
result := .f.
endif
return result
Function Base64Encode( cFile, cData )
Local oEncoder
Local cBuffer := Space(1024)
Local nHandle
Local nLen
Local result := .t.
oEncoder := TIPEncoder():New( "base64" )
if (nHandle := FOpen(cFile)) != -1
cData := ""
nLen := FRead( nHandle, @cBuffer, 1024 )
do while nLen > 0
if nLen < 1024
cData += Substr( cBuffer, 1, nLen )
else
cData += cBuffer
endif
nLen := FRead( nHandle, @cBuffer, 1024 )
enddo
cData := oEncoder:Encode(cData)
FClose(nHandle)
else
result := .f.
endif
return result
Rodrigo
-
allan_de_sa
- Usuário Nível 1

- Mensagens: 13
- Registrado em: 24 Mai 2011 20:23
- Localização: SAO PAULO
Campo BLOB
Olá Rodrigo,
Poderia dar um exemplo de como faz para gravar binários no postgres usando as funções citadas acima ?
Obrigado,
Allan
Poderia dar um exemplo de como faz para gravar binários no postgres usando as funções citadas acima ?
Obrigado,
Allan