Foxtable(狐表)用户栏目专家坐堂 → [分享][求助]采用存储过程完成复杂编号问题!


  共有4812人关注过本帖树形打印复制链接

主题:[分享][求助]采用存储过程完成复杂编号问题!

帅哥哟,离线,有人找我吗?
jnletao
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/12/19 16:56:00 [只看该作者]

今天测试了一天,依然重号,老师们帮帮忙

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/19 16:58:00 [只看该作者]

以下是引用jnletao在2014-12-19 16:56:00的发言:
今天测试了一天,依然重号,老师们帮帮忙

 

重号是概率问题,而且是不可避免的。无法控制。


 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/12/19 16:58:00 [只看该作者]

重号的原因好像这里有关

BeforeDeleteDataRow

Dim cmd As New SQLCommand
Dim dt As Date
cmd.C
cmd.CommandText = "Select GetDate()"
dt = cmd.ExecuteScalar()
Dim dr As DataRow = e.DataRow
Dim dh As String = dr("费用单号")
Dim pf As String = dh.Split("-")(0) & "-"
Dim Key As Integer = val(dh.Split("-")(1))
Dim nm As String = e.DataTable.name
cmd.CommandText = "Insert Into 编号 (表名, 日期, 前缀, 顺序号, 已用标识) Values('" & nm & "','" & dt & "','" & pf & "'," & key & ",0)"
cmd.ExecuteNonQuery()


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/19 17:01:00 [只看该作者]

 为什么要加13楼那段代码啊?目的是什么?删除行之后,没必要这样操作啊

 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/12/19 17:02:00 [只看该作者]

编号 表  重号 截图


图片点击可在新窗口打开查看此主题相关图片如下:7qq截图777201410141704478.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/12/19 17:05:00 [只看该作者]

以下是引用有点甜在2014-12-19 17:01:00的发言:
 为什么要加13楼那段代码啊?目的是什么?删除行之后,没必要这样操作啊

三、BeforeDeleteDataRow事件代码:【删除记录时,回收编号到后台】


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/19 17:05:00 [只看该作者]

 看14楼,没必要那样做。


 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/12/19 17:11:00 [只看该作者]

以下是引用有点甜在2014-12-19 17:05:00的发言:

 看14楼,没必要那样做。

去掉就无法补号了


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/12/19 17:19:00 [只看该作者]

第一,你没有建立一张表管理你的编号,你建立的是已经使用的行,使用方法不对而且很没有必要。
第二,你光获取了最大行,但没有解决同时被保存的时候,编号肯定要重。(

所以,你虽然该成了存储过程,但是并没有领悟帮助中 网络环境下复杂编号的 关键结构和关键循环语句结构,你这样改其实跟原来没改是没有任何区别。代码性质一样。

你再好好看看,我写的代码,与你的区别。主要就是建立一张表,和循环更新编号直到成功。

编号表应当是这样的
表名   前缀          序号       格式
表名1   POCI       1           000000   

一行一个表编号管理,你那种表用来管理是用来防止断号的,而不是用来获取编号的。

[此贴子已经被作者于2014-12-19 17:40:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/12/19 17:59:00 [只看该作者]

以下是引用jspta在2014-12-19 17:19:00的发言:
第一,你没有建立一张表管理你的编号,你建立的是已经使用的行,使用方法不对而且很没有必要。
第二,你光获取了最大行,但没有解决同时被保存的时候,编号肯定要重。(

所以,你虽然该成了存储过程,但是并没有领悟帮助中 网络环境下复杂编号的 关键结构和关键循环语句结构,你这样改其实跟原来没改是没有任何区别。代码性质一样。

你再好好看看,我写的代码,与你的区别。主要就是建立一张表,和循环更新编号直到成功。

编号表应当是这样的
表名   前缀          序号       格式
表名1   POCI       1           000000   

一行一个表编号管理,你那种表用来管理是用来防止断号的,而不是用来获取编号的。

[此贴子已经被作者于2014-12-19 17:40:52编辑过]

我的设计原理中好像没有办法循环判断,因为它是顺序执行的?!


 回到顶部
总数 21 上一页 1 2 3 下一页