Ir para conteúdo
Fórum Script Brasil
  • 0

Trabalhando Com Campo Blob


mcsmarmcs

Pergunta

Já tentei várias formas descritas na internet e não consigo salvar uma foto no MySQL.

Estou usando MySQL 5.0, Delphi 2006 e componente AdoQuery.

Tenho uma tabela com o nome produto que possui um campo chamado foto, este campo é do tipo blob.

Coloquei no Delphi uma DbImage para exibir as fotos.

Curiosidade: Fiz várias tentativas pra gravar a foto no banco de dados e em uma acabei conseguindo, mas por não ver a foto no DbImage, apaguei o método que fez isso.

Agora não consigo mais gravar foto nenhuma no banco, o que devo fazer.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
Guest --felipe --
Já tentei várias formas descritas na internet e não consigo salvar uma foto no MySQL.

Estou usando MySQL 5.0, Delphi 2006 e componente AdoQuery.

Tenho uma tabela com o nome produto que possui um campo chamado foto, este campo é do tipo blob.

Coloquei no Delphi uma DbImage para exibir as fotos.

Curiosidade: Fiz várias tentativas pra gravar a foto no banco de dados e em uma acabei conseguindo, mas por não ver a foto no DbImage, apaguei o método que fez isso.

Agora não consigo mais gravar foto nenhuma no banco, o que devo fazer.

ai cara tive testando aqui

e deu certo...

usei um IbQuery, DBImage e um DBText (apenas para o campo primario)

criei uma datasource e liguei a IBQuery

e no codigo eu botei:

procedure TPrincipalForm.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin
  s:='select * from image';
  dm.auxquery.Close;
  dm.auxQuery.SQL.Clear;
  dm.auxQuery.SQL.Add(s);
  dm.auxQuery.Open;
  dm.auxQuery.Append;
  i:=i+1;
  DBedit1.Text:=inttostr(i);
  DBImage1.Picture.LoadFromFile('c:\documents and settings\lfelipe\meus documentos\volcom surfboards.bmp');
  dm.AuxQuery.ApplyUpdates;
end;

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --felipe --
Já tentei várias formas descritas na internet e não consigo salvar uma foto no MySQL.

Estou usando MySQL 5.0, Delphi 2006 e componente AdoQuery.

Tenho uma tabela com o nome produto que possui um campo chamado foto, este campo é do tipo blob.

Coloquei no Delphi uma DbImage para exibir as fotos.

Curiosidade: Fiz várias tentativas pra gravar a foto no banco de dados e em uma acabei conseguindo, mas por não ver a foto no DbImage, apaguei o método que fez isso.

Agora não consigo mais gravar foto nenhuma no banco, o que devo fazer.

ai cara tive testando aqui

e deu certo...

usei um IbQuery, DBImage e um DBText (apenas para o campo primario)

criei uma datasource e liguei a IBQuery

e no codigo eu botei:

procedure TPrincipalForm.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin
  s:='select * from image';
  dm.auxquery.Close;
  dm.auxQuery.SQL.Clear;
  dm.auxQuery.SQL.Add(s);
  dm.auxQuery.Open;
  dm.auxQuery.Append;
  i:=i+1;
  DBedit1.Text:=inttostr(i);
  DBImage1.Picture.LoadFromFile('c:\documents and settings\lfelipe\meus documentos\volcom surfboards.bmp');
  dm.AuxQuery.ApplyUpdates;
end;
ah e para o usuario informar o caminho basta usar uma input box
caminho:= InputBox(fname,'Caminho do arquivo:','c:\');

Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou.

Antes tinha funcionado, mas depois que eu fechei o sistema e abri novamente recebi uma mensagem do tipo: "O campo esperado era BLOB agora, atualmente é VarBytes"!

Agora não consigo mais colocar fotos no banco e não consigo visualizar as fotos.

Só vejo as fotos usando MySQL Query Browser.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --felipe --
Não funcionou.

Antes tinha funcionado, mas depois que eu fechei o sistema e abri novamente recebi uma mensagem do tipo: "O campo esperado era BLOB agora, atualmente é VarBytes"!

Agora não consigo mais colocar fotos no banco e não consigo visualizar as fotos.

Só vejo as fotos usando MySQL Query Browser.

bá então não sei cara

checa a query ai sei la

já criasse o IBUpdateSQL ??

olha bem ai, o delphi é cheio de detalhezinho

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Estou usando MySQL 5.0, Delphi 2006 e componente AdoQuery.
bá então não sei cara

checa a query ai sei la

já criasse o IBUpdateSQL ??

Pessoal, primeiro de tudo vocês tem que falar na mesma linguagem, senão acho que não se chega a lugar algum.

mcsmarmcs diz trabalhar com ADOQuery (paleta ADO) e o felipe comenta exemplificando com os componentes da paleta IB. Tá sujeito a problemas de comunicação.

É sempre importante termos as informações o mais corretas possíveis. Já não é fácil tirar dúvidas no "campo da virtualidade", quanto mais se estamos falando linguas diferentes. ;)

É por isso que sempre insisto em:

- mensagem de erro original (nada de tradução - está sujeito a interpretação);

- bando de dados em uso, e;

- componentes de acesso utilizados.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Oi pessoal...espero poder ajudar em meu primeiro post. Sou iniciante em programação, mas tive semanas sofridas quando estava trabalhando com registro de fotos no Delphi com banco InterBase - SQL , com campos Blob. Porém a coisa é mais facil do que imaginamos.

Percebi que os processos indicados acima são muito complexos e não há necessidade de tudo isso. mas vamos lá:

insira um componente TOpenPictureDialog , TDBImage e um Button. depois , clique duas vezes no Button para inserir o código na procedure:

procedure nomedoseuform.BitBtn1Click(Sender: TObject);

begin

if TOpenPictureDialog.Execute then DBImage1.Picture.LoadFromFile(TOpenPictureDialog.FileName);

end;

só isso cara. Só não esqueça de adicionar JPEG em Units.

espero que de certo.

Editado por 4njo
Link para o comentário
Compartilhar em outros sites

  • 0
Oi pessoal...espero poder ajudar em meu primeiro post. Sou iniciante em programação, mas tive semanas sofridas quando estava trabalhando com registro de fotos no Delphi com banco InterBase - SQL , com campos Blob. Porém a coisa é mais facil do que imaginamos.

Percebi que os processos indicados acima são muito complexos e não há necessidade de tudo isso. mas vamos lá:

insira um componente TOpenPictureDialog , TDBImage e um Button. depois , clique duas vezes no Button para inserir o código na procedure:

procedure nomedoseuform.BitBtn1Click(Sender: TObject);

begin

if TOpenPictureDialog.Execute then DBImage1.Picture.LoadFromFile(TOpenPictureDialog.FileName);

end;

só isso cara. Só não esqueça de adicionar JPEG em Units.

espero que de certo.

4njo, ou alguém... pode me responder onde eu "adiciono JPEG em Units", pois eu estou com um problema parecido, o meu programa funciona, mas eu não consigo adicionar arquivos JPEG, se alguém puder me ajudar o mais rápido possível, eu agradeço desde já.

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que vai ser difícil de o 4njo responder, pelo que consta no perfil dele, a sua última atividade foir em 30/Jun/2007. :mellow:

então, faça o seguinte, apenas acrescente o nome a unit jpeg à cláusula Uses do seu da unit do form em que você vai utilizá-la:

unit uFrmCadstro;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, 
  Forms, Dialogs, ..., jpeg;
...

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Crys Maxson

meu amigo anjo é so usar esse codigo

procedure Tfrmchekliste.SpeedButton3Click(Sender: TObject);
var 
  sqltexto : string;
  jpg1 : TJpegImage;
begin
  if OPPicture.FileName <>'' then
  begin
    jpg1 := TJpegImage.Create;
    jpg1.LoadFromFile(OPPicture.FileName);
    dt_dados.Table_IMAGEM.FieldByName('IMAGEM').Assign(jpg1);
    jpg1.Free;
  end
  else
  Begin
   dt_dados.Table_IMAGEM.FieldByName('IMAGEM').value := '';
  end;
end;
end.

vamos as explicações

declara na use units JPEG ,Clipbrd

colocar no formulário um botton e um OpenDialog1 que esta na pelleta dialogs

renomeie o opendialog1 para OPPicture

dt_dados.Table_IMAGEM = nome da tabela onde irei armazenar a imagem

qualquer duvida - crysmaxson@gmail.com

Editado por Micheus
Incluída tag's CODE para melhorar a visualização, bem como identado o código. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...