📄 mainthread.pas
字号:
unit mainthread;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons,IniFiles,db,DBCtrls,StdCtrls, ComCtrls,DBTables, ShellCtrls;
type
tmythread=class(tthread)
private
i:integer;
protected
procedure execute;override;
public
constructor create();
end;
implementation
uses cgmain,indata;
constructor tmythread.create();
begin
inherited create(false);
end;
procedure tmythread.execute;
var
i,j,coutii:integer;
data_ip,str:string;
strmc,strdz,strhm,ccc:string;
Ti:Tinifile;
begin
Ti:= Tinifile.create(extractfilepath(paramstr(0))+'\setup.ini');
strmc:=Ti.ReadString('SYSTEM','cfmc','');
strdz:=Ti.ReadString('SYSTEM','fbmdz','');
strhm:=Ti.ReadString('SYSTEM','ftxhm','');
ccc:=Ti.ReadString('SYSTEM','center','');
data_ip:=Ti.ReadString('SYSTEM','ip','');
Ti.free;
form1.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=101807;Persist Security Info=True;User ID=sa;Initial Catalog=wfzlinfo;Data Source='+data_ip;
//form1.ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Password=101807;Persist Security Info=True;User ID=sa;Data Source=cgxt';
form1.ADOConnection1.LoginPrompt:=false;
form1.ADOConnection1.Connected:=true;
form1.ADOQuery1.Connection:=form1.ADOConnection1;
form1.StatusBar1.Panels[2].Text:='远程数据库已连接------>正在上传';
///////////////////////////////////////////////////
/////////////////////修改执法部门信息表
i:=0; coutii:=0;
while( i<form1.ComboBox1.Items.Count-1) do
begin
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select * from ZFBM_info' );
form1.ADOQuery1.SQL.Add('where ZFBMMC=:p1 and ZFBM=:p2 ');
form1.ADOQuery1.Parameters.ParamByName('p1').Value:=trim(strmc);
form1.ADOQuery1.Parameters.ParamByName('p2').Value:=trim(form1.ComboBox1.Items[i]);
form1.ADOQuery1.Open;
if form1.ADOQuery1.RecordCount=0 then
begin
form1.ADOQuery1.Edit;
form1.ADOQuery1.Append;
form1.ADOQuery1['ZFBMMC']:=strmc;
form1.ADOQuery1['ZFBM']:=form1.ComboBox1.Items[i];
form1.ADOQuery1['ZFBMDZ']:=strdz;
form1.ADOQuery1['BMTXHM']:=strhm;
form1.ADOQuery1.Post;
end;
inc(i);
end;
/////////////////////////////////////////把中心的旧数据放入日志临时表中
form1.tempquery1.RequestLive:=false;
form1.tempquery1.Close;
form1.tempquery1.SQL.Clear;
form1.tempquery1.SQL.Add('select * from "wf_zl_info" a,"cl" b');
form1.tempquery1.SQL.Add('where a.clzl=b.clbm and a.scbz='''+'N'+''' order by a.TZSHM');
form1.tempquery1.Open;
i:=form1.tempquery1.RecordCount;
form1.tempquery1.First;
j:=0;
while (j<i) do
begin
form1.ADOConnection1.BeginTrans;
try
try
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select * from wf_zl_cl_info where TZSHM=:p1 ');
form1.ADOQuery1.Parameters.ParamByName('p1').Value:=form1.tempquery1['TZSHM'];
form1.ADOQuery1.Open;
if form1.ADOQuery1.RecordCount>0 then
begin
form1.ADOQuery2.Close;
form1.ADOQuery2.SQL.Clear;
form1.ADOQuery2.SQL.Add('select count(*) as b from temp_info ');
form1.ADOQuery2.Open;
coutii:=form1.ADOQuery2['b'];
form1.ADOQuery2.Close;
form1.ADOQuery2.SQL.Clear;
form1.ADOQuery2.SQL.Add('select * from temp_info where TZSHM=:p1 ');
form1.ADOQuery2.Parameters.ParamByName('p1').Value:='0';
form1.ADOQuery2.Open;
form1.ADOQuery2.Edit;
form1.ADOQuery2.Append;
form1.ADOQuery2['ID']:=ccc+inttostr(coutii+1);
form1.ADOQuery2['TZSHM']:=form1.ADOQuery1['TZSHM'];
form1.ADOQuery2['CPHM']:=form1.ADOQuery1['CPHM'];
form1.ADOQuery2['CLLX']:=form1.ADOQuery1['CLLX'];
form1.ADOQuery2['WFSJ']:=form1.ADOQuery1['WFSJ'];
form1.ADOQuery2['WFDD']:=form1.ADOQuery1['WFDD'];
form1.ADOQuery2['WFSY']:=form1.ADOQuery1['WFSY'];
form1.ADOQuery2['ZXR']:=form1.ADOQuery1['ZXR'];
form1.ADOQuery2['ZFBM']:=form1.ADOQuery1['ZFBM'];
form1.ADOQuery2['ZCCFSJ']:=form1.ADOQuery1['ZCCFSJ'];
form1.ADOQuery2['CFJE']:=(form1.ADOQuery1['CFJE']);
form1.ADOQuery2['CFSJ']:=form1.ADOQuery1['CFSJ'];
form1.ADOQuery2['CFJDSBM']:=form1.ADOQuery1['CFJDSBM'];
form1.ADOQuery2['DSR']:=form1.ADOQuery1['DSR'];
form1.ADOQuery2['SFJE']:=(form1.ADOQuery1['SFJE']);
form1.ADOQuery2['SPR']:=form1.ADOQuery1['SPR'];
form1.ADOQuery2['CFFS']:=form1.ADOQuery1['CFFS'];
form1.ADOQuery2['CFQR']:=form1.ADOQuery1['CFQR'];
form1.ADOQuery2['ZLBC']:=form1.ADOQuery1['ZLBC'];
form1.ADOQuery2['FB']:=form1.ADOQuery1['FB']; //
form1.ADOQuery2['SFBZ']:=form1.ADOQuery1['SFBZ'];
form1.ADOQuery2['DKBZ']:=form1.ADOQuery1['DKBZ'];
form1.ADOQuery2['BZ']:=form1.ADOQuery1['BZ'] ;
form1.ADOQuery2['ZFBMMC']:=form1.ADOQuery1['ZFBMMC'];
form1.ADOQuery2.Post;
end;
form1.ADOConnection1.CommitTrans;
form1.ADOQuery1.Close;
form1.ADOQuery2.Close;
except{except}
form1.ADOConnection1.RollbackTrans;
form1.ADOQuery1.Close;
form1.ADOQuery2.Close;
end;
finally{}
form1.tempquery1.next;
inc(j);
form1.StatusBar1.Panels[1].Text:='把中心的旧数据放入日志临时表中已执行线程次数: '+inttostr(j);
end;
end;
///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//////// 更新数据
/////
form1.tempquery1.RequestLive:=false;
form1.tempquery1.Close;
form1.tempquery1.SQL.Clear;
form1.tempquery1.SQL.Add('select * from "wf_zl_info" a,"cl" b');
form1.tempquery1.SQL.Add('where a.clzl=b.clbm and a.scbz=:p2 order by TZSHM');
// form1.tempquery1.SQL.Add('where a.clzl=b.clbm and a.scbz=:p2 and a.zlbc=:p3 order by TZSHM');
form1.tempquery1.ParamByName('p2').AsString:='N';
//form1.tempquery1.ParamByName('p3').AsString:='完整';
form1.tempquery1.Open;
i:=form1.tempquery1.RecordCount;
form1.tempquery1.First;
j:=0;
while (j<i) do
begin
form1.ADOConnection1.BeginTrans;
try
try
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select * from wf_zl_cl_info where TZSHM=:p1 ');
form1.ADOQuery1.Parameters.ParamByName('p1').Value:=form1.tempquery1['TZSHM'];
form1.ADOQuery1.Open;
if form1.ADOQuery1.RecordCount=0 then
begin
{form1.StatusBar1.Panels[1].Text:=form1.tempquery1['TZSHM'];
Form1.ADOTable1.Close;
form1.ADOTable1.TableName:='WF_ZL_CL_INFO';
form1.ADOTable1.Open;}
form1.ADOQuery1.Edit;
form1.ADOQuery1.Append;
end
else
begin
form1.ADOQuery1.Edit;
end;
form1.ADOQuery1['TZSHM']:=form1.tempquery1['TZSHM'];
form1.ADOQuery1['CPHM']:=form1.tempquery1['CPHM'];
form1.ADOQuery1['CLLX']:=form1.tempquery1['CLLX'];
form1.ADOQuery1['WFSJ']:=form1.tempquery1['WFSJ'];
form1.ADOQuery1['WFDD']:=form1.tempquery1['WFDD'];
form1.ADOQuery1['WFSY']:=form1.tempquery1['WFSY'];
form1.ADOQuery1['ZXR']:=form1.tempquery1['ZXR'];
form1.ADOQuery1['ZFBM']:=form1.tempquery1['ZFBM'];
form1.ADOQuery1['ZCCFSJ']:=form1.tempquery1['ZCCFSJ'];
form1.ADOQuery1['CFJE']:=(form1.tempquery1['CFJE']);
form1.ADOQuery1['CFSJ']:=form1.tempquery1['CFSJ'];
form1.ADOQuery1['CFJDSBM']:=form1.tempquery1['CFJDSBM'];
form1.ADOQuery1['DSR']:=form1.tempquery1['DSR'];
form1.ADOQuery1['SFJE']:=(form1.tempquery1['SFJE']);
form1.ADOQuery1['SPR']:=form1.tempquery1['SPR'];
form1.ADOQuery1['CFFS']:=form1.tempquery1 ['CFFS'];
form1.ADOQuery1['CFQR']:=form1.tempquery1['CFQR'];
form1.ADOQuery1['ZLBC']:=form1.tempquery1['ZLBC'];
form1.ADOQuery1['FB']:='N'; //
form1.ADOQuery1['SFBZ']:=form1.tempquery1['SFBZ'];
form1.ADOQuery1['DKBZ']:=form1.tempquery1['DKBZ'];
form1.ADOQuery1['BZ']:=form1.tempquery1['BZ'] ;
form1.ADOQuery1['ZFBMMC']:=form1.statusbar1.Panels[0].Text ;
form1.ADOQuery1.Post;
form1.tempquery2.Close;
form1.tempquery2.SQL.Clear;
form1.tempquery2.SQL.Add('update wf_zl_info');
form1.tempquery2.SQL.Add('set scbz=:p3 ');
form1.tempquery2.SQL.Add('where TZSHM=:p1 and scbz=:p2');
form1.tempquery2.ParamByName('p1').AsString:=form1.tempquery1['TZSHM'];
form1.tempquery2.ParamByName('p2').AsString:='N';
form1.tempquery2.ParamByName('p3').AsString:='Y';
form1.tempquery2.ExecSQL;
form1.ADOConnection1.CommitTrans;
form1.ADOQuery1.Close;
except{except}
// form1.ADOTable1.close;
form1.ADOConnection1.RollbackTrans;
form1.ADOQuery1.Close;
end;
finally{}
form1.tempquery1.next;
inc(j);
// form1.StatusBar1.Panels[1].Text:=inttostr(j);
end;
{ form1.query1.Close;
form1.query1.SQL.Clear;
form1.query1.SQL.Add('select * from "wf_zl_info" a,"cl" b where a.clzl=b.clbm and scbz=:p1 order by a.TZSHM ');
form1.query1.ParamByName('p1').AsString:='N';
form1.query1.Open;
try
form1.Query1.Active:=false;
form1.Query1.Active:=true;
except
;
end; }
form1.StatusBar1.Panels[1].Text:='正在上传新数据到中心数据库已执行线程次数: '+inttostr(j);
end;
///////////////////////////////////////////////////////////////////////
//////////////////////修改 SQL数据库
//////////////////////
{form1.tempquery1.Close;
form1.tempquery1.Close;
form1.tempquery1.SQL.Clear;
form1.tempquery1.SQL.Add('select * from wf_zl_info');
form1.tempquery1.SQL.Add('where CFQR=:p2 and DKBZ=:p1 order by TZSHM');
form1.tempquery1.ParamByName('p1').AsString:='N';
form1.tempquery1.ParamByName('p2').AsString:='Y';
form1.tempquery1.Open;
i:=form1.tempquery1.RecordCount;
form1.tempquery1.First;
j:=0;
while (j<i) do
begin
form1.ADOConnection1.BeginTrans;
try
try
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select TZSHM,CFQR from wf_zl_cl_info where TZSHM=:p1 and CFQR=:p2');
form1.ADOQuery1.Parameters.ParamByName('p1').Value:=form1.tempquery1['TZSHM'];
form1.ADOQuery1.Parameters.ParamByName('p2').Value:='N';
form1.ADOQuery1.Open;
if form1.ADOQuery1.RecordCount=0 then
begin
form1.StatusBar1.Panels[1].Text:=form1.tempquery1['TZSHM'];
end
else
begin
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('select TZSHM,CFJDSBM,SFJE,CFFS,CFSJ,CFQR,SPR,DSR,ZLBC from wf_zl_cl_info');
form1.ADOQuery1.SQL.Add('where TZSHM=:p1');
form1.ADOQuery1.Parameters.ParamByName('p1').Value:=form1.tempquery1['TZSHM'];
form1.ADOQuery1.Open;
form1.ADOQuery1.Edit;
form1.ADOQuery1['CFJDSBM']:=form1.tempquery1['CFJDSBM'];
form1.ADOQuery1['CFFS']:=form1.tempquery1['CFFS'];
form1.ADOQuery1['SFJE']:=strtoint(form1.tempquery1['SFJE']);
form1.ADOQuery1['CFSJ']:=form1.tempquery1['CFSJ'];
form1.ADOQuery1['SPR']:=form1.tempquery1['SPR'];
form1.ADOQuery1['DSR']:=form1.tempquery1['DSR'];
form1.ADOQuery1['ZLBC']:=form1.tempquery1['ZLBC'];
form1.ADOQuery1['CFQR']:='Y';
form1.ADOQuery1.post;
{
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('update wf_zl_cl_info');
form1.ADOQuery1.SQL.Add(' set SFJE=:pp1 ');//, CFFS=:pp2 , CFQR=:pp3 , CFSJ=:pp4');
form1.ADOQuery1.SQL.Add('where TZSHM=:p1 and CFQR=:p2');
form1.ADOQuery1.Parameters.ParamByName('p1').Value:=form1.tempquery1['TZSHM'];
form1.ADOQuery1.Parameters.ParamByName('pp1').Value:=form1.tempquery1['SFJE'];
// form1.ADOQuery1.Parameters.ParamByName('pp2').Value:=form1.tempquery1['CFFS'];
// form1.ADOQuery1.Parameters.ParamByName('pp3').Value:='Y';
// form1.ADOQuery1.Parameters.ParamByName('pp4').Value:=form1.tempquery1['CFSJ'];
form1.ADOQuery1.Parameters.ParamByName('p2').Value:='N';
// form1.ADOQuery1.ExecSQL;
///////修改本地确认罚过且修改过SQL库
form1.tempquery2.Close;
form1.tempquery2.SQL.Clear;
form1.tempquery2.SQL.Add('update wf_zl_info');
form1.tempquery2.SQL.Add('set DKBZ=:p3 ');
form1.tempquery2.SQL.Add('where TZSHM=:p1 and DKBZ=:p2');
form1.tempquery2.ParamByName('p1').AsString:=form1.tempquery1['TZSHM'];
form1.tempquery2.ParamByName('p2').AsString:='N';
form1.tempquery2.ParamByName('p3').AsString:='Y';
form1.tempquery2.ExecSQL;
end;
form1.ADOConnection1.CommitTrans;
form1.ADOQuery1.Close;
except
form1.ADOQuery1.Close;
form1.ADOConnection1.RollbackTrans;
end;
finally
form1.tempquery1.next;
inc(j);
form1.StatusBar1.Panels[1].Text:='已执行线程次数: '+inttostr(i);
end;
end; }
form1.tempquery1.RequestLive:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -