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

📄 imp.~pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
                          if value[pos1]='psseno' then
                          begin
                            DelQuery.ParamByName('param1').AsString :=str;
                            b[0]:=true;
                          end;
                          if value[pos1]='yearno' then
                          begin
                            DelQuery.ParamByName('param2').AsString :=str;
                            b[1]:=true;
                          end;
                       end
                else
                begin
                valuestr:=valuestr+','+value[pos1];
                paramstr:=paramstr+','+Quotedstr(str);
                if value[pos1]='psseno' then
                  begin
                    DelQuery.ParamByName('param1').AsString :=str;
                    b[0]:=true;
                  end;
                if value[pos1]='yearno' then
                  begin
                    DelQuery.ParamByName('param2').AsString :=str;
                    b[1]:=true;
                  end;
                end;
            inc(pos1);
            j:=pos(split,line);
          end;
        if (b[0]) and (b[1]) then
        begin
          DelQuery.Prepare ;
          DelQuery.ExecSQL ;
        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(valuestr+')');
            sql.Add('values');
            sql.Add(paramstr+')');
         //   valuestr:=sql[0]+sql[1]+sql[2]+sql[3];
            Prepare ;
            ExecSQL ;
          end;
      end;
  DelQuery.Close ;
  Query.Close ;
  txt.Free ;
  deletefile(pchar(filename));
end;

procedure Imp_sbda_psrtacct(filename,tablename,split:string;Query,DelQuery:TQuery); overload;
var
  line,Fieldstr,valuestr:widestring;
  txt:Tstrings;
  i,j,pos1:integer;
  str:string;
  Fieldname:array[0..11] of string;// ,value
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where psseno=:param1 and yearno=:param2');
    end;
  Fieldname[0]:='PRSENO';  Fieldname[1]:='PSSENO';  Fieldname[2]:='YEARNO';Fieldname[3]:='LYREFD';  Fieldname[4]:='CYRTWG';
  Fieldname[5]:='CYPYMONS';Fieldname[6]:='CYPYINTS';Fieldname[7]:='NMRTWG';Fieldname[8]:='INTSDATE';Fieldname[9]:='KEFLAG';
  Fieldname[10]:='CYEDACCT';
  {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,:param11 )')
    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<11) 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 :=str;
            //Query.Params[pos1].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产生的序列号
YEARNO   NUMBER(4)                     记帐年份::
LYREFD   NUMBER(13,2)                  上年末帐户储存额::上年底结余养老金
CYRTWG   NUMBER(13,2)                  本年支付总额::本年支付养老金
CYPYMONS NUMBER(13,2) Y                本年帐户余额月积数::每月追加月积数=上年末帐户储存额-本年支付总额, <0时为零
CYPYINTS NUMBER(13,2) Y                本年帐户余额利息::
NMRTWG   NUMBER(13,2) Y                下月支付总额::
INTSDATE DATE         Y                结息时间::
KEFLAG   CHAR(1)      Y                封存标志::[0 正常支付 1 支付完毕]
CYEDACCT NUMBER(13,2)}
end;

procedure Imp_sbda_psrtacct(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;// ,value
  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 yearno=: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];
      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);
            str:=trim(str);
            line:=copy(line,j+1,length(line)-j);
            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);
                    if lowercase(fieldname[pos1])='psseno' then
                          begin
                            DelQuery.ParamByName('param1').AsString :=str;
                            b1:=true;
                          end;
                     if lowercase(fieldname[pos1])='yearno' 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+')');
            Prepare ;
            ExecSQL ;
          end;
    end;
  DelQuery.Close ;
  Query.Close ;
  txt.Free ;
  deletefile(pchar(filename));
end;

procedure Imp_sbdb_cparch(filename,tablename,split:string;Query,DelQuery:TQuery);
var
  line,fieldstr,valuestr:widestring;
  txt:Tstrings;
  i,j,pos1:integer;
  str:string;
  fieldname:array[0..28] of string;
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where cpseno=:param1');
    end;
  Fieldname[0]:='PRSENO'; fieldname[1]:='CPSENO'; fieldname[2]:='INDUSTRY';Fieldname[3]:='REGNO'; Fieldname[4]:='CPCODE';
  Fieldname[5]:='CPNAME'; Fieldname[6]:='TAXNO';  fieldname[7]:='ECCODE';  Fieldname[8]:='ATCODE';Fieldname[9]:='SBCODE';
  fieldname[10]:='DPCODE';Fieldname[11]:='TDCODE';Fieldname[12]:='ADDRESS';Fieldname[13]:='ZIP';  Fieldname[14]:='CHIEF';
  fieldname[15]:='WALLA';fieldname[16]:='WALLADEPT';fieldname[17]:='WATEL';fieldname[18]:='STATUS';fieldname[19]:='SACODE';
  fieldname[20]:='OPDATE';fieldname[21]:='OPCODE';fieldname[22]:='CPKIND'; fieldname[23]:='RUPTFLG';fieldname[24]:='CMCPSENO';
  fieldname[25]:='NOTES';fieldname[26]:='BANK';   fieldname[27]:='ACCOUNT';fieldname[28]:='NAME';
  {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,:param27,:param28,:param29  )');
    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<29) 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);

⌨️ 快捷键说明

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