Exibir campo blob em Dbgrid

12/12/2005

7

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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira