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

📄 imp.~pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
            if (pos1>0) and (pos1<2) then
              DelQuery.Params[pos1-1].AsString :=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>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
CPSENO    NUMBER(6)
INDUSTRY  CHAR(2)                        INDUSTRY
REGNO     VARCHAR2(14)  Y
CPCODE    CHAR(8)       Y
CPNAME    VARCHAR2(60)
TAXNO     VARCHAR2(24)  Y
ECCODE    CHAR(2)
ATCODE    CHAR(2)
SBCODE    CHAR(2)
DPCODE    CHAR(4)       Y
TDCODE    CHAR(2)       Y
ADDRESS   VARCHAR2(40)  Y
ZIP       VARCHAR2(6)   Y
CHIEF     VARCHAR2(10)  Y
WALLA     VARCHAR2(10)  Y
WALLADEPT VARCHAR2(20)  Y
WATEL     VARCHAR2(16)  Y
STATUS    CHAR(1)
SACODE    CHAR(6)       Y
OPDATE    DATE          Y
OPCODE    VARCHAR2(12)  Y
CPKIND    CHAR(1)                        CPKIND
RUPTFLG   CHAR(1)                        RUPTFLG
CMCPSENO  NUMBER(6)                      CMCPSENO
NOTES     VARCHAR2(400) Y                NOTES
BANK      VARCHAR2(50)  Y                开户银行
ACCOUNT   VARCHAR2(20)  Y                银行账号
NAME      VARCHAR2(50)  Y                银行账户名  }
end;

procedure Imp_sbdb_cparch(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:boolean;
begin
  if not  FileExists(filename) then  exit;
  with delQuery do
    begin
      close;
      sql.Clear ;
      sql.Add('delete from  '+tablename+'  where cpseno=:param1');
    end;
  b1:=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:=trim(str);
            line:=copy(line,j+1,length(line)-j);
            {if (pos1>0) and (pos1<2) then
              DelQuery.Params[pos1-1].AsString :=str; }
            if str<>'' then
              begin
                if fieldstr='' then
                  begin
                    fieldstr:='('+Fieldname[pos1];
                    valuestr:='('+Quotedstr(str);
                    if fieldname[pos1]='cpseno' then
                      begin
                        DelQuery.ParamByName('param1').AsString :=str;
                        b1:=true;
                      end;
                  end
                else
                  begin
                    fieldstr:=fieldstr+','+fieldname[pos1];
                    valuestr:=valuestr+','+Quotedstr(str);
                    if fieldname[pos1]='cpseno' then
                      begin
                        DelQuery.ParamByName('param1').AsString :=str;
                        b1:=true;
                      end;
                  end;
              end;
            inc(pos1);
            j:=pos(split,line);
          end;
        if  (b1) 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;

//SBDB_PSARCH在原表的基础上增加了字段
procedure Imp_SBDB_PSARCH(filename,tablename,split:string;Query,DelQuery:TQuery); overload;
var
  line,fieldstr,valuestr:widestring;
  txt:Tstrings;
  i,j,pos1:integer;
  str:string;
  fieldname:array[0..46] 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]:='HOUSEHOLD';fieldname[9]:='WKATTR';
  fieldname[10]:='IDENTITY';fieldname[11]:='PFLG';fieldname[12]:='WKDATE';fieldname[13]:='JOINDATE';fieldname[14]:='BFIDYEARS';
  fieldname[15]:='BFRPYEARS';fieldname[16]:='STATUS';fieldname[17]:='PSKIND';fieldname[18]:='NOTES';fieldname[19]:='DEPT';
  fieldname[20]:='NACODE'; fieldname[21]:='bgjfdate';fieldname[22]:='months';fieldname[23]:='psdate';fieldname[24]:='address';
  fieldname[25]:='tel'; fieldname[26]:='zip';
  {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 )');
    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<27) 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+')');
            str:=sql[0]+sql[1]+sql[2]+sql[3];
            Prepare ;
            ExecSQL ;
          end;
    end;
 DelQuery.Close ;
 Query.Close ;
 txt.Free ;
 deletefile(pchar(filename));
{PRSENO    NUMBER(13)                     PRSENO
PSSENO    NUMBER(8)                      PSSENO
CPSENO    NUMBER(6)                      CPSENO
ISCODE    VARCHAR2(18)  Y                ISCODE
AGCARDNO  CHAR(8)       Y                AGCARDNO
PSNAME    VARCHAR2(10)  Y                PSNAME
SEX       CHAR(1)                        SEX
BDATE     DATE          Y                BDATE
HOUSEHOLD CHAR(1)                        HOUSEHOLD
WKATTR    CHAR(1)                        WKATTR
IDENTITY  CHAR(1)       Y                个人身份:1企业长期和合同工(一年以上)2企业短期合同工(一年以下)3个体工商户4自由职业者5机关事业职工6机关事业职工参加企业7军转文职参加企业9其他
PFLG      CHAR(1)                        PFLG
WKDATE    DATE                           WKDATE
JOINDATE  DATE                           JOINDATE
BFIDYEARS NUMBER(4,2)                    BFIDYEARS
BFRPYEARS NUMBER(4,2)   Y                BFRPYEARS
STATUS    CHAR(1)                        STATUS
PSKIND    CHAR(1)                        PSKIND
NOTES     VARCHAR2(200) Y                NOTES
DEPT      VARCHAR2(40)  Y                所属部门
NACODE    CHAR(2)       Y                民族编码   }
end;

procedure Imp_SBDB_PSARCH(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;
  str1:=fieldnames+',';
  i:=pos(',',str1);  pos2:=0;
  while i>1 do
    begin
      fieldname[pos2]:=trim(copy(str1,1,i-1));
      inc(pos2);

⌨️ 快捷键说明

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