Fórum Colocar Foto no Banco de Dados Firebird #365235
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.
Posts
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
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.
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.
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
20/10/2008
Andreaskaquino
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.
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
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´