Ler campo Blob no Firebird 2.5
Utilizo o Delphi 7 e estou tendo problemas com campos Blob do Firebird 2.5.
Na versão 1.5 do Firebird eu usava assim:
Para salvar
Para mostrar as informações
e funcionava normalmente mas ao usar desta forma no Firebird 2.5 o resultado é um número estranho, algo do tipo 8,91238232867462E-313.
Alguém já passou por isso e tem a solução?
Utilizo para a conexão o IBO 4.5.
Quando olha diretamente na tabela o campo esta salvo certo. Somente na hora de exibir que mostra errado.
Não pode ser algo com o Charsets ou com o Collation?
Ou o componente TRichEdit que não suporta?
Desde já agradeço qualquer ajuda.
Na versão 1.5 do Firebird eu usava assim:
Para salvar
TabelaCampoBlob.Assign(Memo1.Lines);
Para mostrar as informações
Memo1.Lines.Text:=TabelaCampoBlob.AsString;
e funcionava normalmente mas ao usar desta forma no Firebird 2.5 o resultado é um número estranho, algo do tipo 8,91238232867462E-313.
Alguém já passou por isso e tem a solução?
Utilizo para a conexão o IBO 4.5.
Quando olha diretamente na tabela o campo esta salvo certo. Somente na hora de exibir que mostra errado.
Não pode ser algo com o Charsets ou com o Collation?
Ou o componente TRichEdit que não suporta?
Desde já agradeço qualquer ajuda.
Armando Filho
Curtidas 0
Respostas
Leonardo Xavier
09/12/2010
Você ja tentou utilizar outro componente de texto?
GOSTEI 0
Armando Filho
09/12/2010
Ainda não tentei - utilizei o RichEdit que acompanha o Delphi 7 e RichEdit da biblioteca JEDI mas ambos não resolveram o meu problema.
Que tipo de componente aconselhas eu usar para campos Blob?
Obrigado
Que tipo de componente aconselhas eu usar para campos Blob?
Obrigado
GOSTEI 0
Cristiano Pimenta
09/12/2010
Opa e ai
Tenta usar o dbmemo, ou o memo mesmo.
GOSTEI 0
Cristiano Pimenta
09/12/2010
ha e em vez de asString tente asBlob
GOSTEI 0
Armando Filho
09/12/2010
Já fiz todos estes testes e mostra a mesma coisa.
DBMemo, DBRichEdit, Memo, RichEdit
até os da biblioteca JEDI não mostram correto - até a propriedade PlainText foi modificada na tentativa.
DBMemo, DBRichEdit, Memo, RichEdit
até os da biblioteca JEDI não mostram correto - até a propriedade PlainText foi modificada na tentativa.
GOSTEI 0
Armando Filho
09/12/2010
Qual versão do Firebird vocês usam?
ou não é Firebird que vocês usam?
ou não é Firebird que vocês usam?
GOSTEI 0
Armando Filho
09/12/2010
Uma outra pergunta.
Qual componente vocês usam para mostra um campo Blob?
Agradeço qualquer dica.
Qual componente vocês usam para mostra um campo Blob?
Agradeço qualquer dica.
GOSTEI 0
Wilson Junior
09/12/2010
Veja como TDBMemo faz e tente tirar fazer igual.
Espero ter colaborado.
procedure TDBMemo.UpdateData(Sender: TObject);
begin
FDataLink.Field.Text := Text;
end;
procedure TDBMemo.LoadMemo;
begin
if not FMemoLoaded and Assigned(FDataLink.Field) and FDataLink.Field.IsBlob then
begin
try
Lines.Text := FDataLink.Field.AsString;
FMemoLoaded := True;
except
{ Memo too large }
on E:EInvalidOperation do
Lines.Text := Format('(%s)', [E.Message]);
end;
EditingChange(Self);
end;
end;Espero ter colaborado.
GOSTEI 0
Armando Filho
09/12/2010
Olá Wilson obrigado por postar.
Onde uso estes procedimentos?
É algum evento do TDBMemo?
Onde uso estes procedimentos?
É algum evento do TDBMemo?
GOSTEI 0
Wilson Junior
09/12/2010
De um "Ctrl + Clique do mouse" em cima do nome TDBMemo do seu código fonte que ele irá lhe apontar para a declaração do componente e o mesmo terá estas rotinas que postei.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Armando Filho
09/12/2010
Wilson achei os procedimentos mas não sei o que mexer
GOSTEI 0
Armando Filho
09/12/2010
Solução...
Mudei de Blob para Varchar 2000
Obrigado a todos pelos posts.
Mudei de Blob para Varchar 2000
Obrigado a todos pelos posts.
GOSTEI 0