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