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