自定义插入提交按钮新增数据后,插入提交按钮参数怎么获取到当前记录的ID号

本帖最后由 zxcjk2000 于 2017-4-21 10:37 编辑

我要通过下面FR填报报表模板(客户端)的“插入提交”按钮来实现新增记录至数据库的T1表内,每新增一条记录,数据库端就对当前新增记录自动生成一个唯一ID号,请问我每次向数据库新增记录时,模板端的参数p怎么才能获取到T1表内当前用户当前提交记录的ID号(T1表同一时间有可能会有个用户同时新增记录),此ID号要求要在“插入提交”按钮点击后一次性完成参数p获取到当前本人新增当前记录的ID号。
比如:通过触发器insert后或通过回调函数或select方式来获取到当前新增的ID号,或大神们给指点好的解决方法,望指点!有案例或参考文档给予分享最好,多谢大神指教!
如下图:

FineReportzxcjk2000 发布于 2017-4-21 10:33
回答问题
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
austin1122发布于2017-4-21 10:39(编辑于 2023-9-6 09:34)
555
最佳回答
0
yutingxtz发布于2017-4-21 11:39(编辑于 2023-9-6 09:34)
555
最佳回答
0
zxcjk2000发布于2017-4-21 13:37(编辑于 2023-9-6 09:34)
555
  • yutingxtz yutingxtz
    如果有并发,ID又要连续自增,那基本上只有一个办法可以实现(曾使用过的一个方案):

    1. 建一个ID的备选表,顺序自增;
    2. 需要获取ID时,就读这个表,选择没有被标记的ID最小的那个;
    3. 获取到后,打上标记,告诉别人已经有人用了;
    4. 如果最后没有提交,这个标记也不更改,ID不再被释放,回到可用状态;

    这个获取,可以在打开填报报表的页面就执行,也可以在提交的时候才判断并执行——都可以,而且这种方法基本上不会重复(未测试过,理论上因为标记的过程耗时很短,写数据库的过程也有加锁的过程,所以应该不会有重复)

    这个方法解决了单纯“用max() 判断现有数据表id值后加1”的方法的不足——易产生重号;

    回复
    2017-04-21 14:29 
最佳回答
0
zxcjk2000发布于2017-4-21 13:39(编辑于 2023-9-6 09:34)
555
最佳回答
0
zxcjk2000发布于2017-4-21 13:54(编辑于 2023-9-6 09:34)
555
最佳回答
0
yutingxtz发布于2017-4-21 14:29(编辑于 2023-9-6 09:34)
555
最佳回答
0
zxcjk2000发布于2017-4-21 17:07(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 852浏览人数
  • 最后回答于:2017-12-18 17:35
    活动推荐 更多
    热门课程 更多
    返回顶部