我打算在数据库中保存图像信息,下暂时想到两个方案:1、直接将图像保存到数据库中。这样的好处是可以保证图像与其他信息的完整性。2、将图像放到一定的位置,然后在数据库中放置图像的路径信息。我用Access数据库,请问第一种方法的具体实现??另外比较一下两种方法的好处,到底那个更具有优点?还是另有高招?
解决方案 »
- 如何用ADO组件创建数据库及表
- 节日快乐, 向在节日工作的致敬!祝休息的愉快,求三行的嵌入汇编,顺手提高揭贴率
- 安装了delphi for php ,MYSQL后,还要怎么配置或装什么才能进行PHP的开发?
- 如何把TreeView放入ListView来显示
- 那位有FASTREPORT3.0动态生成报表的实例?
- 利用enlib中的打印控件如何用代码设置页面的方向.
- 帮我做个同步专家这样的软件要多少钱啊! 有诚意的出个价, 制作人要在上海哦
- 在delphi中如何才能像vb中创建模块!!!
- delphi中中文字段问题
- Delphi中ADO怎么实现访问服务器的数据库
- 关于Win98登录框的小问题????
- 谁有ModelMaker?
imagestream:=tfilestream.create('d:\test.bmp',fmShareDenyNone);
Sqlclause:='insert into table values(:aa)';
tempquery.SQL.Clear;
tempquery.SQL.Add(SqlClause);
Tempquery.Parameters.ParamByName('aa').LoadFromStream(imagestream,ftblob);
tempquery.ExecSQL;取出
SqlClause:='select * from table';
tempquery:=tadoquery.Create(application);
try
tempquery.SQL.Clear;
tempquery.SQL.Add(SqlClause);
tempquery.open;
while not tempquery.Eof do
begin filename:='d:\test1.bmp'
(tempquery.fieldbyname('image') as TBlobField).savetofile(filename);
imagestream:=TFileStream.Create(filename,fmShareDenyNone);
tempquery.Next;
end;
finally
tempquery.Free;
end;
end;
Image1.Picture.LoadFromFile('FileName');
if not (Image1.Picture.Graphic Is TBitmap) then
begin
ClipBoard.Assign(Image1.Picture);
Image1.Picture.Bitmap.Assign(ClipBroad);
ClipBoard.Clear;
end;//Change the picture that's not belonged to .bmp to .bmp
// picture
Table1.Edit;
Table1.FieldByName('Image').Assign(Image1.Picture);
Table1.Post;
//get from database
Image1.Picture.Bitmap.Assign(TPicture(Table1.FieldByName('Image')));
var
ImageField:TField;
Picture:TPicture;
begin
if OpenPicDlg.Execute then
Begin
with DataSource.DataSet do
try
Query.Edit;
ImageField := FindField('Pic');
if ImageField <> nil then
begin
Picture := TPicture.Create;
try
Query.Edit;
Picture.LoadFromFile(OpenPicDlg.FileName);
if Picture.Graphic is TBitmap then
ImageField.Assign(Picture)
else
SaveGraphicToBlobField(Picture.Graphic, ImageField);
finally
Picture.Free;
end;
end;
except
end;
End;
end;procedure SaveGraphicToBlobField(AGraphic: TGraphic; AField: TField);
var
BlobStream: TStream;
begin
if AField is TBlobField then
with AField as TBlobField do
begin
{$IFNDEF DELPHI3}
BlobStream := TBlobStream.Create(AField as TBlobField, bmWrite);
{$ELSE}
BlobStream := DataSet.CreateBlobStream(AField, bmWrite);
{$ENDIF}
try
AGraphic.SaveToStream(BlobStream);
finally
BlobStream.Free;
end;
end;
end;