起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 182|回复: 13

【结帖】请教**

[复制链接]
发表于 2008-6-2 15:26:57 | 显示全部楼层 |阅读模式
关于数据记录主键编码的问题
主键的要求
从数据库中读取两个参数,其中一个参数是从1开始累计到多少条记录了1,2,。。。。。。。。 所以每次操作好以后要重新回写数据库
现在我把主键编码做成了一个业务参数  把主键定义成一个数据字段  在程序启动的时候自动填充这个主键编码
正常操作的情况下  编码可以正常生成
但是现在需要考虑三种特殊情况:
1 用户输入一半以后发现这个单子不需要录入了  就会关闭这个单据  那么就会产生几个废号   废掉的号是不允许的
2 如何把主键编码和系统中表的保存做到一个事件里 只有表保存了 主键才生成  否则不生成
3 在我操作过程中遇到一个情况 在录入从表记录的时候在第一条记录还没输入完成  鼠标直接点了第二行  因为要完成第一行的记录所以又用鼠标点回到第一行重新输入  接着输入第二行记录  在第二行输入好该输入第三行的时候 也就是第二行输入好post的时候  系统弹出对话框说该从表的主键编码重复  

想问问以上三个问题应该怎么解决
如果说的不清楚  请指出什么地方说的不清楚  我再说的详细点
回复

使用道具 举报

发表于 2008-6-2 15:32:19 | 显示全部楼层
1、2的问题是一个,这个编号的生成需要你在保存数据的时候一起进行就可以了。(也就是说你在录入数据的时候,给这个编码字段一个临时的值,然后最终的值是要在保存数据的时候产生真正的编号,这块儿需要你代码来做了)
3的问题,没明白。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-2 15:35:13 | 显示全部楼层
请把1,2的问题解释的具体点 “保存数据的时候”是什么时候  是不是意思说的是不用自动填充??   但是如果是保存数据的时候在输入从表记录的时候每次输入第二条记录的时候都要发生post事件  没有主键编码  怎么post???
回复 支持 反对

使用道具 举报

发表于 2008-6-2 15:40:50 | 显示全部楼层
对,不用自动填充了。
回复 支持 反对

使用道具 举报

发表于 2008-6-2 15:42:47 | 显示全部楼层
给一个临时的值,非那个编码值。比如录入的时候给1,2,3,。。。
保存的时候根据这个临时值来生成那个编码(在一个事务中)
回复 支持 反对

使用道具 举报

发表于 2008-6-2 15:43:41 | 显示全部楼层
3这个问题的话,是不是编号重复了阿?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-2 15:46:07 | 显示全部楼层
关于第三种情况
如图:
第一行输到一半的时候  由于误操作(比如点了键盘的上下键) 到了第二行   然后我要把第一行没输入的一半输入   然后就用鼠标点到第一行  重新输入好第一行的记录  接着输入第二行  等第二行全部输入好  该输入第三行的时候就是在第二行的post事件发上的时候  系统弹出消息  说主键编码重复   我不知道为什么会发生这种情况  所以问问这种情况发生的原因  以及在误操作的时候怎么能使这种情况不发生

未命名.gif

3.95 KB, 下载次数: 87

回复 支持 反对

使用道具 举报

发表于 2008-6-2 15:51:07 | 显示全部楼层
你那个编号是怎么生成的?具体在什么时候生成?(什么事件里触发)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-2 16:24:05 | 显示全部楼层
是主键自动填充的
是个业务参数  这个业务参数使用ongetvalue生成的

还想问下关于你五楼说的方法  在保存的时候给主键重新赋值
这个保存方法是什么方法??  onapplyupdates可以么??
回复 支持 反对

使用道具 举报

发表于 2008-6-2 16:28:05 | 显示全部楼层
恩,对于3的问题你再检查看看,是否编号有重复。

保存的话就要看你是用自己做的按钮还是数据导航工具栏了,如果自己的按钮来保存就比较简单,就是在这个保存按钮的事件里,如果是数据导航工具栏,那就要接管动作事件(onbeforeaction)--保存动作的时候,写具体的代码。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 01:35 , Processed in 0.045937 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表