Exibir campo blob em Dbgrid

12/12/2005

9

Galera...

eu uma tabela onde possue um campo blob... e tipow faco um query buscando estes dados junto com o blob.. e qria q fosse exibido no grid o texto q eh gravado no campo blob...

tem alguma maneira...

abracos


valmar


Responder

Posts

12/12/2005

Adriano Santos

Amanha de manha no trampo te passo um exemplo que saiu em uma revista clubedelphi a um tempo atras. É facil até.


Responder

13/12/2005

Eniorm

Também vou aguardar a solução do amigo acima, mas até la vc pode tentar fazer assim

SELECT
CODIGO,
NOME,
[color=red:1d93bb1d32]SUBSTRING(CAMPOBLOB FROM 1 FOR TOTAL) [/color:1d93bb1d32]AS NOMECAMPO
FROM....


Note que o SUBSTRING é do banco FB então não funciona com outro. E TOTAL é a quantidade de caracteres a ser copiado a partir da posição 1, é semelhante ao COPY do Pascal.

abraço


Responder

13/12/2005

Adriano Santos

No evento onDrawColumnCell coloque:

procedure TfPrincipal.dgGradePrincipalDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);

var
   R   : TRect;
begin
  {exibe campo memo}
  R := Rect;
  Dec(R.Bottom,2);
  if Column.Field = qrySuaQuerySEU_CAMPO then
  begin
    if not (gdSelected in State)
    then dgGradePrincipal.Canvas.FillRect(Rect)
    else dgGradePrincipal.Canvas.FillRect(Rect);
    {Desenha o texto do campo}
    DrawText(dgGradePrincipal.Canvas.Handle,
      pchar(qrySuaQuerySEU_CAMPO.AsString),Length(qrySuaQuerySEU_CAMPO.AsString),R,DT_WORDBREAK);
  end;

end;


Notem que há um problema na exibição porque a altura da linha é muito pequena então mude a fonte do DBGrid para uns 24 e depois cliquem duas vezes no DBGrid, selecione todos os campos e mudem o tamanho da fonte deles para o tamanho padrão. Isso fará com que a linha do DBGrid fique mais alta.

Pronto. Essa dica foi tirada de uma revista ClubeDelphi, mas não me lembro qual...faz muito tempo que isso saiu.


Responder

13/12/2005

Mdm

Ola Colega !!!
uma forma mais simples setia vc usar o evento OnGetText do Field do Campo Blob, assim :

Text := qryNomeCampo.Asstring;


Espero ter lhe ajudado.

[]s


Responder

13/12/2005

Adriano Santos

Ola Colega !!! uma forma mais simples setia vc usar o evento OnGetText do Field do Campo Blob, assim :
Text := qryNomeCampo.Asstring;
Espero ter lhe ajudado. []s


Funciona també, só não tem o mesmo efeito. Do jeito que falei ele mostra uma boa parte do texto contido no BLOB.


Responder

13/12/2005

Eniorm

Ola Colega !!! uma forma mais simples setia vc usar o evento OnGetText do Field do Campo Blob, assim :
Text := qryNomeCampo.Asstring;
Espero ter lhe ajudado. []s


E outro, isso funciona caso vc tenha adicionado os TFields na query....! do contrário vc não acessa pelo evento OnGetText do TField


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar