鱼C论坛

 找回密码
 立即注册
查看: 536|回复: 1

[已解决]怎么用Delphi7 把sql数据库里面保存的图片显示出来

[复制链接]
发表于 2025-1-6 09:15:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
sc_SpecialOperImg  sql数据表
OperPhoto:图片
BillID:对应的主表ID
StepTypeID:对应明细ID
根据这两个id找到对应的图片并显示
最佳答案
2025-1-6 09:15:53
要在Delphi 7中显示SQL数据库中保存的图片,你可以按照以下步骤来实现:

1. **安装数据库组件**:确保你的Delphi工程中有可以连接SQL数据库的组件,比如`ADOConnection`、`ADOTable` 或者 `ADOQuery`。

2. **连接数据库**:设置好`ADOConnection`的连接字符串,确保能够连接到你的SQL数据库。

3. **查询图片数据**:使用`ADOQuery`来查询图片数据。假设你想根据`BillID`和`StepTypeID`来获取图片,可以使用如下SQL语句:
  
  1. SELECT OperPhoto FROM sc_SpecialOperImg WHERE BillID = :BillID AND StepTypeID = :StepTypeID
复制代码


4. **在Delphi中显示图片**:将查询出的图片数据加载到一个图形控件中,比如`TImage`。假设`ADOQuery1`是你的查询组件,`Image1`是你的图形控件,可以使用如下代码加载图片:

  1. procedure TForm1.DisplayImage(BillID: Integer; StepTypeID: Integer);
  2. var
  3.   BlobStream: TStream;
  4. begin
  5.   ADOQuery1.Close;
  6.   ADOQuery1.Parameters.ParamByName('BillID').Value := BillID;
  7.   ADOQuery1.Parameters.ParamByName('StepTypeID').Value := StepTypeID;
  8.   ADOQuery1.Open;

  9.   if not ADOQuery1.Eof then
  10.   begin
  11.     BlobStream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('OperPhoto'), bmRead);
  12.     try
  13.       Image1.Picture.Graphic.LoadFromStream(BlobStream);
  14.     finally
  15.       BlobStream.Free;
  16.     end;
  17.   end
  18.   else
  19.     ShowMessage('No image found for the specified BillID and StepTypeID.');
  20. end;
复制代码


5. **调用显示函数**:在需要的时候调用`DisplayImage`函数,并传入有效的`BillID`和`StepTypeID`即可。

通过这些步骤,就可以把SQL数据库里的图片显示在Delphi程序的界面上。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-1-6 09:15:53 | 显示全部楼层    本楼为最佳答案   
要在Delphi 7中显示SQL数据库中保存的图片,你可以按照以下步骤来实现:

1. **安装数据库组件**:确保你的Delphi工程中有可以连接SQL数据库的组件,比如`ADOConnection`、`ADOTable` 或者 `ADOQuery`。

2. **连接数据库**:设置好`ADOConnection`的连接字符串,确保能够连接到你的SQL数据库。

3. **查询图片数据**:使用`ADOQuery`来查询图片数据。假设你想根据`BillID`和`StepTypeID`来获取图片,可以使用如下SQL语句:
  
  1. SELECT OperPhoto FROM sc_SpecialOperImg WHERE BillID = :BillID AND StepTypeID = :StepTypeID
复制代码


4. **在Delphi中显示图片**:将查询出的图片数据加载到一个图形控件中,比如`TImage`。假设`ADOQuery1`是你的查询组件,`Image1`是你的图形控件,可以使用如下代码加载图片:

  1. procedure TForm1.DisplayImage(BillID: Integer; StepTypeID: Integer);
  2. var
  3.   BlobStream: TStream;
  4. begin
  5.   ADOQuery1.Close;
  6.   ADOQuery1.Parameters.ParamByName('BillID').Value := BillID;
  7.   ADOQuery1.Parameters.ParamByName('StepTypeID').Value := StepTypeID;
  8.   ADOQuery1.Open;

  9.   if not ADOQuery1.Eof then
  10.   begin
  11.     BlobStream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('OperPhoto'), bmRead);
  12.     try
  13.       Image1.Picture.Graphic.LoadFromStream(BlobStream);
  14.     finally
  15.       BlobStream.Free;
  16.     end;
  17.   end
  18.   else
  19.     ShowMessage('No image found for the specified BillID and StepTypeID.');
  20. end;
复制代码


5. **调用显示函数**:在需要的时候调用`DisplayImage`函数,并传入有效的`BillID`和`StepTypeID`即可。

通过这些步骤,就可以把SQL数据库里的图片显示在Delphi程序的界面上。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 17:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表