图片或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