完整项目实例.docx

上传人:牧羊曲112 文档编号:3433398 上传时间:2023-03-13 格式:DOCX 页数:40 大小:46.49KB
返回 下载 相关 举报
完整项目实例.docx_第1页
第1页 / 共40页
完整项目实例.docx_第2页
第2页 / 共40页
完整项目实例.docx_第3页
第3页 / 共40页
完整项目实例.docx_第4页
第4页 / 共40页
完整项目实例.docx_第5页
第5页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《完整项目实例.docx》由会员分享,可在线阅读,更多相关《完整项目实例.docx(40页珍藏版)》请在三一办公上搜索。

1、完整项目实例第25章 完整项目实例 作业collectData的代码如下所示: declare datebuffer datetime -存时间临时变量 declare cur_emp cursor 游标 /将表fcTable中Cdate列中的最大值赋给游标变量cur_emp set cur_emp = Cursor local for select max(CDate) from fcTable /打开游标 open cur_emp /将游标中的值取出赋予给变量datebuffer fetch next from cur_emp into datebuffer /将按条件检索出的值插入到表f

2、cTable(表fcTable在bussiness服务器中) insert into fcTable select * from bussiness.hrdb.dbo.fctable where CDatedatebuffer insert into fcTable select * from nssmlib.hrdb.dbo.fctable where CDatedatebuffer insert into fcTable select * from nssmoffice.hrdb.dbo.fctable where CDatedatebuffer close cur_emp dealloc

3、ate cur_emp GO query.jsp代码如下: 查询结果 姓 名: 员工号:               部门: 日期 一号卡机记录 二号卡机记录 三号卡机记录 % Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance; Connection con=java.sql.DriverManager.getConnection(jdbc:microsoft:sqlser

4、ver:/127.0.0.1:1455;DatabaseName=HrDB,bn,bn); Statement stmt=con.createStatement; /获取输入框的值 String strStaffNum=request.getParameter(staffNum); String strBeginYear=request.getParameter(beginyear); String strBeginMonth=request.getParameter(beginmonth); String strBeginDay=request.getParameter(beginday);

5、 String strEndYear=request.getParameter(endyear); String strEndMonth=request.getParameter(endmonth); String strEndDay=request.getParameter(endday); String strStartDate=strBeginYear+strBeginMonth+strBeginDay; String strEndDate=strEndYear+strEndMonth+strEndDay; /调用存储过程sp_Refurbish String strSql1= call

6、 sp_Refurbish ; CallableStatement sqlStmt1 =con.prepareCall(strSql1); sqlStmt1.execute; sqlStmt1.close; /调用存储过程staffNo String strSql = call staffNo(?,?,?); CallableStatement sqlStmt = con.prepareCall(strSql); /向存储过程传递变量 sqlStmt.setString(1, strStartDate); sqlStmt.setString(2, strEndDate); sqlStmt.se

7、tString(3, strStaffNum); sqlStmt.execute; sqlStmt.close; /结果集 ResultSet rst=stmt.executeQuery(select distinct(dkDate) from dkDate order by dkDate); /按要求输出结果集的内容 while(rst.next) String strDate=rst.getString(1); out.println(); out.println(+strDate+); out.println( ); Statement stmt0=con.createStatement

8、; ResultSet rst0= stmt0.executeQuery(select firstCardRecord from staffNoQueryTemp1 where dkDate=+strDate+); while(rst0.next) out.println(); out.println(+rst0.getString(1)+); out.println(); stmt0.close; rst0.close; out.println( ); out.println( ); Statement stmt2=con.createStatement; ResultSet rst2= s

9、tmt2.executeQuery(select secondCardRecord from staffNoQueryTemp2 where dkDate=+rst.getString(1)+); while(rst2.next) out.println(); out.println(+rst2.getString(1)+); out.println(); stmt2.close; rst2.close; out.println( ); out.println( ); Statement stmt3=con.createStatement; ResultSet rst3= stmt3.exec

10、uteQuery(select thirdCardRecord from staffNoQueryTemp3 where dkDate=+rst.getString(1)+); while(rst3.next) out.println(); out.println(+rst3.getString(1)+); out.println(); stmt3.close; rst3.close; out.println(); out.println(); /关闭连接、释放资源 rst.close; stmt.close; con.close; % sp_Refurbish的代码如下: CREATE PR

11、OCEDURE sp_Refurbish AS declare datebuffer datetime -存时间临时变量 declare cur_emp cursor 游标 /将表fcTable中Cdate列中的最大值赋给游标变量cur_emp set cur_emp = Cursor local for select max(CDate) from fcTable /打开游标 open cur_emp /将游标中的值取出赋予给临时变量datebuffer fetch next from cur_emp into datebuffer insert into fcTable select *

12、from bussiness.hrdb.dbo.fctable where CDatedatebuffer insert into fcTable select * from nssmlib.hrdb.dbo.fctable where CDatedatebuffer insert into fcTable select * from nssmoffice.hrdb.dbo.fctable where CDatedatebuffer close cur_emp deallocate cur_emp GO staffNo的代码如下: CREATE PROCEDURE staffNo strbeg

13、inDate varchar(8), strendDate varchar(8), SelNo varchar(80) AS declare beginDate datetime declare endDate datetime declare datebuffer datetime -存时间临时变量 declare staffno char(10) -员工号 declare staff varchar(80) -员工 declare dkdate datetime -查出的打卡时间 declare kqlName char(20) declare cur_emp cursor /清空表sta

14、ffNoQueryTemp1、staffNoQueryTemp2、staffNoQueryTemp3、dkDate DELETE FROM staffNoQueryTemp1 DELETE FROM staffNoQueryTemp2 DELETE FROM staffNoQueryTemp3 DELETE FROM dkDate /将参数的值转换成datetime类型后赋给一个变量 select beginDate = Convert(datetime,strbeginDate) select endDate = Convert(datetime,strendDate) select dat

15、ebuffer = beginDate /循环 while datebuffer=endDate begin set cur_emp = Cursor local for select CDate, KqlName from V_Fcard where StaffNo=selNo and datepart(yy,CDate)=datepart(yy,datebuffer) and datepart(mm,CDate)=datepart(mm,datebuffer) and datepart(dd,CDate)=datepart(dd,datebuffer) order by CDate ope

16、n cur_emp Fetch NEXT From cur_emp into dkdate,kqlName /当游标还没到最后 while(fetch_status=0) begin insert into dkDate values(Convert(char(10),datebuffer,120) if(kqlName=1号机) begin insert into staffNoQueryTemp1 values(Convert(char(10),datebuffer,120), Convert(char(20),dkdate,108) end else if (kqlName=2号机) b

17、egin insert into staffNoQueryTemp2 values(Convert(char(10),datebuffer,120), Convert(char(20),dkdate,108) end else begin insert into staffNoQueryTemp3 values(Convert(char(10),datebuffer,120), Convert(char(20),dkdate,108) end Fetch NEXT From cur_emp into dkdate,kqlName end select datebuffer = dateAdd(

18、day,1,datebuffer) end /释放游标资源 close cur_emp deallocate cur_emp GO allStaffQuery.jsp代码如下: 查询全部员工考勤记录 员工号 员工名 日期 一号卡机记录 二号卡机记录 三号卡机记录 % /请参考上面注释 Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance; Connection con=java.sql.DriverManager.getConnection(jdbc:microsoft:sqlserver:/127.0.

19、0.1:1455;DatabaseName=HrDB,bn,bn); Statement stmt=con.createStatement; String strBeginYear=request.getParameter(beginyear); String strBeginMonth=request.getParameter(beginmonth); String strBeginDay=request.getParameter(beginday); String strEndYear=request.getParameter(endyear); String strEndMonth=re

20、quest.getParameter(endmonth); String strEndDay=request.getParameter(endday); String strStartDate=strBeginYear+strBeginMonth+strBeginDay; String strEndDate=strEndYear+strEndMonth+strEndDay; String strSql1= call sp_Refurbish ; CallableStatement sqlStmt1 =con.prepareCall(strSql1); sqlStmt1.execute; sql

21、Stmt1.close; String strSql = call science_allStaffQuery(?,?); CallableStatement sqlStmt = con.prepareCall(strSql); sqlStmt.setString(1, strStartDate); sqlStmt.setString(2, strEndDate); sqlStmt.execute; sqlStmt.close; ResultSet rst=stmt.executeQuery(select distinct(staffNo),staff,CDate from scienceSt

22、affNo order by staffNo,CDate); while(rst.next) String strNo=rst.getString(1); String strStaff=rst.getString(2); String strDate=rst.getString(3); out.println(); out.println(+strNo+); out.println(+strStaff+); out.println(+strDate+); out.println( ); Statement stmt0=con.createStatement; ResultSet rst0=

23、stmt0.executeQuery(select firstCardRecord from scienceDeptQueryTemp1 where dkDate=+strDate+ and staffNo=+strNo+ ); while(rst0.next) out.println(); out.println(+rst0.getString(1)+); out.println(); stmt0.close; rst0.close; out.println( ); out.println( ); Statement stmt2=con.createStatement; ResultSet

24、rst2= stmt2.executeQuery(select secondCardRecord from scienceDeptQueryTemp2 where dkDate=+strDate+and staffNo=+strNo+ ); while(rst2.next) out.println(); out.println(+rst2.getString(1)+); out.println(); stmt2.close; rst2.close; out.println( ); out.println( ); Statement stmt3=con.createStatement; Resu

25、ltSet rst3= stmt3.executeQuery(select thirdCardRecord from scienceDeptQueryTemp3 where dkDate=+strDate+and staffNo=+strNo+ ); while(rst3.next) out.println(); out.println(+rst3.getString(1)+); out.println(); stmt3.close; rst3.close; out.println(); out.println(); out.println(); /关闭连接、释放资源 rst.close; s

26、tmt.close; con.close; % science_allStaffQuery代码如下: CREATE PROCEDURE science_allStaffQuery strbeginDate varchar(8), strendDate varchar(8) as declare beginDate datetime declare endDate datetime declare datebuffer datetime -存时间临时变量 declare staffno char(10) -员工号 declare staff varchar(80) -员工 declare dkd

27、ate datetime -查出的打卡时间 declare kqlName char(20) declare cur_emp cursor declare cur_dept cursor /请参考上面相关注释 DELETE FROM scienceDeptQueryTemp1 DELETE FROM scienceDeptQueryTemp2 DELETE FROM scienceDeptQueryTemp3 DELETE FROM dkDate DELETE FROM scienceStaffNo select beginDate = Convert(datetime,strbeginDat

28、e) select endDate = Convert(datetime,strendDate) select datebuffer = beginDate while datebuffer=endDate begin set cur_dept = Cursor global scroll dynamic for select StaffNo ,Staff ,CDate,KqlName from V_scienceQuery where datepart(yy,datebuffer)=datepart(yy,CDate) and datepart(mm,datebuffer)=datepart(mm,CDate) and datepart(dd,datebuffer)=datepart(dd,CDate) order by StaffNo open cur_dept Fetch NEXT From cur_dept into staffno,staff,dkdate,kqlName while Fetch_status=0 begin insert into scienceStaffNo values(staffno,staff,Convert(char(20),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号