图片或word文件一但大于32k,则出错,word文件存入后,再读出来时,全是不可识别字符。图片读不出来,请各位给我看看,bde缓存我早就改为1024了。
//存入数据库
procedure Tfrm_funeral_money.bitbtnsaveClick(Sender: TObject);
var
ms:tmemorystream;
Begin
ms:=tmemorystream.Create;
ms.Clear;
ms.LoadFromFile('c:\tmp.bmp'); //»̣ỘwordÎĵµ
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into gh_funeral_money(dates,code,name,state,salary,cal
_salary,relief,transport,other,sum_all,re');
adoquery1.SQL.add(',attach)') //attach×Ö¶ÎΪlong binary ´æ´¢Í¼»̣word
adoquery1.SQL.Add(')');
adoquery1.SQL.Add('values('''+edit_date.Text+''','''+edit_code.Text+''','''+edit
_name.Text+''','''+edit_state.text+''','+edit_salary.Text+','+edit_cal_salary.Tex
t+','+edit_relief.Text+','+edit_transport.Text+','+edit_other.Text+','+edit_sum_a
ll.Text+','''+rich_re.Text+'''');
adoquery1.SQL.Add(',:a1)');
adoquery1.Parameters[0].LoadFromStream(ms,ftblob);
adoquery1.SQL.Add(')');
adoquery1.ExecSQL;
End
//从数据库中读出
procedure get_image()
var
string:sqlstr;
Begin
sqlstr='select attach from gh_funeral_money where id='+query_funeral_money.fieldb
yname('id').asstring;
query_attach.Close;
query_attach.SQL.Clear;
query_attach.SQL.Add(sqlstr);
try
query_attach.open;
(query_attach.FieldByName('attach') as tblobfield).SaveToFile('c:\tmp.bmp');
except
check_attach.Checked:=false;
application.messagebox('¶ÁÈ¡¸½¼₫³ö´í£¡','ϵͳ̀áʾ£¡',mb_ok+mb_iconstop);
exit;
end;
image1.Picture.LoadFromFile('c:\tmp.bmp');
End
//存入数据库
procedure Tfrm_funeral_money.bitbtnsaveClick(Sender: TObject);
var
ms:tmemorystream;
Begin
ms:=tmemorystream.Create;
ms.Clear;
ms.LoadFromFile('c:\tmp.bmp'); //»̣ỘwordÎĵµ
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into gh_funeral_money(dates,code,name,state,salary,cal
_salary,relief,transport,other,sum_all,re');
adoquery1.SQL.add(',attach)') //attach×Ö¶ÎΪlong binary ´æ´¢Í¼»̣word
adoquery1.SQL.Add(')');
adoquery1.SQL.Add('values('''+edit_date.Text+''','''+edit_code.Text+''','''+edit
_name.Text+''','''+edit_state.text+''','+edit_salary.Text+','+edit_cal_salary.Tex
t+','+edit_relief.Text+','+edit_transport.Text+','+edit_other.Text+','+edit_sum_a
ll.Text+','''+rich_re.Text+'''');
adoquery1.SQL.Add(',:a1)');
adoquery1.Parameters[0].LoadFromStream(ms,ftblob);
adoquery1.SQL.Add(')');
adoquery1.ExecSQL;
End
//从数据库中读出
procedure get_image()
var
string:sqlstr;
Begin
sqlstr='select attach from gh_funeral_money where id='+query_funeral_money.fieldb
yname('id').asstring;
query_attach.Close;
query_attach.SQL.Clear;
query_attach.SQL.Add(sqlstr);
try
query_attach.open;
(query_attach.FieldByName('attach') as tblobfield).SaveToFile('c:\tmp.bmp');
except
check_attach.Checked:=false;
application.messagebox('¶ÁÈ¡¸½¼₫³ö´í£¡','ϵͳ̀áʾ£¡',mb_ok+mb_iconstop);
exit;
end;
image1.Picture.LoadFromFile('c:\tmp.bmp');
End
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货