自动产生自编号 是这样的:假如这个人的编号是7201018,我在新增下一条记录的时候就应该是7201019或者随机产生一个也可以,请教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select Max(card_no) + 1 as card_nofrom tbl_Staff 或是在txt文件中保存编号:每次操作来读取这个文件,并修改它。 http://www.somade.com/是个很专业的技术社区,去那里找找吧,或许有你要的答案~ 这个问题我觉得 yuanscar(塑料树) ( ) 的也不对。存在如下的问题:用户点击增加按钮的时候产生一个番号,并把表+1了,但是并没有保存,结果下次再做得时候这个号就没了,产生了断号。我的解决的方法是写两个函数,一个是getvalue,一个是setvalue,读的时候得到,而且再setvalue的时候还必须放在一个事务里面完成,这样才不会断号 我遇到了同样的问题,没有太好的解决办法,有时出现了断号,abcde52511(木心)的方法很好,不过,能告诉你的函数是怎么写的吗? 多用户环境下要不断号并没有什么特别的好办法, 那是以牺牲性能来达到的, 就是将所有用户的数据库操作请求全部串行执行,而且必须等第一个用户完全更新完毕后才能执行下一个用户的请求, 否则很难达到要求. 即使各个大型数据库(比如sql server)的自增字段也不能做到不断号. 只要你不要连续的,随机产生一个就可以!如:专门建一表保存最大号! 在每次FORMCREATE时都产生的号(在原来的上面+1),并替换到表里,那么每次就是多人操作时,FORMCREATE的时间不一样,好就不会重复,唯一的问题是在你人员编号的数据表里7201018过后可能不是7201019,可能7201021或是7201023 怎么这么麻烦。如果是oracle的话直接建立个序列就成了,其他数据库也可以模仿这种方案写个存储过程啊 SQL和oracle数据库里 可以加个序列 单号就用这个序列号就可以了 如果不要什么规律的话,可以用随机函数rand()产生一个数就可以了,不过,要初始,以便产生不一样的数. 多用户的情况按照 holylts(不要相信)那么做要等死了,这不是误人子弟吗 select top 1 * from table order by id desc wtg476(起飞) ,你说的答案好像在一早就已经被否决了,原因不就是多用户情况下不能控制吗?这个问题其实已经很明显了,程序控制的时候总会出现问题。如果既不产生冲突,又没有断号的问题,就只能用数据库来控制,不管是自动编号,还是触发器,还是存储过程都可以。其实推荐用触发器来控制,这样不会对原来的程序有特别大的影响,而且没有特别大的副作用。 我觉得自增字段应该在DATABASE服务器一端做,你的应用中没有必要管这个编号. 80 求EHLib 2.2 组件包 问一个很弱的问题,请问用什么工具生成 .dat 文件啊???? 如何在程序运行过程中添加背景音乐? 怎么取得特定的字母? 有谁知道在武汉做DELPHI开发多少钱啊??? 关于显示图片image控件 新手问下自制控件中的窗体怎么搞? 用delphi+access2000可以用BDE吗? 简单SQL,免费送分! 这里应该有人用过《开天辟地》吧?我好想知道里的的背景音乐是什么名字?或哪里有下 Delphi 2005技术交流区:QQ群号:13400155 问个“可变参数”的问题
from tbl_Staff
用户点击增加按钮的时候产生一个番号,并把表+1了,但是并没有保存,结果下次再做得时候这个号就没了,产生了断号。我的解决的方法是写两个函数,一个是getvalue,一个是setvalue,读的时候得到,而且再setvalue的时候还必须放在一个事务里面完成,这样才不会断号
只要你不要连续的,随机产生一个就可以!
如:专门建一表保存最大号! 在每次FORMCREATE时都产生的号(在原来的上面+1),并替换到表里,那么每次就是多人操作时,FORMCREATE的时间不一样,好就不会重复,唯一的问题是在你人员编号的数据表里7201018过后可能不是7201019,可能7201021或是7201023
这个问题其实已经很明显了,程序控制的时候总会出现问题。如果既不产生冲突,又没有断号的问题,就只能用数据库来控制,不管是自动编号,还是触发器,还是存储过程都可以。
其实推荐用触发器来控制,这样不会对原来的程序有特别大的影响,而且没有特别大的副作用。