|
在很多人看来,存储过程就是依托答辩,而且由于业务流程的复杂性,往往会越写越长。我见过最长的有6000多行,没有美化过的那种。——一般来说,10个字段一行便于统计。一个字段一行的那种会被开发工程师打的,因为嵌套几个表,一屏就没了。
这么长的存储过程应该管理呢?他们有一个办法:大致把业务分成几部分,然后通过设置起止序号来确定。
比如,我的存储过程跑到第5个步骤,突然断网了(这种事情经常发生),接下来我只想从第5步开始跑,而不愿意全部重来,就可以设置起始序号为5。
又或者我发现第3和第5步有问题,只想跑这两步,其它(包括第4步)都不想跑。那么就单独把起止序号为3和5的拿出来单独跑……等等。
这是一种低耦合的思想。先把所有步骤拆解出来,然后再根据需要跑对应的步骤。
说到这个,是因为前几天版友sxgaobo发帖,说要《请教个弱智的问题》。看完后面的回复,我认为这个问题并不弱智。由此想起了之前写存储过程的日子,感慨一番,顺带做了一个实例,希望能够抛砖引玉,给大家带来一些启迪。
按惯例,代码先奉上。由于只是示例,没太大复杂的代码,这里就不解释了。
需要说明的一点是,使用这个方法时,应该先把流程捋清,有依赖关系的必须按顺序来,否则可以随便放。
例如,更新A表数据,更新B表数据,再通过A、B表关联生成C表。那么A、B步骤谁第一不重要,但更新C表必须是最后的,否则数据就乱了。
- Sub pub_Steps(Optional ByVal lngS As Long = -1, Optional ByVal lngE As Long = 100)
- If lngS <= 1 And lngE >= 1 Then
- MsgBox "执行操作1"
- End If
- If lngS <= 2 And lngE >= 2 Then
- MsgBox "执行操作2"
- End If
- If lngS <= 3 And lngE >= 3 Then
- MsgBox "执行操作3"
- End If
- End Sub
- '执行步骤1
- Private Sub cmd1_Click()
- Call pub_Steps(, 1)
- End Sub
- '执行步骤2
- Private Sub cmd2_Click()
- Call pub_Steps(2, 2)
- End Sub
- '执行步骤3
- Private Sub cmd3_Click()
- Call pub_Steps(3, 3)
- End Sub
- '执行步骤1-2
- Private Sub cmd4_Click()
- Call pub_Steps(, 2)
- End Sub
- '执行步骤1、3
- Private Sub cmd5_Click()
- Call pub_Steps(1, 1)
- Call pub_Steps(3, 3)
- End Sub
- '执行步骤1-3
- Private Sub cmd6_Click()
- Call pub_Steps
- End Sub
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|