delhpi 数据库中的图像存储和读取

1 、如何实现在Microsoft Access数据库中的图像存储:
这里是利用TStream的子类TMemoryStream向Microsoft Access数据库中存储图像的。
下面的这段代码是在按了“保存”按钮之后所触发的事件处理程序:

procedure TForm1.Button1Click(Sender: TObject);
var
  MyJPEG: TJPEGImage;
  MS: TMemoryStream;
begin
  MyJPEG := TJPEGImage.Create;
  try
    with MyJPEG do
    begin
      Assign(Image.Picture.Graphic);
      MS := TMemoryStream.create;
      SaveToStream(MS);
      MS.Position := 0;
      Table1.Edit;
      TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS);
      Table1.Post;
      Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK);
    end;
  finally
    MyJPEG.Free;
  end;
end;
在这段代码里TStream的子类TMemoryStream利用内存流起到了将BMP格式转化为JPEG格式
的中间桥梁的作用。

2 、如何将图像从Microsoft Access数据库中取出并显示出来:
下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:

procedure TForm1.Button1Click(Sender: TObject);
var
  MyJPEG: TJPEGImage;
  MS: TMemoryStream;
begin
  try
    MS := TMemoryStream.Create;
    TBlobField(Query1.FieldByName('Image')).SaveToStream(MS);
    MS.Position := 0;
    MyJPEG := TJPEGImage.Create;
    MyJPEG.LoadFromStream(MS);
    DBImage1.Picture.Bitmap.Assign(MyJPEG);
    //或是Sender.Picture.Assign(MyJPEG);
  finally
    MS.Free;
    MyJPEG.Free;
  end;
end;

用到TBlobField的时候要在接口包含DB,用到TJPEGImage时要在接口包含Jpeg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Delphi,您可以使用数据库组件和ListView组件实现将数据库表的数据读取并显示在ListView的功能。以下是一个简单的示代码: ```delphi uses // 导入相关单元 procedure TForm1.Button1Click(Sender: TObject); var Query: TADOQuery; // 使用ADOQuery组件读取数据库数据 ListItem: TListItem; begin ListView1.Clear; // 清空ListView的内容 Query := TADOQuery.Create(Self); try Query.ConnectionString := 'your_connection_string'; // 设置数据库连接字符串 Query.SQL.Text := 'SELECT * FROM your_table'; // 设置SQL查询语句 Query.Open; // 打开查询 while not Query.EOF do begin ListItem := ListView1.Items.Add; // 添加一个ListView项 // 将数据库的数据读取到ListView项的各个列 ListItem.Caption := Query.FieldByName('column1').AsString; ListItem.SubItems.Add(Query.FieldByName('column2').AsString); // 添加更多列... Query.Next; // 移动到下一条记录 end; Query.Close; // 关闭查询 finally Query.Free; // 释放查询对象 end; end; ``` 在上述代码,您需要将"your_connection_string"替换为您的数据库连接字符串,将"your_table"替换为您要读取数据的表名。您还可以根据实际情况添加更多的列和相应的数据。 请注意,上述示例使用了ADOQuery组件来连接和查询数据库。您需要确保已导入ADODB单元,并设置好ADO连接字符串以连接到您的数据库。此外,还需要在Form1上放置一个ListView组件(名为ListView1),并在按钮的点击事件执行上述代码。 希望这个示例能够帮助您开始在Delphi数据库表数据显示在ListView

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值