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

📄 uu1.pas.~2~

📁 用串口发送手机短信 需要GSM Mode设备
💻 ~2~
📖 第 1 页 / 共 5 页
字号:
  adoQury.SQL.Add('    dbo.部门表2.部门名 AS 部门名2, dbo.部门表1.部门名 AS 部门名1');
  adoQury.SQL.Add('  FROM dbo.人员表 LEFT OUTER JOIN');
  adoQury.SQL.Add('    dbo.部门表1 ON dbo.人员表.部门1 = dbo.部门表1.部门ID LEFT OUTER JOIN');
  adoQury.SQL.Add('    dbo.部门表2 ON dbo.人员表.部门2 = dbo.部门表2.部门ID LEFT OUTER JOIN');
  adoQury.SQL.Add('    dbo.部门表3 ON dbo.人员表.部门3 = dbo.部门表3.部门ID');
  adoQury.ExecSQL;
  }
  adoQury.SQL.Clear;
  adoQury.SQL.Add('CREATE Procedure wpgSomeTh');
  adoQury.SQL.Add('AS');
  adoQury.SQL.Add('  select 采区ID as iID,采区名 as sName,类别=1  from 采区表');
  adoQury.SQL.Add('  union');
  adoQury.SQL.Add('  select 工种ID,工种名,类别=2  from 工种表');
  adoQury.SQL.Add('  union');
  adoQury.SQL.Add('  select 职务ID,职务名,类别=3  from 职务表');
//  adoQury.SQL.Add('  union');
//  adoQury.SQL.Add('  select 主要工作地ID,主要工作地点,类别=4  from 主要工作地点表');
  adoQury.SQL.Add('  order by 类别,iID');
  adoQury.ExecSQL;

  adoQury.SQL.Clear;
  adoQury.SQL.Add('CREATE Procedure wpgOnWork');
  adoQury.SQL.Add('  @tCard int,@hms1 varchar(20),@hms2 varchar(20)');
  adoQury.SQL.Add('AS');
  adoQury.SQL.Add('Declare @iT1 int,@iT2 int,@iT3 int,@tT4 DateTime');
  adoQury.SQL.Add('Declare @DownUP_Old tinyint');
  adoQury.SQL.Add('Declare @rtnI1 int');
  adoQury.SQL.Add('Declare @rtnT1 DateTime,@rtnT2 DateTime');
  adoQury.SQL.Add('Declare @rtnFlag int'); //    /*0不确定的状态,128确定开始时间,64确定结束时间*/
  adoQury.SQL.Add('set @DownUP_Old=0');
  adoQury.SQL.Add('set @rtnFlag=0');       //    /*为0说明没有找到记录 
  adoQury.SQL.Add('Declare wpg Cursor for ');
  adoQury.SQL.Add('  select 卡ID,下井Time,下上井标识,接收时间 from 考勤表 ');
  adoQury.SQL.Add('  where 卡ID=@tCard and(接收时间 between @hms1 and @hms2) ');
  adoQury.SQL.Add('  order by 接收时间');
  adoQury.SQL.Add('Open wpg');
  adoQury.SQL.Add('fetch next from wpg into @iT1,@iT2,@iT3,@tT4');
  adoQury.SQL.Add('if @@Fetch_Status=0 ');
  adoQury.SQL.Add('begin');
  adoQury.SQL.Add('  set @DownUP_Old=@iT3');
  adoQury.SQL.Add('  set @rtnI1=@iT2');
  adoQury.SQL.Add('  set @rtnT1=@tT4');
  adoQury.SQL.Add('  set @rtnT2=@tT4');
  adoQury.SQL.Add('  fetch next from wpg into @iT1,@iT2,@iT3,@tT4');
  adoQury.SQL.Add('  while @@Fetch_Status=0');
  adoQury.SQL.Add('  begin');
  adoQury.SQL.Add('    if @iT3=1');
  adoQury.SQL.Add('    begin');
  adoQury.SQL.Add('      set @DownUP_Old=1');
  adoQury.SQL.Add('      set @rtnI1=@iT2');
  adoQury.SQL.Add('      set @rtnT1=@tT4');
  adoQury.SQL.Add('      set @rtnFlag=0 ');
  adoQury.SQL.Add('    end else if @iT3=3 begin');
  adoQury.SQL.Add('      if @DownUP_Old=1 begin');
  adoQury.SQL.Add('        set @rtnFlag=@rtnFlag | 128 ');//    /*确定找到了开始时间*/
  adoQury.SQL.Add('      end ');
  adoQury.SQL.Add('    end else if @iT3=4 begin');
  adoQury.SQL.Add('      set @rtnT2=@tT4');
  adoQury.SQL.Add('      if (@DownUP_Old=1)or(@DownUP_Old=3) begin');
  adoQury.SQL.Add('        set @rtnFlag=@rtnFlag | 64  ');//    /*确定找到了结束时间*/
  adoQury.SQL.Add('      end');
  adoQury.SQL.Add('      break');
  adoQury.SQL.Add('    end');
  adoQury.SQL.Add('    fetch next from wpg into @iT1,@iT2,@iT3,@tT4');
  adoQury.SQL.Add('  end');
  adoQury.SQL.Add('end');
  adoQury.SQL.Add('Close wpg');
  adoQury.SQL.Add('Deallocate wpg');
  adoQury.SQL.Add('select @rtnI1 as iTime,@rtnT1 as tTim1,@rtnT2 as tTim2, @rtnFlag as 标识');
  adoQury.ExecSQL;

  adoQury.SQL.Clear;
  adoQury.SQL.Add('CREATE Procedure wpgDownUP');
  adoQury.SQL.Add('  @tCard int,@hms1 DateTime,@hms2 DateTime');
  adoQury.SQL.Add('AS');
  adoQury.SQL.Add('  select 卡ID,下井Time,上井Time,下上井标识,接收时间 from 考勤表 ');
  adoQury.SQL.Add('  where 卡ID=@tCard and(接收时间 between @hms1 and @hms2) ');
  adoQury.SQL.Add('  order by 接收时间');
  adoQury.ExecSQL;

  //从历史卡表中统计一个员工在一段时间内(结合参考时间)最合适一次下井
  adoQury.SQL.Clear;
  adoQury.SQL.Add('CREATE Procedure wpgOnDuty ');
  adoQury.SQL.Add('  @tCard int,@hms1 DateTime,@hms2 DateTime,@CZs DateTime, @iFlag int ');
  adoQury.SQL.Add('AS ');

  adoQury.SQL.Add('Declare @iRows int ');//         /*记录行数*/
  adoQury.SQL.Add('Declare @iT1 int,@iT2 int,@tT3 DateTime ');
  adoQury.SQL.Add('Declare @DownUP_Old tinyint ');
  adoQury.SQL.Add('Declare @rtnT1 DateTime,@rtnT2 DateTime,   @rtnT1_ DateTime,@rtnT2_ DateTime ');
  adoQury.SQL.Add('Declare @rtnFlag int,   @rtnFlag_ int ');// /*0不确定的状态,128确定开始时间,64确定结束时间*/
  adoQury.SQL.Add('Declare @iMonth tinyint ');
  adoQury.SQL.Add('Declare @iDifMin int,@iDifMin_ int ');
  adoQury.SQL.Add('Declare @oldT DateTime ');

  adoQury.SQL.Add('set @iMonth=DATEPART(month, @hms1) ');//  /*确定查访哪月的数据*/
  adoQury.SQL.Add('if Cast(DATEPART(day, @hms1) AS tinyint)<>1 begin ');
  adoQury.SQL.Add('  set @iFlag=0 ');//       /*当开始日期不是1号时,强制仅查当前表*/
  adoQury.SQL.Add('end ');
  adoQury.SQL.Add('set @oldT=dbo.preTime(@hms1) ');

  adoQury.SQL.Add('if @iMonth=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表01 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('end else if @iMonth=2 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表01 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表02 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表02 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=3 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表02 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表03 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表03 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=4 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表03 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表04 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表04 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=5 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表04 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表05 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表05 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=6 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表05 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表06 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表06 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=7 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表06 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表07 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表07 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=8 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表07 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表08 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表08 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=9 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表08 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表09 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表09 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=10 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表09 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表10 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表10 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=11 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表10 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表11 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表11 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end else if @iMonth=12 begin ');
  adoQury.SQL.Add('  if @iFlag=1 begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表11 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @oldT and @hms2) ');
  adoQury.SQL.Add('      union ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表12 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end else begin ');
  adoQury.SQL.Add('    Declare wpg Cursor for ');
  adoQury.SQL.Add('      select 卡ID,iDU,tT from _历史卡数据表12 where 卡ID=@tCard and(iDU=1 or iDU=4) and(tT between @hms1 and @hms2) ');
  adoQury.SQL.Add('      order by tT ');
  adoQury.SQL.Add('  end ');
  adoQury.SQL.Add('end ');

  adoQury.SQL.Add('set @DownUP_Old=0 ');
  adoQury.SQL.Add('set @rtnFlag_=0 ');//            /*为0说明没有找到记录*/
  adoQury.SQL.Add('set @rtnT1_=''1981-10-03'' ');
  adoQury.SQL.Add('set @rtnT2_=''1981-10-03'' ');
  adoQury.SQL.Add('set @rtnFlag=0 ');//             /*为0说明没有找到记录*/
  adoQury.SQL.Add('set @rtnT1=''1981-10-03'' ');
  adoQury.SQL.Add('set @rtnT2=''1981-10-03'' ');
  adoQury.SQL.Add('set @iDifMin =2880 ');//         /*初始化为相差两天,实际相差小于4小时(240)才有效*/
  adoQury.SQL.Add('set @iDifMin_=2880 ');
  adoQury.SQL.Add('Open wpg ');
  adoQury.SQL.Add('fetch next from wpg into @iT1,@iT2,@tT3 ');
  adoQury.SQL.Add('  set @iRows=0 ');
  adoQury.SQL.Add('  while @@Fetch_Status=0 ');
  adoQury.SQL.Add('  begin ');
  adoQury.SQL.Add('    set @iRows=@iRows+1 ');
  adoQury.SQL.Add('    if @iT2=1 ');
  adoQury.SQL.Add('    begin ');
  adoQury.SQL.Add('      set @DownUP_Old=1 ');
  adoQury.SQL.Add('      set @rtnT1=@tT3 ');
  adoQury.SQL.Add('      set @rtnFlag=0 ');
  adoQury.SQL.Add('    end else if @iT2=4 begin ');
  adoQury.SQL.Add('      if @iRows>1 begin ');//   /*防止因宽时间段差异直接查出上次的出井*/
  adoQury.SQL.Add('      	set @rtnT2=@tT3 ');
  adoQury.SQL.Add('      	if (@DownUP_Old=1) begin ');
  adoQury.SQL.Add('          set @rtnFlag=@rtnFlag | 192 ');//  

⌨️ 快捷键说明

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