如何在 数据库中加入图片文件 如何在 paradox 5.0 for windows 数据库中加入图片文件各位大虾我不知道如何在数据库的一个域中写入图片文件和mp3文件请高手指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读文件function TDataBaseFileItems.ReadFile(const AGUID, ASaveFileName: String): Boolean;var ADOQ: TADOQuery;begin ADOQ :=TADOQuery .Create(Application); ADOQ .ConnectionString :=FDBConnectStr;//将文件保存 try ADOQ.SQL .Clear ; ADOQ .SQL .Add(Format('SELECT GUID,PATH,FILEIMAGE FROM FILEDATA WHERE GUID=''%s''',[AGUID])); ADOQ .Open; While Not ADOQ.Eof do begin TBlobField(ADOQ.FieldByName('FILEIMAGE')).SaveToFile(ASaveFileName); ADOQ.Next; end; Result:=TRUE; finally ADOQ.Free; end;end;保存文件,原来就有记录了,所以是修改,你你改成Insert 语句就可以了.function TDataBaseFileItems.SaveFile(const AGUID, AFileName: String): Boolean;var ADOCommand:TADOCommand; tempParameter:TParameter;begin if FileExists(AFileName) then begin try ADOCommand:=TADOCommand .Create(Application); ADOCommand .ConnectionString :=FDBConnectStr ; tempParameter:=ADOCommand.Parameters.AddParameter; tempParameter.Name :='FILEIMAGE'; tempParameter.DataType :=ftBlob ; ADOCommand.CommandText :=Format('UPDATE FILEDATA SET FILEIMAGE=:FILEIMAGE WHERE GUID=''%s''',[AGUID]) ; ADOCommand.Parameters.ParamByName('FILEIMAGE').LoadFromFile(AFileName,ftBlob); ADOCommand.Execute ; finally ADOCommand.Free; end; end;end; procedure TForm20.Button1Click(Sender: TObject);//保存,假设第一个字段为存储图片的字段varpicstream:tadoblobstream;beginadoquery1.Insert;picstream:=tadoblobstream.Create(tblobfield(adoquery1.fields[0]),bmWrite);picstream.LoadFromFile(openpicturedialog1.filename);picstream.Position:=0;tblobfield(adoquery1.Fields[0]).loadfromstream(picstream);adoquery1.post;end; procedure TForm4.tupian();//读取var B:Tbitmap; JpegImage:TJpegImage; BS:TadoBlobStream;begin try//如果是Jpeg格式 BS := TadoBlobStream.Create(TBlobField(ADOQuery1image), bmRead); JpegImage := TJpegImage.Create; JpegImage.JPEGNeeded; JpegImage.LoadFromStream(BS); Image1.Picture.Assign(JpegImage); JpegImage.Free; BS.Free; except//如果是BMP格式 BS := TadoBlobStream.Create(TBlobField(ADOQuery1image), bmRead); B:=Tbitmap.Create; b.LoadFromStream(BS); Image1.Picture.Assign(b); B.Free; BS.Free; end;end;end; delphi登录窗体代码 断点调试问题 OCX控件与服务器的数据库进行数据交换用什么方法? 初学delphi,问个SQL语言的问题 怎样模拟Ctrl+V键? 一直没有散过分...今儿凑一热闹....可用分都5000多 对这串带码我的理解不知道对不对 一个奇怪的DLL问题!!! 询问高手如何在Delphi中挂入操作日志文件及帮助文件 100万条记录有什么办法使它查询最快? 能在三秒钟内查出,分页...? 一个很白的问题,不同窗体之间值传递 TcxGrid 如何安装
function TDataBaseFileItems.ReadFile(const AGUID,
ASaveFileName: String): Boolean;
var
ADOQ: TADOQuery;
begin
ADOQ :=TADOQuery .Create(Application);
ADOQ .ConnectionString :=FDBConnectStr;//将文件保存
try
ADOQ.SQL .Clear ;
ADOQ .SQL .Add(Format('SELECT GUID,PATH,FILEIMAGE FROM FILEDATA WHERE GUID=''%s''',[AGUID]));
ADOQ .Open;
While Not ADOQ.Eof do
begin
TBlobField(ADOQ.FieldByName('FILEIMAGE')).SaveToFile(ASaveFileName);
ADOQ.Next;
end;
Result:=TRUE;
finally
ADOQ.Free;
end;
end;
保存文件,原来就有记录了,所以是修改,你你改成Insert 语句就可以了.
function TDataBaseFileItems.SaveFile(const AGUID,
AFileName: String): Boolean;
var
ADOCommand:TADOCommand;
tempParameter:TParameter;
begin
if FileExists(AFileName) then
begin
try
ADOCommand:=TADOCommand .Create(Application);
ADOCommand .ConnectionString :=FDBConnectStr ;
tempParameter:=ADOCommand.Parameters.AddParameter;
tempParameter.Name :='FILEIMAGE';
tempParameter.DataType :=ftBlob ;
ADOCommand.CommandText :=Format('UPDATE FILEDATA SET FILEIMAGE=:FILEIMAGE WHERE GUID=''%s''',[AGUID]) ;
ADOCommand.Parameters.ParamByName('FILEIMAGE').LoadFromFile(AFileName,ftBlob);
ADOCommand.Execute ;
finally
ADOCommand.Free;
end;
end;
end;
var
picstream:tadoblobstream;
begin
adoquery1.Insert;
picstream:=tadoblobstream.Create(tblobfield(adoquery1.fields[0]),bmWrite);
picstream.LoadFromFile(openpicturedialog1.filename);
picstream.Position:=0;
tblobfield(adoquery1.Fields[0]).loadfromstream(picstream);
adoquery1.post;
end;
var
B:Tbitmap;
JpegImage:TJpegImage;
BS:TadoBlobStream;
begin
try//如果是Jpeg格式
BS := TadoBlobStream.Create(TBlobField(ADOQuery1image), bmRead);
JpegImage := TJpegImage.Create;
JpegImage.JPEGNeeded;
JpegImage.LoadFromStream(BS);
Image1.Picture.Assign(JpegImage);
JpegImage.Free;
BS.Free;
except//如果是BMP格式
BS := TadoBlobStream.Create(TBlobField(ADOQuery1image), bmRead);
B:=Tbitmap.Create;
b.LoadFromStream(BS);
Image1.Picture.Assign(b);
B.Free;
BS.Free;
end;
end;
end;