⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imp.~pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
      str1:=copy(str1,i+1,length(str1)-i);
      i:=pos(',',str1);
    end;

    txt:=Tstringlist.Create ;
    txt.LoadFromFile(filename);
  for i:=0 to txt.Count-1 do
    begin
      line:=txt[i];
      pos1:=0;            DelQuery.Close ;
      j:=pos(split,line);  fieldstr:='';valuestr:=''; b1:=false;    b2:=false;
      while (j>0) and (pos1<=pos2) do
        begin
            if j>1 then
            str:=copy(line,1,j-1)
            else
              begin
                line:=copy(line,j+1,length(line)-j);
                j:=pos(split,line);
                inc(pos1);
                continue ;
              end;
            //str:=copy(line,1,j-1);           psseno=:param1 and cpseno=:param2
            str:=trim(str);
            line:=copy(line,j+1,length(line)-j);
            {if (pos1>0) and (pos1<3) then
              DelQuery.Params[pos1-1].AsString :=trim(str); }
            if str<>'' then
              begin
                if fieldstr='' then
                  begin
                    fieldstr:='('+Fieldname[pos1];
                    valuestr:='('+Quotedstr(str);
                    if fieldname[pos1]='psseno' then
                      begin
                        DelQuery.ParamByName('param1').AsString :=str;
                        b1:=true;
                      end;
                    if Fieldname[pos1]='cpseno' then
                      begin
                        DelQuery.ParamByName('param2').AsString :=str;
                        b2:=true;
                      end;
                  end
                else
                  begin
                    fieldstr:=fieldstr+','+fieldname[pos1];
                    valuestr:=valuestr+','+Quotedstr(str);
                    if fieldname[pos1]='psseno' then
                      begin
                        DelQuery.ParamByName('param1').AsString :=str;
                        b1:=true;
                      end;
                    if Fieldname[pos1]='cpseno' then
                      begin
                        DelQuery.ParamByName('param2').AsString :=str;
                        b2:=true;
                      end;
                  end;
              end;
            inc(pos1);
            j:=pos(split,line);
          end;
        if (b1 and b2)  then
          begin
            DelQuery.Prepare ;
            DelQuery.ExecSQL ;
          end;
        with Query do
          begin
            close;
            sql.Clear ;
            sql.Add('insert into '+tablename);
            sql.Add(Fieldstr+')');
            sql.Add('values');
            sql.Add(valuestr+')');
            str:=sql[0]+sql[1]+sql[2]+sql[3];
            Prepare ;
            ExecSQL ;
          end;
    end;
 DelQuery.Close ;
 Query.Close ;
 txt.Free ;
 deletefile(pchar(filename));
end;
//SBDB_RTARCH增加了字段
procedure Imp_SBDB_RTARCH(filename,tablename,split:string;Query,DelQuery:TQuery);
var
  line,fieldstr,valuestr:widestring;
  txt:Tstrings;
  i,j,pos1:integer;
  str:string;
  fieldname:array[0..67] of string;
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where psseno=:param1 and cpseno=:param2');
    end;
 fieldname[0]:='PRSENO';fieldname[1]:='PSSENO';fieldname[2]:='CPSENO';fieldname[3]:='ISCODE';fieldname[4]:='AGCARDNO';
 fieldname[5]:='PSNAME';fieldname[6]:='SEX';   fieldname[7]:='BDATE'; fieldname[8]:='WKDATE';fieldname[9]:='ADDRESS';
 fieldname[10]:='ZIP';  fieldname[11]:='PYYEARS';fieldname[12]:='WKATTR';fieldname[13]:='IDENTITY';fieldname[14]:='RTDATE';
 fieldname[15]:='RTCODE';fieldname[16]:='HOUSEHOLD';fieldname[17]:='RTWG';fieldname[18]:='PSACPY';fieldname[19]:='ACCTSAVE';
 fieldname[20]:='ACPSSAVE';fieldname[21]:='TRCODE';fieldname[22]:='ACCTNO';fieldname[23]:='MADDR';fieldname[24]:='STREET';
 fieldname[25]:='SACODE';fieldname[26]:='PDCODE';fieldname[27]:='RTFLAG';fieldname[28]:='STATUS';fieldname[29]:='RECADJ';
 fieldname[30]:='CUAGWG';fieldname[31]:='ALLOWANCE';fieldname[32]:='WDFEE';fieldname[33]:='OPYEAR';fieldname[34]:='OPMONTH';
 fieldname[35]:='OPDATE';fieldname[36]:='MTRNAME';fieldname[37]:='MACCTNO';fieldname[38]:='ADDWGMONTHS';fieldname[39]:='NOTES';
 fieldname[40]:='MTRZIP';fieldname[41]:='ARCODE';fieldname[42]:='MTRPRO'; fieldname[43]:='MTRCITY';fieldname[44]:='RTKIND';
 fieldname[45]:='LBWORK';fieldname[46]:='JZGB';fieldname[47]:='GSYZ';fieldname[48]:='IDENTITY1';fieldname[49]:='LXDH';
 fieldname[50]:='COMCODE';fieldname[51]:='ATMETHOD';fieldname[52]:='ATMETHODNAME';fieldname[53]:='FACOUNT';fieldname[54]:='RZBZ';
 fieldname[55]:='BJBZ';fieldname[56]:='NATIONAL';fieldname[57]:='NACODE';fieldname[58]:='AGE';fieldname[59]:='INDUSTRY';
 fieldname[60]:='HEALTH';fieldname[62]:='LIFEFIELD';fieldname[63]:='WKTYPE';fieldname[64]:='WKTYPEMON';
 fieldname[65]:='WORKHURT';fieldname[66]:='BLACK';fieldname[67]:='RTPY';

  {with Query do
    begin
      close;
      sql.Clear ;
      sql.Add('insert into '+tablename+' values(');
      sql.Add(':param1,:param2,:param3,:param4,:param5,:param6,:param7,:param8,:param9,:param10');
      sql.Add(':param11,:param12,:param13,:param14,:param15,:param16,:param17,:param18,:param19,:param20');
      sql.Add(':param21,:param22,:param23,:param24,:param25,:param26,:parma27,:param28,:param29,:param30');
      sql.Add(':param31,:param32,:param33,:param34,:param35,:param36,:param37,:param38,:param39,:param40');
      sql.Add(':param41,:param42,:param43,:param44,:param45,:param46,:param47,:param48,:param49,:param50');
      sql.Add(':param51,:param52,:param53,:param54,:param55,:param56,:param57,:param58,:param59,:param60');
      sql.Add(':param61,:param62,:param63,:param64,:param65,:param66,:param67,:param68 )');
    end;}
    txt:=Tstringlist.Create ;
    txt.LoadFromFile(filename); 
  for i:=0 to txt.Count-1 do
    begin
      line:=txt[i];
      pos1:=0;
      j:=pos(split,line);fieldstr:='';valuestr:=''; DelQuery.Close ;
      while (j>0) and (pos1<68) do
        begin 
            if j>1 then
            str:=copy(line,1,j-1)
            else
              begin
                line:=copy(line,j+1,length(line)-j);
                j:=pos(split,line);
                inc(pos1);
                continue ;
              end;
            //str:=copy(line,1,j-1);
            str:=trim(str);
            line:=copy(line,j+1,length(line)-j);
            if (pos1>0) and (pos1<3) then
              DelQuery.Params[pos1-1].AsString :=trim(str);
            if str<>'' then
              begin
                if fieldstr='' then
                  begin
                    fieldstr:='('+Fieldname[pos1];
                    valuestr:='('+Quotedstr(str);
                  end
                else
                  begin
                    fieldstr:=fieldstr+','+fieldname[pos1];
                    valuestr:=valuestr+','+Quotedstr(str);
                  end;
              end;
            inc(pos1);
            j:=pos(split,line);
          end;
        if (pos1>2) then
          begin
            DelQuery.Prepare ;
            DelQuery.ExecSQL ;
          end;
        with Query do
          begin
            close;
            sql.Clear ;
            sql.Add('insert into '+tablename);
            sql.Add(Fieldstr+')');
            sql.Add('values');
            sql.Add(valuestr+')');
            Prepare ;
            ExecSQL ;
          end;
    end;
 DelQuery.Close ;
 Query.Close ;
 txt.Free ;
 deletefile(pchar(filename));
{PRSENO       NUMBER(13)                     数据库记录行号::所有表的行号取至SB_PRSENO
PSSENO       NUMBER(8)                      人员内码::SB_PSSENO产生的序列号
CPSENO       NUMBER(6)                      单位内码::
ISCODE       CHAR(18)      Y                社会保障号::                                                       
AGCARDNO     CHAR(8)       Y                手册编号::                                                         
PSNAME       VARCHAR2(10)  Y                姓名::                                                             
SEX          CHAR(1)                        性别::[1 男. 0 女]                                                 
BDATE        DATE          Y                出生日期::                                                         
WKDATE       DATE          Y                参加工作时间::                                                     
ADDRESS      VARCHAR2(80)  Y                家庭住址::                                                         
ZIP          VARCHAR2(6)   Y                邮编::                                                             
PYYEARS      NUMBER(5,2)                    缴费年限::累积缴费年限                                             
WKATTR       CHAR(1)       Y                用工性质::[0 固定工.1 合同工.2 临时工.3 农民工]                    
IDENTITY     CHAR(2)       Y                身份代码::机关事业身份代码SBDC_IDTYPE                              
RTDATE       DATE          Y                离退休时间::                                                       
RTCODE       CHAR(2)                        离退休类型::参见离退休类型编码表SBDC_RTTYPE                        
HOUSEHOLD    CHAR(1)       Y                户籍关系::[0 城镇.1 农村]                                          
RTWG         NUMBER(13,2)  Y                原基本养老金::退休时核定的月基本养老金                             
PSACPY       NUMBER(13,2)                   原个人帐户支出额::退休时核定的月基本养老金中的个人帐户支出额       
ACCTSAVE     NUMBER(13,2)                   个人帐户储存额::退休时个人帐户累计储存额                           
ACPSSAVE     NUMBER(13,2)                   个人帐户个人部分储存额::退休时个人帐户累计储存额中的个人部分储存额 
TRCODE       NUMBER(4)                      委托机构编码::参见委托机构编码表SBDC_TRUST                         
ACCTNO       VARCHAR2(40)  Y                银行帐号::银行帐号                                                 
MADDR        VARCHAR2(60)  Y                异地发放的联系地址::                                               
STREET       NUMBER(7)     Y                所属社区::参见社区编码表SBDC_COMMUNITY                             
SACODE       CHAR(6)       Y                辖区编号::参见辖区编码表SBDC_SIAREA                                
PDCODE       CHAR(2)       Y                险种编码::参见险种编码表SBDC_PDTYPE[01.02.04]                      
RTFLAG       CHAR(1)       Y                统一制度前退休标志::                                               
STATUS       CHAR(1)                        当前保险状态::[0 正常.1 暂停.2 终止]                               
RECADJ       NUMBER(13,2)  Y                最近调整额::(暂不使用)                                             
CUAGWG       NUMBER(13,2)                   本月基本养老金::(暂不使用)                                         
ALLOWANCE    NUMBER(13,2)                   其中津贴::(暂不使用)                                               
WDFEE        NUMBER(13,2)                   工伤护理费::(暂不使用)                                             
OPYEAR       NUMBER(4)     Y                操作年份::(暂不使用)                                               
OPMONTH      NUMBER(2)     Y                操作月份::(暂不使用)                                               
OPDATE       DATE          Y                业务操作时间::本业务被处理时的数据自然日期(暂不使用)               
MTRNAME      VARCHAR2(100) Y                MTRNAME                                                            
MACCTNO      VARCHAR2(40)  Y                MACCTNO                                                            
ADDWGMONTHS  NUMBER(3)                      ADDWGMONTHS                                                        
NOTES        VARCHAR2(200) Y                                                                                   
MTRZIP       VARCHAR2(6)   Y                MTRZIP                                                             
ARCODE       CHAR(6)                        ARCODE                                                             
MTRPRO       VARCHAR2(30)  Y                MTRPRO                                                             
MTRCITY      VARCHAR2(30)  Y                MTRCITY                                                            
RTKIND       CHAR(1)                        RTKIND                                                             
LBWORK       CHAR(1)       Y                解放前参加工作                                                     
JZGB         CHAR(1)       Y                军转干部                                                           
GSYZ         CHAR(1)       Y                原工商业者                                                         
IDENTITY1    CHAR(1)       Y                高级职称                                                           
LXDH         CHAR(13)      Y                联系电话                                                           
COMCODE      NUMBER(7)     Y                未使用                                                             
ATMETHOD     NUMBER(1)     Y                认证方法                                                           
ATMETHODNAME VARCHAR2(30)  Y                认证办法中文名                                                     
FACOUNT      NUMBER(8,2)   Y                信用值                                                             
RZBZ         CHAR(1)       Y                认证标志0表示正常1表示暂停发放养老金2表示终止养老保险              
BJBZ         CHAR(1)       Y                报警标志0表示没有被报警1表示已经被报警                             
NATIONAL     VARCHAR2(10)  Y                民族(中文)                                                         
NACODE       CHAR(2)       Y                民族编码                                                           
AGE          VARCHAR2(3)   Y                年龄                                                               
INDUSTRY     CHAR(2)       Y                所属行业                                                           
HEALTH       VARCHAR2(10)  Y                健康状况                                                           
LIFEFIELD    VARCHAR2(10)  Y                长期生活地                                                         
WKTYPE       CHAR(2)       Y                特殊工种
WKTYPEMON    VARCHAR2(3)   Y                特殊工种月数                                                       
WORKHURT     VARCHAR2(10)  Y                工伤                                                               
BLACK        CHAR(1)       Y                '0'是黑名单'1'不是黑名单                                           
RTPY         VARCHAR2(5)   Y                养老金总额
}
end;

procedure Imp_SBDB_RTARCH(filename,tablename,split:string;fieldnames:widestring;Query,DelQuery:TQuery);overload;
var
  line,fieldstr,valuestr,str1:widestring;
  txt:Tstrings;
  i,j,pos1,pos2:integer;
  str:string;
  fieldname:array[0..99] of string;
  b1,b2:boolean;
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where psseno=:param1 and cpseno=:param2');
    end;
 //b1:=false;b2:=false;
 str1:=fieldnames+',';
 i:=pos(',',str1); pos2:=0;
 while i>1 do
   begin
     fieldname[pos2]:=trim(copy(str1,1,i-1));
     inc(pos2);
     str1:=copy(str1,i+1,length(str1)-i);
     i:=pos(',',str1);
   end;


    txt:=Tstringlist.Create ;
    txt.LoadFromFile(filename);
  for i:=0 to txt.Count-1 do
    begin
      line:=txt[i]; // showmessage(line); line:=Stringreplace(line,chr(10),'',[rfReplaceAll, rfIgnoreCase]); showmessage(line);
      pos1:=0;   DelQuery.Close ;
      j:=pos(split,line);fieldstr:='';valuestr:=''; b1:=false;    b2:=false;
      while (j>0) and (pos1<=pos2) do
        begin
            if j>1 then
            str:=copy(line,1,j-1)
            else
              begin
                line:=copy(line,j+1,length(line)-j);
                j:=pos(split,line);
                inc(pos1);
                continue ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -