Colocar Foto no Banco de Dados Firebird

Delphi

20/10/2008

Quero colocar um Campo DBImage e uma Foto no Cadastro. Eu uso o Delphi 2007 e Firebird 2.1 Estou fazendo uma Agenda Telefonica e preciso Colocar a Foto de quem está sendo Cadastrado. Encontrei um Artigo na DevMedia https://www.devmedia.com.br/articles/viewcomp.asp?comp=1545&;hl=*foto* sobre o Assunto e fiz assim. Fiz a Conexão com o Banco, Criei um Campo Blob com o Tamanho de 80 e coloquei um DBImage para receber a Imagem, um Botão para procurar a Foto *.bmp um botão para salvar (ClientDataset1.ApplyUpdates(0);). O Programinha Carrega a Foto, mas na Hora de Gravar dá um erro:

´Incorrect Values within SQLDA structure´

´Unable to find record. No key Specifed.´

Tentei encontrar a Chave, mas nem Assim. A Chave eu deixei com o Campo Nome. Não é o Mesmo do Blob. Se alguem tiver um jeito mais facil, porque eu acho que devo estar fazendo Tudo Errado aqui.


Rodolfo Ramos

Rodolfo Ramos

Curtidas 0

Respostas

Craudio

Craudio

20/10/2008

Você tentou gravar as imagens numa pasta e gravar no banco somente o caminho dela ?
por exemplo.:

/fotos/imagem_do_ze.jpg ou ainda,
c:\fotos\imagem_do_steve.jpg


GOSTEI 0
Rodolfo Ramos

Rodolfo Ramos

20/10/2008

Mas Também eu nem sei como fazer isso, seria uma Boa também. Criar uma Pasta dentro do Projeto e colocar o Caminho da Imagem. Mas o mais Interessante seria mesmo conseguir Gravar as Fotos dentro do Banco. Porque se der uma Zica o Cliente tem o Backup das Fotos. Porque como é uma Agenda, o Usuário vai querer Formatar Tudo. A não ser que depois eu faça uma Cópia da Pasta. Mas se puder me passar como fazer para colocar somente o Caminho da Foto, já me ajuda.


GOSTEI 0
Rodolfo Ramos

Rodolfo Ramos

20/10/2008

Eu peguei o mesmo Artigo que encontrei em Access, que ensina como colocar a Foto. Funcionou Perfeitamente em Access, ele Grava a Foto dentro do Banco. Só não consigo fazer isso pelo Firebird.


GOSTEI 0
Edilcimar

Edilcimar

20/10/2008

tem diversos tópicos dando resposta sobre isto, eu mesmo já respondi, só não me lembro se foi aqui ou no fórum de firebird


GOSTEI 0
Andreaskaquino

Andreaskaquino

20/10/2008

O erro ´Unable to find record. No key Specifed.´ deve-se ao fato de o SqlDataSet não conseguir encontrar campo(s) chave para fazer a atualização na tabela do banco de dados.

Por isso verifique se foram específicados os campos que fazem parte da chave primária (ProviderFlags :=[pfInUpdate,pfInWhere,pfInKey]) desta forma este erro não ocorrera mais e ai você poderá realmente saber se ocorre erro na atualização do campo tipo Imagem.

Abraço.


GOSTEI 0
Rogerioluz

Rogerioluz

20/10/2008

Boa tarde a todos. Se interessar tenho um código que faz a conversão para jpg para diminuir e depois salvar. Faço isso diretamente com Store Procedures.

Qualquer coisa entrem em contato.

Um Abraço...

Rogério Luz


GOSTEI 0
Rodolfo Ramos

Rodolfo Ramos

20/10/2008

O Problema da chave resolveu sim, eu estava usando um SqlQUERY, coloquei um SQLDATASEt e liguei a chave nos Providers Flags. Agora dá esse erro.
´incorrect Values within SQLDA structure´


GOSTEI 0
POSTAR