GARANTIR DESCONTO

Fórum Gravar imagem no Interbase #275613

05/04/2005

0

Estou precisando gravar imagem no Banco Interbase mas não consegui. Criei um campo tipo BLOB e estou usando o componente DBImage. quando vou dar um ApplyUpdates não retorna erro mas no Banco o campo fica (NULL) como se não tivesse nenhuma imagem. O que pode ter dado errado?


Seu_madruga

Seu_madruga

Responder

Posts

05/04/2005

Edilcimar

mostre o codigo de gravação do campo, pois provavelmente aí está o erro


Responder

Gostei + 0

05/04/2005

Seu_madruga

Bem, teoricamente não tem nenhuma anormalidade, Eu tenho um DBImage lincado com um DataSource que liga a Tabela. Este DBImage eu seleciono o campo FOTO que é do tipo BLOB. No botão gravar eu dou um POST depois um APPLYUPDATES. Não nenhum erro, os outros registro gravam, string, integer mas a imgaem em si não grava. Ao verificar no Banco se tem alguma coisa, o campo foto está como NULL.

PS: Agora não tenho o fonte mas se preferir assim que tiver eu posto aqui blz.
Valew


Responder

Gostei + 0

05/04/2005

Edilcimar

qual o código de gravação do campo, está utilizando assign?


Responder

Gostei + 0

05/04/2005

Kotho

Se não me engano, tem um subtipo específico de blob para gravar imagem.... qual o subtipo que você criou o campo...


Responder

Gostei + 0

05/04/2005

Aroldo Zanela

Colega,

Use LoadFromFile do objeto TField para carregar imagens (ou outros arquivos) para campos BLOBs. Basta uma única linha de código.

http://forum.clubedelphi.net/viewtopic.php?t=60817&highlight=pdf


Responder

Gostei + 0

05/04/2005

Seu_madruga

Não, o componente DBImage é estático por isso não trato assign nele. Eu consigo carregar uma imagem nele usando um OpenDialog. A imagem carrega perfeitamente no DBImage, depois só confirmo a inclusão. Pelo que eu saiba os componentes DB, edits, memos,... funcionam automáticos, é só eu preencher eles com alguma coisa e dar um Apply que eles já são gravados, o mesmo penso que funciona o DBImage.


Responder

Gostei + 0

05/04/2005

Aroldo Zanela

Se não me engano, tem um subtipo específico de blob para gravar imagem.... qual o subtipo que você criou o campo...

Colega,

Eu uso: BLOB SUB_TYPE 0 SEGMENT SIZE 4096


Responder

Gostei + 0

05/04/2005

Seu_madruga

Bem, aqui eu criei o campo como somente BLOB e o banco automaticamnete coloca do tipo BLOB SUB_TYPE 0 SEGMENT SIZE 80, será que pode ser isso, a tamanho era muito pesqueno pra imagem? Mas talvez era para aparecer algo no Banco e não (NULL) certo?


Responder

Gostei + 0

05/04/2005

Wly

Cara,

É o seguinte, passei por este problema também e percebi que o problema é que o IB só aceita BMP e não JPEG, fiz o teste de gravar com o JPEG não dá erro porem o campo fica NULL. fiz o mesmo teste com BMP e funcionou muito bem, Ok !!!

Faça esse teste, depois me diga se funcionou, Ok !!!


Responder

Gostei + 0

15/04/2005

Tchelllo

Caro amigo wly...

O Interbase/Firebird aceitam imagens JPG sim, se vc usa uma Query, digite essa linha de comando para gravação:

(qryCadastro.FieldByName(´arq_blob´) as TBlobField).LoadFromFile
(NomeArquivo+´.JPG´);

ou se está usando uma TTable:

(tbCadastro.FieldByName(´arq_blob´) as TBlobField).LoadFromFile(NomeArquivo+´.PDF´);

também poderia faze-lo utilizando um OpenPictureDialog...alterando a passagem...


(qryCadastro.FieldByName(´arq_blob´) as TBlobField).LoadFromFile
(OpenPictureDialog.FileName);

Onde:
tbCadastro -> Nome do objeto da classe TIBQuery, TADTable etc;
qryCadastro -> Nome do objeto da classe TIBQuery, TADOQuery etc;
arq_blob -> nome da coluna no banco (BLOB - SubType 2) ;
NomeArquivo -> Caminho e nome do arquivo;


Até mais!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar