DevMedia

Campo Blob

0
Sempre utilizo campo Blob para imagens mas não sei qual o tamanho do
campo (size) na hora de configurar . eu uso 80 .

?Qual seria a capacidade de armazenar uma figura no Blob com (80)de tamanho?


Publicidade

Respostas (3)

0
Colega,

Qual o banco de dados?
Se for Firebird, um BLOB não tem tamanho, tem limites... veja :

Citação:
O tamanho máximo de um Blob dependerá do tamanho de página de uma Base de Dados. Assim:
1Kb de tamanho de página à 64Mb
2Kb de tamanho de página a 512Mb
4Kb de tamanho de página a 4Gb
8Kb de tamanho de página a 32 Gb
O tamanho máximo de um segmento de um Blob é de 64Kb.


Veja também este texto :

Citação:
O tipo de Dado BLOB, tem o tamanho variável, isto é, não sabemos na hora da criação do campo BLOB qual será o seu tamanho realmente, mas, o limite do campo Blob que está na documentação do Firebird, é de 64k por segmento. Este tipo de campo é o tipo indicado para armazenar Textos Grandes “Memos”, Fotos, Gráficos, Ícones, isto é, aparentemente não tem um tipo de dado que não possa ser armazenado no Campo Blob. Campos Blob´s não podem ser indexados.
Saber qual o sub-tipo correto utilizar é essencial para criar aplicativos que se utilizem dos campos BLOBs. Os BLOBs se apresentam em 3 versões :
Sub-tipo 0 - Armazena dados em formato binário – Fotos, etc.
Sub-tipo 1 - Armazena dados em formato texto – Memos.
Sub-tipos definidos pelo usuário.
Além dos 2 Sub-tipos pré-definidos, também existem os Sub-tipos definidos pelo usuário. Esses tipos são determinados com o uso de valores negativos logo após a palavra SUB_TYPE. O número utilizado é um inteiro determinado arbitrariamente pelo usuário de acordo com sua preferência, desde que seja negativo. O uso de -1 é funcionalmente equivalente ao uso de -2, -3,etc.
A única consideração que deve ser tomada é a de se certificar de sempre armazenar o tipo pré-determinado de informação no respectivo sub-tipo de BLOB. O Firebird não faz nenhuma análise dos dados que estão sendo gravados, portanto essa é uma responsabilidade do aplicativo. Nenhum erro será retornado pelo Firebird se um tipo errado de dado for inserido em um BLOB de sub-tipo incorreto, mas um aplicativo pode ser prejudicado se ao recuperar as informações do BLOB, a mesma não corresponder ao formato esperado.
Sintaxe :
Estas declarações é na criação da tabela :
MEMO BLOB SUB_TYPE 1;
FOTO BLOB SUB_TYPE 0;
CREATE TABLE FUNCIONARIOS (
ID INTEGER NOT NULL PRIMARY KEY,
NOME VARCHAR(50) NOT NULL,
....,
FOTO BLOB SUB_TYPE 0,
EXPERIENCIA BLOB SUB_TYPE 1 SEGMENT SIZE 80,
)
Na criação da tabela acima, você verificou uma nova informação “SEGMENT”. Abaixo a explicação :
O tamanho de segmento (Segment Size), é um pequeno pedaço de informação, tipo um conselho, que é mantido com a definição de um Blob. Quando se abre um Blob, pode-se perguntar por segmentos de qualquer tamanho, mas para alguns Blobs um determinado tamanho é mais conveniente que um outro. Blobs que armazenam texto, por exemplo, freqüentemente utilizam segmentos de tamanho 80. O préprocessador e outros programas utilitários usam o tamanho do segmento para determinar o tamanho de buffers que são necessários para transferência de dados para e do Blob.


Espero ter ajudado...
T+


0
Na criação da tabela acima, você verificou uma nova informação “SEGMENT”. Abaixo a explicação :
O tamanho de segmento (Segment Size), é um pequeno pedaço de informação, tipo um conselho, que é mantido com a definição de um Blob. Quando se abre um Blob, pode-se perguntar por segmentos de qualquer tamanho, mas para alguns Blobs um determinado tamanho é mais conveniente que um outro. Blobs que armazenam texto, por exemplo, freqüentemente utilizam segmentos de tamanho 80. O préprocessador e outros programas utilitários usam o tamanho do segmento para determinar o tamanho de buffers que são necessários para transferência de dados para e do Blob.

Pelo que entendi segmento de tamanho 80 é muito utilizados para texto.

posso usar o mesmo tamanho para fotos?

e vc Vinicius quando cria um campo blob no firebird usa que tamanho? (se usa)


0

Citação:
Pelo que entendi segmento de tamanho 80 é muito utilizados para texto.

Sim. Mas, até onde eu sei, é apenas uma convenção... Vc utilizar um segmento de tamanho 80, pode facilitar a troca de informações entre o seu banco e uma aplicação que busque esta informação no campo... para ter um aproveitamento real disto, vc teria que preparar sua aplicação para fazer esta leitura e isto eu, honestamente, não sei como fazer...


Citação:
posso usar o mesmo tamanho para fotos?

Creio que sim, mas faria sentido? Não sei... teria que pesquisar mais sobre o assunto...


Citação:
e vc Vinicius quando cria um campo blob no firebird usa que tamanho? (se usa)

Eu só uso Blobs para imagens e apenas quando realmente necessário, já que fazem crescer, consideravelmente, o tamanho da base... e eu não uso nenhuma informação de tamanho de segmento...

T+