DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
geraldo coelho leal
 


País: Brasil
Estado: ES
Cidade: montanha
Mensagens: 138
 Postado em: 8/9/2010 01:36:11 AM
 

Citação:
Bom dia Pessoal, estou precisando de uma força aqui.
estou precisando de um campo imagem no banco de dados. trabalho com firebird 2.1.
preciso gravar foto dentro do banco. tenho um campo. tipo memo aonde coloco a descrição da foto
e um campo blob aonde quero armazer as fotos. coloquei no formulario, alguns componentes da paleta
win.3.1 . directory e o file list box para capturar as imagens .  coloquei um memo e um dbimagem no formulario
. uso os botões para novo, salvar, editar, cancelar e excluir. porem faço isto em outros formularios que não tem campo imagem. e da certo, porem neste não está dando certo. pois não sei como colocar pór exemplo.
 
procedure Tfrm_imagem.Mostrar;
begin
memo1.Text                :=tbl_imagem.fieldbyname('texto').AsString; // este aqui passa na compilação
image1.Picture           :=tbl_imagem.fieldbyname('imagem').Asstring; // este não passa.por causa do asstring , diz que é incompatível com picture, sim concordo, mais não sei o que colocar aqui.                                  
end;
procedure Tfrm_imagem.salvar;
begin
tbl_imagem.fieldbyname('texto').AsString  := memo1.text;
tbl_imagem.fieldbyname('imagem').AsString  := dbimage1.Picture;
 
nos formulario comuns uso no botão salvar no onclic. o procedimento
begin
salvar;
end;
se puderem ajudar agradeço
geraldo leal

 
Deivison
 
 

 


País: Brasil
Estado: PE
Cidade: x
Mensagens: 483
 Postado em: 8/9/2010 08:24:30 AM
 

Geraldo,

----------------------------------------------------------------------------------------------------------------------------------------
Usando os componentes IBX (mas pode ser adaptado para outro component):
 
var
   q : tibquery;
begin
   if openpicturedialog1.Execute then
   begin
     q := tibquery.create(nil);
     q.Database := datamodule.bancodedados;
     q.SQL.Text := ‘insert into fotos (foto) values (:foto)’;
     q.ParamByName(‘foto’).LoadFromFile(openpicturedialog1.FileName,ftBlob);
     q.ExecSQL;
     q.free;
    end;
end;
----------------------------------------------------------------------------------------------------------------------------------------
 
Verifica se esses links também ajudam:
 
 
 
 
 
Qualquer coisa estou à disposição!!!
 
Atenciosamente,
 
Emanoel Deivison
Recife - PE
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 8/9/2010 08:42:52 AM
 
Você pode usar o componente EDBImage:
 
Para mostrar:
if not tbl_imagem.fieldbyname('imagem').IsNull then 
  EDBImage1.Picture.LoadFromFile(tbl_imagem.fieldbyname('imagem').Value);
 
Para gravar:
 
Utilize o componente OpenPictureDialog da palheta Dialogs:
if openpicturedialog1.Execute then
begin
  tbl_imagem.fieldbyname('imagem').LoadFromFile(openpicturedialog1.FileName,ftBlob);
 
Este componente suporta tanto jpg como bmp e funciona apenas com o método loadfromfile, tanto para gravar como para ler.
 
Se quiser fazer na unha, veja este link:
 
 
geraldo coelho leal
 


País: Brasil
Estado: ES
Cidade: montanha
Mensagens: 138
 Postado em: 8/9/2010 10:18:06 PM
 

Citação:
Boa noite Eriley, tentei do seu jeito mais deu um erro .
 tbl_imagem.fieldbyname('imagem').LoadFromFile(openpicturedialog1.FileName,ftBlob);
loadfromfile não declarado. tenho declarado na uses, jpeg, grafics.
obrigado pela ajuda ai.
sucesso
geraldo leal
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 9/9/2010 09:42:11 AM
 
Se o campo que armazena imagem é do tipo Blob tem que funcionar, veja este link que respondi abaixo:
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 9/9/2010 03:00:34 PM
 
Veja se você tem a unit DB declarada no Uses.
geraldo coelho leal
 


País: Brasil
Estado: ES
Cidade: montanha
Mensagens: 138
 Postado em: 10/9/2010 03:36:28 PM
 

Citação:
Eriley, boa tarde , tenho tentado várias maneiras
mais não estou achando a o geito. Veja bem.
na minha aplicação, quando uso o o componente da palheta dialogs, dá pau, não sei o motivo,
creio que por outros componentes que uso e não combina.
então uso o componente da win.3.1  .
primeiro uso
drive combobox. para escolher o driver
segundo
directory listbox. para localizar o caminho da imagem.
terceiro
um file listbox para mostrar as imagens dentro da pasta.
um botão
No on click dele uso o seguinte codigo
 
procedure Tfrm_foto.SpeedButton1Click(Sender: TObject);
begin
frm_foto.dbimage1.Picture.LoadFromFile(flb_papelparede.FileName);
iniconf.WriteString('papel de parede','figura',flb_papelparede.FileName);
iniconf.WriteString('papel de parede','tipo',combobox1.text);
end.
até aqui tudo certo o problema é daqui para baixo
 
tenho um dbimage no formulario, escolho a foto pelo caminho e jogo no dbimagem.
o problema é na hora de salvar. e mostrar.
no formulario,
tenho.
um memo - // para escrever os comentarios sobre a foto
um dbimagem - // para mostrar a foto e pegar para gravar no banco
 
botão salvar
botão novo - 
botão editar
botão excluir
botão cancelar. 
 
e quatro botões para navegar.
primeiro - tbl_imagem.First;
proximo - tbl_imagem.Next;
anterior -tbl_imagem.Prior;
ultimo -tbl_imagem.Last;
 
se puder colocar para mim o que fazer nestes botões. agradeço
sucesso
geraldo leal
 
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 10/9/2010 04:25:34 PM
 
Declare jpeg, clipbrd no Uses.
Coloque um radiogroup da palheta standard no formulário.
No seu caption digite  Formato da imagem
no ItemIndex digite 1
Na sua propriedade items, digite:
BMP
JPG
 
E modifique seu código do botão que carrega a foto para :
procedure Tfrm_foto.SpeedButton1Click(Sender: TObject);
var
  jpg: Tjpegimage;
begin
  if tbl_imagem.State in [dsEdit, dsInsert] then
  begin
    if radiogroup1.ItemIndex = 1 then //É jpg
    begin
       jpg:= Tjpegimage.Create;
       jpg.LoadFromFile(flb_papelparede.FileName);
       Clipboard.Assign(jpg);
       Dbimage1.PasteFromClipboard;
       jpg.Free;
    end
    else
      tbl_imagem.FieldByName('NamedoSeuCampoFoto').LoadFromFile(flb_papelparede.FileName);   
    iniconf.WriteString('papel de parede','figura',flb_papelparede.FileName);
    iniconf.WriteString('papel de parede','tipo',combobox1.text);
  end
  else
    ShowMessage('Edite o registro ou insira um novo'); 
end;
 
Novo : tbl_imagem.Append;
Salvar: tbl_imagem.Post;
Editar: tbl_imagem.Edit;
Cancelar: tbl_imagem.Cancel;
Excluir: tbl_imagem.delete;
 
Não utilize o memo, utilize o dbMemo.
 
 
geraldo coelho leal
 


País: Brasil
Estado: ES
Cidade: montanha
Mensagens: 138
 Postado em: 22/9/2010 10:29:31 PM
 


Citação:
olá pessoal, tentei de várias maneiras e não consegui fazer, para colocar no banco de dados

então resolvi de outra maneira, que ficou bem legal eu achei, coloquei um form e coloquei várias componentes
notebook da plheta win3.1  coloquei um imagem em cada um e os links para acessar cada imagem, no total
coloquei 60 imagens, funcionou para mim, pois as imagens são fixas para o que quero. não ficam soltas e ficou pequeno em jpg. fica ai para alguém que precisar fazer. da mesma forma. obrigado pela colaboração de todos.
sucesso a todos
geraldo leal
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03