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

📄 imp.~pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
              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); } //psseno=:param1 and cpseno=:param2
            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+')');
            fieldstr:=sql[0]+sql[1]+sql[2]+sql[3];
            Prepare ;
            ExecSQL ;
          end;
    end;
 DelQuery.Close ;
 Query.Close ;
 txt.Free ;
 deletefile(pchar(filename));
end;

procedure Imp_sbdb_rtwage(filename,tablename,split:string;Query,DelQuery:TQuery); overload;
var
  line,fieldstr,valuestr:widestring;
  txt:Tstrings;
  i,j,pos1:integer;
  str:string;
  fieldname:array[0..5]of string;
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where psseno=:param1');
    end;
  fieldname[0]:='PRSENO';fieldname[1]:='PSSENO';fieldname[2]:='PYITEM';fieldname[3]:='FDCODE';
  fieldname[4]:='PYMOUNT';fieldname[5]:='PYPSACCT';
  {with Query do
    begin
      close;
      sql.Clear ;
      sql.Add('insert into '+tablename+' values(');
      sql.Add(':param1,:param2,:param3,:param4,:param5,:param6 )');
    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<2) 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 (i=0) and (pos1>1) 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产生的序列号
PYITEM   NUMBER(4)                     发放项目::对应于养老金待遇项目编码SBDC_PYITEM
FDCODE   CHAR(2)                       基金列支项目::对应于基金列支项目编码SBDC_FDPAYOUT
PYMOUNT  NUMBER(13,2)                  发放金额::
PYPSACCT NUMBER(13,2)                  其中个人账户支出::   }
end;

procedure Imp_sbdb_rtwage(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;
  //-----------------------20040823-------------------------------------
  if tablename='sbdb_rtwage' then   //程序没有考虑到sbdb_rtwage 里pyitem不同,删除有问题
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where psseno=:param1 and pyitem=:param2');
    end
  else
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where psseno=:param1');
    end;
  //-----------------------20040823-------------------------------------
 //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);
                    if lowercase(fieldname[pos1])='psseno' then
                      begin
                        DelQuery.ParamByName('param1').AsString :=str;
                        b1:=true;
                      end;
                    if (lowercase(tablename)='sbdb_rtwage') and (lowercase(fieldname[pos1])='pyitem') then
                      begin
                        DelQuery.ParamByName('param2').AsString :=str;
                        b2:=true;
                      end;
                  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(tablename)='sbdb_rtwage') and (lowercase(fieldname[pos1])='pyitem') then
                      begin
                        DelQuery.ParamByName('param2').AsString :=str;
                        b2:=true;
                      end;
                  end;
              end;
            inc(pos1);
            j:=pos(split,line);
          end;
        if (b1)and( lowercase(tablename)<>'sbdb_rtwage') then
          begin
            DelQuery.Prepare ;
            DelQuery.ExecSQL ;
          end
        else if (b1) and(b2) and (lowercase(tablename)='sbdb_rtwage') 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_sbdc_pyitem(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;
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename);
      prepare;
      execsql;
    end;
  fieldname[0]:='PYITEM';fieldname[1]:='PYNAME';fieldname[2]:='ITKIND';fieldname[3]:='PYKIND';fieldname[4]:='FDTYPE';
  fieldname[5]:='PYMODE';fieldname[6]:='INMODE';fieldname[7]:='FDMODE';fieldname[8]:='RPMODE';fieldname[9]:='ITKIND2';
  fieldname[10]:='INDUSTRY';fieldname[11]:='ITEMKIND';
  txt:=Tstringlist.Create ;
  txt

⌨️ 快捷键说明

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