Como cadastro imagem no campo BLOB?

Delphi

15/09/2014

Bom dia pessoal.

Seguinte na minha aplicação eu tenho um botao que carrega img.

procedure TForm8.PNGButton1Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
image1.Picture.LoadFromFile(openpicturedialog1.FileName);

end;


----

Ai eu tenho outro botao que cadastra os itens da tela no meu banco de dados.

procedure TForm8.PNGButton2Click(Sender: TObject);
var
NC: STRING;

begin

DataModule2.estoqt.Insert;
DataModule2.estoqt.Edit;


if edit24.Text = '' then
if Messagedlg('PREENCHA O NOME DO CLIENTE!',mtWarning, [mbok],0)=idOk then
exit;

NC := DATAMODULE2.ESTOQT.Fields[1].AsString;


DataModule2.estoqt.FieldByName('CODIGO_BARRA').AsString := Edit19.Text;
DataModule2.estoqt.FieldByName('QTDE_MINIMA').AsString := edit41.Text ;
DataModule2.estoqt.FieldByName('NOME_PRODUTO').AsString := NC+' - '+ edit24.Text ;


// DataModule2.estoqt.FieldByName('IMAGEM').IsBlob := IMAGE1.Picture;  { LINHA COM ERRO }


if  Messagedlg('CADASTRO INSERIDO!',mtWarning, [mbok],0)=idOk then

DataModule2.estoqt.POST; 




Eu não sei como colocar a linha certa nesse tipo pra fazer a img que eu carreguei no '' Image1 " se cadastrada no banco.
Preciso de uma luz.
Bruno Souza

Bruno Souza

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

15/09/2014

Você pode usar um TDBImage, bem como TDBEdit e ligar os controles ao dataset, sem precisar atribuir o valor deles no momento de salvar.
GOSTEI 0
Bruno Souza

Bruno Souza

15/09/2014

TDBImage, bem como TDBEdit dao erro em rede pq deixam o meu DB em aberto e eu vo usar esse programa em mais de um pc simultanemante.

Por isso só preciso achar o jeito certo desta linha pra fazer gravação manual.

// DataModule2.estoqt.FieldByName('IMAGEM').IsBlob := IMAGE1.Picture;  { LINHA COM ERRO }
GOSTEI 0
Eduardo Silva.

Eduardo Silva.

15/09/2014

(DataModule2.estoqt.FieldByName('IMAGEM') as TBlobField).Assign(Image3.Picture.Bitmap);

sds

Eduardo Belo
GOSTEI 0
Bruno Souza

Bruno Souza

15/09/2014

Eduardo. eu pus a linha como vc mostro, quando eu aperto o btn para cadastrar ele faz o cadastro de todas as infomrações do edit mas o campo da imagem fica vazio.
GOSTEI 0
Eduardo Silva.

Eduardo Silva.

15/09/2014

Eduardo. eu pus a linha como vc mostro, quando eu aperto o btn para cadastrar ele faz o cadastro de todas as infomrações do edit mas o campo da imagem fica vazio.


(DataModule2.estoqt.FieldByName('IMAGEM') as TBlobField).Assign(Image3.Picture.Bitmap);

Eu postei o exemplo com o nome do TImage como Image3, você corrigiu para o Image1?

Qual o banco de dados que você está utilizando? Se for Firebird o tipo de campo dever ser BLOB SUB_TYPE 0 SEGMENT SIZE 80

Eduardo Belo
GOSTEI 0
POSTAR