查记录时发现有人同一天录了两遍加班,占了大便宜,怎么限制她相同日期和姓名只能录一遍

hpfssttx 2019-03-19 11:04:49
这是查到的结果:12日王艳贺录了两遍,太坏了,占公家便宜


我的数据表:

如题,怎么限制她?
...全文
539 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ps800 2019-11-18
  • 打赏
  • 举报
回复
这个其实是策略问题: 1、在录入时,插入数据时,执行检查。 2、如果同一姓名,有记录,则执行: 3、如果现在录入的时间点,与之前的时间点有交叉,则无法录入,提示:时间重复。
无·法 您的网络发生故障,内容加载失败! 2019-11-07
  • 打赏
  • 举报
回复
你这不应该限制她录两遍,因为人家是不同时间段的,只是这个时间段有一部分重合,要么你程序后期加工数据去重,计算出完整的时间,要么在录入的时候处理下把第二条数据的起始时间15:00修改成20:00,并且提示用户因为重合被修改了的。
段非 2019-10-29
  • 打赏
  • 举报
回复
1. 加班表应新增一个字段UniqueCode, 值为员工号+DateTime生成一个当日某员工的唯一码 2. 给该字段添加唯一索引 这样,可以粗暴解决你的问题。同个员工,同一天,只能添加一条数据,其它都为无效插入,SQL会帮你处理掉。
big_shot 2019-10-29
  • 打赏
  • 举报
回复
给你顶下,结贴给分吧
  • 打赏
  • 举报
回复
我觉得你不应该用姓名做标识,毕竟不排除一个公司有同名员工。
amuie 2019-10-27
  • 打赏
  • 举报
回复
引用 5 楼 hpfssttx 的回复:
[quote=引用 2 楼 Derekwong 的回复:]

select * FROM jb where dat = '" & dat & "' and nam = '" & nam & "'

If rs.EOF Then '如果记录不存在 则插入
rs("dat") = dat
rs("nam") = nam
.....
Else
...... '如果记录存在的动作
End If

明白了,感谢感谢![/quote]
毫无软用的,并发状态下,根本不会执行判断,这种判断只是正常情况下有用
对数据库执行悲观锁,post是加入临时token验证都可以防治这种多数据库加入
hpfssttx 2019-10-27
  • 打赏
  • 举报
回复
引用 2 楼 Derekwong 的回复:

select * FROM jb where dat = '" & dat & "' and nam = '" & nam & "'

If rs.EOF Then '如果记录不存在 则插入
rs("dat") = dat
rs("nam") = nam
.....
Else
...... '如果记录存在的动作
End If

明白了,感谢感谢!
a1602583 2019-04-28
  • 打赏
  • 举报
回复
插入前判断是否录过就行了
it971_com 2019-04-27
  • 打赏
  • 举报
回复
楼上的说法是正确的
Derekwong 2019-04-25
  • 打赏
  • 举报
回复

select *  FROM jb  where dat = '" & dat & "' and nam = '" & nam & "'

If rs.EOF Then '如果记录不存在 则插入
    rs("dat") = dat
    rs("nam") = nam
    .....
Else
   ......  '如果记录存在的动作
End If

hiphoper 2019-03-25
  • 打赏
  • 举报
回复
你到天天ASP家园求写代码吧

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧