Office中国论坛/Access中国论坛
标题:
从存储过程说起——浅谈流程步骤
[打印本页]
作者:
roych
时间:
2023-3-7 18:19
标题:
从存储过程说起——浅谈流程步骤
在很多人看来,存储过程就是依托答辩,而且由于业务流程的复杂性,往往会越写越长。我见过最长的有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
复制代码
[attach]64464[/attach]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3