[firebase-br] Campo blob (figura no banco)

Ricardo Rocha ricardo em vsiinformatica.com.br
Dom Jun 19 10:38:10 -03 2005


Pessoal, estou com um grande problema. Preciso gravar uma figura no banco e
a função que uso (abaixo) não está funcionando.

       Bom, vou comentando ela para vcs entenderem ... depois exponho o
problema.



Public Function GravaFigura(ByVal lChavePrimaria As Long)
    Dim mystream As ADODB.Streamtipo BLOB Binário
    Dim rsFoto As ADODB.Recordset
    Set mystream = New ADODB.Stream
    Set rsFoto = New ADODB.Recordset

    mystream.Type = adTypeBinary ' Tipo de Dado Carregado ou salvo do campo

    'antes de chegar nesta função incluí o registro no banco via Query e
guardei a cheve primária. Netse caso refere-se a tabela de pessoas.
    sSql = "" & _
            "SELECT * " & vbNewLine & _
            "FROM RR_PESSOAS " & vbNewLine & _
            "WHERE PES_CODIGO = " & lChavePrimaria
    Set rsFoto = clsBD.Consultar(sSql, True) 'é uma classe de acesso ao
banco de dados (não faz diferente usar ela ou uma conexão feita nesta
função)


    If rsFoto.EOF Then
        Set mystream = Nothing
        Exit Function
    End If

    'verifico se o caminho da foto tem valor. Tendo, rpeciso gravá-la num
campo blob.
    If Not IsNull(rsFoto!Pes_Foto) And rsFoto!Pes_Foto <> "" Then
            mystream.Open
            mystream.LoadFromFile rsFoto!Pes_Foto
            rsFoto!PES_FOTOGRAFIA = mystream.Read
            rsFoto.Update
            mystream.Close
    End If

    Set mystream = Nothing
    Set rsFoto = Nothing
End Function

      Estou usando Firebird, mas não acredito que o banco faça diferença
neste caso .....
      Bom, a função é executada sem nenhum problema, porém a figura não é
gravada no banco de dados.
      Eu incluo a pessoa via uma query e dou commit ... se não der erro eu
chamo esta função passando a chave primária (código da pessoa).

Aonde está o erro ??
Preciso disso funcionando urgente .... por favor, se alguém puder ajudar
fico muito grato.


[]'s

Ricardo rocha
www.mundodemerlin.pro.br





Mais detalhes sobre a lista de discussão lista