Fórum Gravando imagens no Access #229969

05/05/2004

0

Olá pessoal
Tenho uma tabela Access q tem um campo ´Foto´, do tipo objeto OLE. Minha intenção era gravar uma imagem jpg, mas dá sempre o seguinte erro: ´Stack OverFlow´. Segue o código que estou usando:
f (opdFoto.Execute) and (imgFoto.DataSource.DataSet.State in [dsInsert, dsEdit]) then
    DM.qryTbPessoasFoto.LoadFromFile(opdFoto.FileName);

opdFoto -> OpenPictureDialog
imgFoto -> DBImage
O código grava bitmaps sem problemas. Alguém sabe o problema?
P.S. - a unit JPeg já foi adicionada.


Tnaires

Tnaires

Responder

Posts

05/05/2004

Pabhen

Olá pessoal Tenho uma tabela Access q tem um campo ´Foto´, do tipo objeto OLE. Minha intenção era gravar uma imagem jpg, mas dá sempre o seguinte erro: ´Stack OverFlow´. Segue o código que estou usando:
f (opdFoto.Execute) and (imgFoto.DataSource.DataSet.State in [dsInsert, dsEdit]) then
    DM.qryTbPessoasFoto.LoadFromFile(opdFoto.FileName);
opdFoto -> OpenPictureDialog imgFoto -> DBImage O código grava bitmaps sem problemas. Alguém sabe o problema? P.S. - a unit JPeg já foi adicionada.


Vc faz assim:

Se vc tiver usando BDE, vc cria uma variavel do tipo TBlobStream, se for ado é do tipo TAdoBlobStream, e mais uma do tipo TfileStream, essa serve para os dois tipos.

A variavel blob vai receber os dados da variavel imagem, vou passar o meu exemplo pra vc entender melhor:

procedure TForm1.Button1Click(Sender: TObject);
Var
I: Integer;
stImagemStream: TFileStream;
stBlobStream: TBlobStream;
begin
for I := (FileListBox1.ItemIndex) to (FileListBox1.Items.Count-1) do
begin
FileListBox1.ItemIndex := I;

qryBDE.Insert;

stImagemStream := TFileStream.Create(
FileListBox1.FileName,
fmOpenRead OR fmShareDenyWrite );
stBlobStream := TBlobStream.Create( qryBDEImagem, bmWrite );

Try
stBlobStream.CopyFrom( stImagemStream, stImagemStream.Size );
Finally
stImagemStream.Free;
stBlobStream.Free;
End;
qryBDE.Post;
Application.ProcessMessages;
end;
end;

ps.: usei um Filelistbox para listar as imagens da pasta e carregar pra dentro do banco.

espero ter ajudado.


Responder

Gostei + 0

05/05/2004

Tnaires

Muito obrigado pela dica, pabhen!
Eu havia transposto o problema, convertendo o jpeg para um bitmap antes de gravar os dados. Mas vou testar sua sugestão.
Abraços.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar