怎样加入JPG/GIF文件入SQL SERVER中的IMAGE字段并能够显示?解决此问题者给100分!!!!

pk3g9a 2001-10-30 10:53:52
1、以下代码能够加入一些BMP图片入SQL SERVER,但是大一点的都不行,加入JPG/GIF文件出现如下错误:Cannot assing a tpicture a TBlobField.

请问如何解决?能修改以下代码使它达到能加入JPG/GIF文件入数据库?
procedure Tdept.DBImage1DblClick(Sender: TObject);
var
picture1:Tpicture;
begin
if openpicturedialog1.execute then
begin
picture1:=tpicture.create;
picture1.loadfromfile(openpicturedialog1.filename);
Datamodule1.clientemployee.edit;
Datamodule1.clientemployee.FieldByName('photo').assign(picture1);
//Datamodule1.clientemployee.ApplyUpdates(-1);
end
end;

2、[Error] dept1.pas(148): Undeclared identifier: 'TBlobField'
此种错误,需要在前面加USES ?????什么。

3、给出存入数据库与从数据库取出显示,一定给150分!!!!
(注意,我添加图片时是编辑,即有一个ID)
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfmich 2001-10-30
  • 打赏
  • 举报
回复
uses db;

var
BlobImage : TBlobField;
begin
with ADODataSet_Voice do
begin
if Active then
begin
RecordSet.Close;
Close;
end;
end;
BlobImage := TBlobField.Create(Self);
BlobImage.FieldName := 'Voice';
BlobImage.Name := ADODataSet_Voice.Name + BlobImage.FieldName;
BlobImage.Index := ADODataSet_Voice.FieldCount;
BlobImage.DataSet := ADODataSet_Voice;
ADODataSet_Voice.FieldDefs.UpDate;
ADODataSet_Voice.CommandText :='select * from Voice where VID='+IntToStr(sVID);
ADODataSet_Voice.Open;
BlobImage.SaveToFile(sPcmFileName);
with ADODataSet_Voice do
begin
if Active then
begin
RecordSet.Close;
Close;
end;
end;
BlobImage.Free;

end;

我的例子是把IMAGE类型字段读出然后存为文件.
zhuoyuesky 2001-10-30
  • 打赏
  • 举报
回复
去搜搜以前的帖子有的
票票飞扬 2001-10-30
  • 打赏
  • 举报
回复
给你一个存储任意文件到SQL Server的Image字段的例子.
Table1(FileName VARCHAR(50),FileStream IMAGE)
//存入数据库
var sFileName :String;

if OpenDialog1.Execute then
begin
sFileName := ExtractFileName(OpenDialog1.FileName);
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('INSERT INTO TABLE VALUES(:FileName,:FileStream)');
Query.ParamByName('FileName').AsString := sFileName;
Query.ParamByName('FileStream').LoadFromFile(OpenDialog1.FileName,ftBlob);
Query.ExecSQL;
end;

//取出文件
var sFileName :String;
begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT * FROM Table');
Query.Open;
Query.First;
sFileName := 'C:\'+Query.FieldByName('FileName').AsString;
(Query.FieldByName('FileStream') AS TBlobField).SaveToFile(sFileName);
end;

至于显示,我想你可以自己解决吧!

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧