图片问题(100分)

  • 主题发起人 主题发起人 羊羊
  • 开始时间 开始时间

羊羊

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL SEVER7。0中怎样象增加其它字段一样将图片加入到Image字段中?
在DELPHI中怎样将图片写到到Image字段中(也就是写到数据库)?急!急!急!
 
很简单的问题,用 TBlobStream
看看以前的贴子,多的很。
 
simbasun:
我没找到,请给我举个往表里加入图片字段的例子好吗?
 
var
Stm : TMemoryStream
begin
Stm := TMemoryStream.Create;
Stm.LoadFromFile('bmp.bmp');//如果是Stream就用LoadFromStream
Stm.Position=0;
Table.Edit;
TBlobField(Table.FieldByName('BITMAPFIELD')).LoadFromStream(Stm);
Table.Post;
Stm.Free;
end;

读出:

var
Stm : TMemoryStream
begin
Stm := TMemoryStream.Create;
TBlobField(Table.FieldByName('BITMAPFIELD')).SaveToStream(Stm);
//
//here, you do something with stream.
//
Stm.Free;
end;

 
还有:

procedure TForm1.Button1Click(Sender: TObject);
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
MyFile:=Tfilestream.create('c:/1.doc',fmopenread);
with table1 do
begin
Open;
insert;
Stream := TBlobStream.Create(FieldByName('content') as TBlobField, bmWrite);{‘Doc’为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize); {Make room for the buffer's null terminator.}
Buffer := AllocMem(MemSize); {Allocate the memory.}
try
Stream.Seek(0, soFromBeginning); {Seek 0 bytes from the stream's end point}
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
try
Post;
except
on E: EDatabaseError do
{ if HandelException(E)<>0 then
exit
else
raise;
end;
exit; }
end;

Doc_ole.CreateObjectFromFile('c:/1.doc',False);
Doc_ole.Run;{Doc_ole为ToleContainer构件名}
end;
 
simbasun:

首先谢谢你!你的回答很好,但有个问题:
向数据库加图片时不提示错误,但加不进去,这是为什么?我用的是SQL SEVER7。0,
图片类型选的是varbinary,长度最多设置为 8000,是不是这里出问题了,该怎么设置
。急!急!急!
 
接受答案了.
 
后退
顶部