将图像插入SQL Server 2000表

时间:2017-06-29 08:40:20

标签: sql-server delphi sql-server-2000 firedac fastreport

如何将图像插入SQL Server 2000表并查看该图像
使用TDBImage控件或在delphi中使用Fast-Report打印?
以下解决方案仅适用于SQL Server 2005 +

SELECT * FROM OPENROWSET(BULK N'C:\TestImage.jpg', SINGLE_BLOB)

2 个答案:

答案 0 :(得分:0)

如何将图像插入数据库?

有一个IMAGE类型字段(应该在SQL Server 2000中可用):

CREATE TABLE MyTable (
   ID INT PRIMARY KEY,
   Picture IMAGE
)

将图像插入其中:

FDQuery1.SQL.Text := 'INSERT INTO MyTable (ID, Picture) VALUES (:ID, :Picture)';
FDQuery1.ParamByName('ID').AsInteger := 1;
FDQuery1.ParamByName('Picture').AsStream := TFileStream.Create('C:\Image.jpg', fmOpenRead);
FDQuery1.ExecSQL;

上面创建的流将在查询未准备好后或下一次赋值后释放。

如何在TDBImage控件中显示图像?

例如,

通过TDBImageTDataSource删除对您表单的TFDQuery控制权。现在连接图像的这些组件和设置源字段:

DataSource1.DataSet := FDQuery1;
DBImage1.DataSource := DataSource1;
DBImage1.DataField := 'Picture';

查询数据,例如:

FDQuery1.SQL.Text := 'SELECT Picture FROM MyTable WHERE ID = :ID';
FDQuery1.ParamByName('ID').AsInteger := 1;
FDQuery1.Open;

答案 1 :(得分:-2)

使用TADOQuery将图像插入表中

Create Table new_table(
var1...,
var2...,
.,
.,
.,
image1 as type image ,
)

将以下内容添加到您的用户界面: Jpeg(有时默认情况下未添加)

将以下对象添加到您的项目中:

  • TOpenPictureDialog (oppCompanyLogo)
  • TImage (imgCompanyLogo)
  • TButton

按钮的事件如下:

if oppCompanyLogo.Execute then
begin
  imgCompanyLogo.Picture.LoadFromFile(oppCompanyLogo.FileName);
end;
  • 图像现在已分配给TIamge(imgCompanyLogo)对象;
  • 添加

    var JPG : TJPEGImage`
    JPG := TJPEGImage.Create;
    JPG.Assign(imgCompanyLogo.Picture);
    
  • 图像现在已分配给Jpeg图像JPG,

现在,我们将使用TADOQuery简单地将图像添加到表中:

  • 假设-您已经创建了与数据库的连接(要进行设置,请创建新帖子)

    with TADOQuery_name do
      begin
         Close;
         Tablename := tablename1;
         Open;
         Insert;
         FieldByName('Var1')...;
         FieldByName('Var2')...;
         .
         .
         .
         FieldByName('Image1').Assign(JPG);
         Post;
         Close;
       End;
    

简单...