Firebird

Tipos

  • BLOB SUB_TYPE 0 - Este é o tipo BLOB genérico para o armazenamento de qualquer tipo de dados, incluindo texto.
  • BLOB SUB_TYPE 1 (BLOB SUB_TYPE TEXT) - Sub-tipo mais especializado para o armazenamento de texto puro.

Segmento

Apesar de ser confundido com o tamanho do campo, na verdade o segmento (identificado como length) é o tamanho dos blocos em que a informação é gravada no banco de dados e posteriormente, o tamanho do buffer de leitura de um campo blob. Por padrão, quando se cria um campo blob o segmento vem como 80bytes, isso pelo fato dos monitores antigos apresentarem 80bytes por vez.

Tamanho máximo para armazenamento

De acordo com os manuais do Firebird, o tamanho máximo de um arquivo blob é definido de acordo com o Page Size do banco de dados, seguindo esta regra:

Page Size Tamanho máximo do blob
1Kb 64Mb
2Kb 512Mb
4Kb 4Gb
8Kb 32Gb
16Kb 256Gb

Delphi

ADO

Lendo Blobs Binarios

procedure LendoConteudoBlobADO(CaminhoParaSalvar : String);
var
  Stm : TStream;
  fl  : TFileStream;
begin
  Stm := TStream.Create;
 
  fl := TFileStream.Create(CaminhoParaSalvar, fmCreate);
 
  ADOTable1.Open;
  ADOTable1.Edit; //ABRIR EM MODO DE EDIÇÃO OBRIGATORIAMENTE
 
  Stm := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('campo_blob'), bmReadWrite);
  fl.CopyFrom(stm,Stm.Size);
 
  ADOTable1.Cancel;
 
  Stm.Free;
  fl.Free;
 
end;

Gravando Blobs Binarios

procedure GravandoBinarioNoBanco(CaminhoDoArquivo : String);
var
  Stm: TStream;
  fl : TFileStream;
begin
  Stm := TStream.Create;
  fl := TFileStream.Create(CaminhoDoArquivo, fmOpenRead);
 
  ADOTable1.Open;
  ADOTable1.Append;
 
  Stm := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('campo_blob'), bmReadWrite);
  stm.CopyFrom(fl,fl.Size);
 
  Stm.Free;
 
  ADOTable1.Post;
 
  fl.Free;
end;
 
dic_campos_blob.txt · Última modificação: 2011/01/14 18:58 por diego.garcia
 
Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki