Fórum Inserir imagem #233748
22/05/2004
0
Luiz_aquino
Curtir tópico
+ 0Posts
22/05/2004
Rafael.valler
Mas se vc insistir:
Gravando uma fotografia num campo do tipo BLOB :
var m:TIBQuery;
b:TMemoryStream;
begin
m:=TIBQuery.Create(Self);
m.Database:=MyIBXDatabase;
m.Transaction:=MyIBXDatabase.DefaultTransaction;
m.sql.clear;
m.sql.add(´UPDATE TABELA_USUARIOS´);
m.sql.add(´SET nome=:_nome,´);
m.sql.add(´ cargo=:_cargo,´);
m.sql.add(´ bitmap_foto=:_bitmap_foto,´);
m.sql.add(´ last_update=CURRENT_DATE,´);
m.sql.add(´ last_owner=CURRENT_USER´);
m.sql.add(´WHERE id_usuario=1´);
try
m.parambyName(´_nome´).AsString:=´Maria Jose´;
m.parambyName(´_cargo´).AsString:=´Estagiária´;
// gravando a fotografia que se encontra num TImage comum
// e transferindo-o diretamente para a tabela e sem nenhum
// swap em disco
b:=TMemoryStream.Create;
Image1.Picture.Graphic.SaveToStream(b); // Image1 é um TImage qualquer
m.ParamByName(´_bitmap_foto´).LoadFromStream(b,ftBlob);
m.ExecSQL;
Application.MessageBox(´Dados do usuario atualizados com sucesso !´,´Sucesso :´);
except
on e:exception do
begin
Application.MessageBox(Pchar(e.message),´Erro ao atualizar dados :´);
b.Destroy;
m.Free;
Exit;
end;
end;
b.Destroy;
m.Free;
end;
O código acima transfere uma fotografia carregado num TImage para o campo do tipo BLOB sem a necessidade de nenhum swap em disco e exatamente por isso, será uma gravação mais rápida.
Gostei + 0
22/05/2004
Luiz_aquino
Gostei + 0
22/05/2004
Rafael.valler
vc pode uzar o OpenPictureDialog para abrir a imagem e gravar o filename que é a propriedade onde aparece o caminho da imagem.
Gostei + 0
23/05/2004
Luiz_aquino
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)