用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;
这是我程序中用到的一段。
其中“照片“为长二进制字段,将其导入新表中,并将其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;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货