Delphi+ADO+SQL Server存储读取任何格式的文件(100分)

G

gztoms

Unregistered / Unconfirmed
GUEST, unregistred user!
本人想用Delphi+ADO+SQL Server来存储读取任何格式的文件,比如文本格式(DOC,TXT等),
图片格式等等,我认为用流的方法应该可以解决这个问题,曾经试过:
procedure TForm1.Button1Click(Sender: TObject);
var
Stream: TADOBlobStream;
MemoryStream : TMemoryStream;
begin
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.Append;
MemoryStream := TMemoryStream.Create;
MemoryStream.LoadFromFile('file.doc');
stream :=
TADOBlobStream.Create(ADOQuery1.FieldByName('files')as TBlobField,bmReadWrite);
//上面一句话出错了
MemoryStream.SaveToStream(stream);
stream.free;
ADOQuery1.Post;
MemoryStream.Free;
end;
字段files的类型是binary,但是不能同过,请各位大侠指点指点,
请给点主意,最好给一段程序,先谢谢了!
 
我试过用ORACLE数据库,字段用BLOB类型就能通过,
不过,用SQL Server2000数据库,试过几种方法都
不行,请各位大侠快点出主意,快到先给分。
 
用image或是text字段类型
procedure TForm1.Button1Click(Sender: TObject);//存储
var str:Tmemorystream;
begin
str:=Tmemorystream.Create;
Str.LoadFromFile('C:/aa.txt');
str.Position:=0;
adoquery1.Append;
Tblobfield(adoquery1.FieldByName('attachfile')).loadfromstream(str);
try
adoquery1.Post;
finally
str.Free;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);//读取
var str:Tmemorystream;
begin
str:=Tmemorystream.Create;
str.Position:=0;
Tblobfield(adoquery1.FieldByName('attachfile')).savetostream(str);
str.SaveToFile('F:/gg.txt');
str.Free;
end;
 
text字段类型好像不行
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
566
import
I
顶部