填报,让数据库的id自己增长

if(len(H6) != 0, H6, if(len(sql("A_A", "select MAX(id) from A_B ", 1, 1)) = 0, 1.0,
sql("A_A", "select MAX(id) + 1.0 from A_B ", 1, 1)))

这是我设置的报表填报属性公式,为什么数据库一直是1?公式写错了吗

FineReport 愤怒的老头 发布于 2020-7-13 11:11 (编辑于 2020-7-13 15:46)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
LSQ000Lv5中级互助
发布于2020-7-13 11:30(编辑于 2020-7-13 16:05)

直接修改数据库表里的id为自增长类型,然后填报属性不用对id进行填报
image.png
这一行要删除不然id一直都会是空的
image.png

image.png

最佳回答
0
luojian0323Lv7资深互助
发布于2020-7-13 11:13(编辑于 2020-7-13 11:14)

id自增长是在数据库中设置主键并勾选 自增长的.

image.png

最佳回答
0
shirokoLv6资深互助
发布于2020-7-13 11:14

你是一口气填入多条吧。全都按第一个计算的

最佳回答
0
snrtuemcLv8专家互助
发布于2020-7-13 11:14

你的判断你是H6不位空,才查询数据库,max(id)+1,不然ID一直是H6的值啊,公式是没问题的,另外不要写1.0,直接是1

最佳回答
0
吾姓独孤Lv6高级互助
发布于2020-7-13 11:16(编辑于 2020-7-13 11:24)

你公式错了,sql 四个参数就是确定的一个值,3个参数是具体的那一列


select MAX(id) + 1.0 from A_B

你在你数据库里查询下这语句,有啥结果,你加1.0啥意思有点没懂

最佳回答
0
flyingsnakeLv6资深互助
发布于2020-7-13 12:07

帆软的填报机制,造成获取max(id)是不能实时的。因为如果填报失败,会整体事务回滚。

所以,强烈不建议自己运算id值进行+1后处理。

这样的方式,遇到并发,会是灾难性的。

最佳回答
0
SYF1764811194Lv4见习互助
发布于2020-7-13 15:07

去掉ID的填报 数据库中增加ID的自动增长   这样在后台就完成了你的要求

  • 愤怒的老头 愤怒的老头(提问者) 我把id设置了自增长,为什么数据库中的id是null呢
    2020-07-13 15:28 
  • SYF1764811194 SYF1764811194 回复 愤怒的老头(提问者) 主键 你再看看属性的原因
    2020-07-13 17:28 
  • 8关注人数
  • 514浏览人数
  • 最后回答于:2020-7-13 16:05
    请选择关闭问题的原因
    确定 取消
    返回顶部