Fórum Imagem no Banco de Dados Sql Server #382792
04/08/2010
0
Pessoal,
Gostaria de gravar imagens no banco de dados sql server.
Alguem tem algum exemplo?
Ficaria muito lento o sistema???
no aguardo
Gostaria de gravar imagens no banco de dados sql server.
Alguem tem algum exemplo?
Ficaria muito lento o sistema???
no aguardo
Evandro Abreu
Curtir tópico
+ 0
Responder
Posts
04/08/2010
Eriley Barbosa
Sabe que o sqlserver quanto mais memória tiver o servidor mais ele vai utilizar, mas a armazenagem numa tabela sendo feito um select * ficaria meio lento, mas se for parametrizado, ou seja, traz um registro a cada consulta vai ficar bom, mas gravar a imagem no banco de dados aumentaria o tamanho do seu banco.
Atenciosamente
Eriley
Responder
Gostei + 0
04/08/2010
Eriley Barbosa
Não sei que componentes está usando para acessar o sqlserver, mas segue um exemplo com ADO:
digamos q no SQL Server temos uma tabela (imagens) com os campos descricao (varchar) e imagem (image)
e temos tbm um StoredProcedure (IncImagem) cujo codigo principal eh:
Insert Into Imagens(Descricao, Imagem) Values(@vDescricao, @vImagem)
no Delphi poreriamos usar um ADOCommand incluindo no CommandText : execute IncImagem :vDescricao, :vImagem
Incluindo uma imagem a partir de um TImage:
var
SM : TMemoryStream;
begin
SM := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(SM);
Adocommand1.Parameters.ParamByName('vDescricao').Value := Edit1.text;
AdoCommand1.Parameters.ParamByName('vImagem').LoadFromStream(SM, ftBlob);
AdoCommand1.Execute;
SM.Free;
end;
Incluindo uma imagem a partir de uma arquivo:
Adocommand1.Parameters.ParamByName('vDescricao').Value := Edit1.text;
AdoCommand1.Parameters.ParamByName('vImagem').LoadFromFile('Pescaria.bmp', ftBlob);
AdoCommand1.Execute;
Se vc estiver usando um ADOStoredProc o processo eh semelhante. Deve-se informar o ProcedureName (IncImagem;1). Observe que os parametros herdam o prefixo @ da sintaxe do SQLServer:
AdoStoredproc1.Parameters.ParamByName('@vImagem').LoadFromStream(SM, ftBlob);
E o metodo de execucao e AdoStoredproc1.ExecProc; Atenciosamente Eriley
e temos tbm um StoredProcedure (IncImagem) cujo codigo principal eh:
Insert Into Imagens(Descricao, Imagem) Values(@vDescricao, @vImagem)
no Delphi poreriamos usar um ADOCommand incluindo no CommandText : execute IncImagem :vDescricao, :vImagem
Incluindo uma imagem a partir de um TImage:
var
SM : TMemoryStream;
begin
SM := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(SM);
Adocommand1.Parameters.ParamByName('vDescricao').Value := Edit1.text;
AdoCommand1.Parameters.ParamByName('vImagem').LoadFromStream(SM, ftBlob);
AdoCommand1.Execute;
SM.Free;
end;
Incluindo uma imagem a partir de uma arquivo:
Adocommand1.Parameters.ParamByName('vDescricao').Value := Edit1.text;
AdoCommand1.Parameters.ParamByName('vImagem').LoadFromFile('Pescaria.bmp', ftBlob);
AdoCommand1.Execute;
Se vc estiver usando um ADOStoredProc o processo eh semelhante. Deve-se informar o ProcedureName (IncImagem;1). Observe que os parametros herdam o prefixo @ da sintaxe do SQLServer:
AdoStoredproc1.Parameters.ParamByName('@vImagem').LoadFromStream(SM, ftBlob);
E o metodo de execucao e AdoStoredproc1.ExecProc; Atenciosamente Eriley
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)