Página 1 de 1

Campo BLOB

Enviado: 26 Mai 2008 19:35
por helio
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

Re: Campo BLOB

Enviado: 26 Mai 2008 20:23
por sygecom
Tente assim:

Para Gravar:

Código: Selecionar todos

cFile:=memoread("foto.jpg")
cContent := strtohex(cFile)
replace campo with cContent
Para Ler o campo gravado:

Código: Selecionar todos

cFile := campo
memowrit('meuarquivo',hextostr(cFile))

Re: Campo BLOB

Enviado: 26 Mai 2008 20:41
por helio
Valeu Leonardo pela forca vou fazer uns teste.

Re: Campo BLOB

Enviado: 27 Mai 2008 16:00
por rodrmigu
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:

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
[]'s
Rodrigo

Campo BLOB

Enviado: 28 Mai 2013 15:23
por allan_de_sa
Olá Rodrigo,

Poderia dar um exemplo de como faz para gravar binários no postgres usando as funções citadas acima ?

Obrigado,
Allan