📄 imp.~pas
字号:
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 + -