用DelPhi的Blob字段.
这是我程序中用到的一段。
其中“照片“为长二进制字段,将其导入新表中,并将其Active控件所能识别的文件头去掉,并写入新表,以与dbimage控件相连,希望能对你有所帮助procedure TF_data.INputrs(tablename:string);
var
  MyNode:TTreeNode;
  Tem_zw,Tem_bm,Tem_zbm,tem_zzbm:string;
  i,j:integer;
  TEm_str:string;
  Tem_node:TTreeNode;
  p:^integer;
  Tem_query:Tquery;
  New_query:Tquery;
  Tem_id:integer;
  Tem_souzp:AnsiString;
  Tem_tarzp:Ansistring;
  Tem_subzp:string;
  table:TTable;
begin
  if TreeView1.Items.count<=0 then exit;
  label3.caption:='正在导入人事人员数据';
  update;
  Gauge1.progress:=0;
  Tem_query:=Tquery.Create(nil);
  Tem_query.Databasename:='hrmdata';
  New_query:=Tquery.Create(nil);
  With New_query do begin
    Databasename:='dfcdata';
    For i:=0 to Treeview1.items.Count-1 do begin
      MyNode:=TreeView1.items.item[i];
      if myNode.imageindex=2 then begin
        p:=MyNode.Data;
        Tem_zw:=Trim(MyNode.text);
        Tem_Node:=MyNode.parent;
        Tem_zzbm:=Trim(Tem_Node.Text);
        Tem_Node:=Tem_Node.parent;
        Tem_zbm:=Trim(Tem_Node.Text);
        Tem_Node:=Tem_node.parent;
        Tem_bm:=Trim(Tem_Node.Text);
        Sql.Clear;
        Sql.add('Select * from '+Tablename+' where Trim(计算单位)='''+Tem_bm+''' and Trim(工段)='''+Tem_zbm+''' and Trim(班)='''+Tem_zzbm+''' and Trim(岗位)='''+Tem_zw+'''');
        Open;
        Gauge1.maxvalue:=GetRecordCount(Tablename);
        While Not Eof do begin
          Tem_id:=InCId('rs_ryxx');
          Tem_query.Sql.Clear;
          Tem_query.Sql.Add('insert into rs_ryxx(id,ryxx_gh,ryxx_xm,ryxx_csny,ryxx_begindate,ryxx_ssmz,ryxx_zzmm,ryxx_gj,ryxx_jg,ryxx_whcd,ryxx_sxzy,ryxx_lxdz,ryxx_sfzhm,ryxx_ssbm,ryxx_ryjd,ryxx_xb) values(');
          Tem_query.Sql.Add(IntToStr(Tem_id)+','''+Fieldbyname('jm').Asstring+''','''+Fieldbyname('xm').Asstring+''',#'+Trim(Fieldbyname('出生年').Asstring)+'-01-01#,');
          Tem_query.Sql.Add('#'+Trim(Fieldbyname('工作年').Asstring)+'-01-01#,'''+Fieldbyname('民族').Asstring+''','''+Fieldbyname('党派').Asstring+''',''中华人民共各国'','''+Fieldbyname('籍贯').Asstring+''',');
          Tem_query.Sql.Add(''''+Fieldbyname('学历').Asstring+''','''+Fieldbyname('所学专业').Asstring+''','''+Fieldbyname('地址').Asstring+''','''+Fieldbyname('身份证').Asstring+''',');
          Tem_query.Sql.Add(IntToStr(P^)+',''2'',');
          Tem_str:=Trim(Fieldbyname('jm').Asstring);
          Tem_str:=Copy(Tem_str,Length(Tem_str),1);
          if Tem_str='2' then Tem_query.Sql.Add('''女'')')
          else Tem_query.Sql.Add('''男'')');
          Tem_query.ExecSQL;
          Tem_souzp:=Fieldbyname('照片').Asstring;
          Tem_tarzp:='';
          For j:=1 to Length(tem_souzp) do begin
            Tem_subzp:=Copy(Tem_souzp,j,3);
            if (Copy(Tem_subzp,1,2)='BM')and(Tem_subzp<>'BMP') then break;
          end;
          if j>1 then Tem_tarzp:=Copy(Tem_souzp,j,length(tem_souzp)-j+1);
          Table:=Ttable.Create(nil);
          Table.Databasename:='hrmdata';
          Table.Tablename:='rs_ryxx';
          Table.Active:=True;
//          ms:=Tem_tarzp;
          if Table.locate('id',Tem_id,[]) then begin
            Table.Edit;
            Table.Fieldbyname('ryxx_zp').Asstring:=Tem_tarzp;
            Table.Post;
          end;
          Table.Active:=False;
          Table.Free;
          Gauge1.progress:=Gauge1.progress+1;
          Label3.caption:='正在导入人事人员数据\...\'+Fieldbyname('xm').Asstring;
          update;
          Next;
        end;
      end;
    end;
    free;
  end;
  Tem_query.Free;
end;