Colocar Foto no Banco de Dados Firebird
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.
´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
Curtidas 0
Respostas
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
por exemplo.:
/fotos/imagem_do_ze.jpg ou ainda,
c:\fotos\imagem_do_steve.jpg
GOSTEI 0
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
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
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
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.
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
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
Qualquer coisa entrem em contato.
Um Abraço...
Rogério Luz
GOSTEI 0
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´
´incorrect Values within SQLDA structure´
GOSTEI 0