当我们在mssqlserver中映射网络驱动器时,会由于各种原因不能成功映射,这样从而导致基于远程映射的操作失败,从而导致整个事务失败。
为此,进行了动态映射netuse的设计:
spb_xx @device out, @ip, @directory
作用:动态映射网络驱动器,即若传入的@device映射不成功,则依次取一个盘符进行映射。
映射成功:返回0,且@device的值为映射成功的盘符
映射失败:返回-1,且@device的值为'!'
说明:@device为盘符,且为out参数,其只取H-Z段,(因C,D,E,F,G会被用于本地盘符,另外放弃对A,B的使用)。若传入 的@device在H-Z之间,则直接用@device映射,若为非H-Z段,则先置@device='M',再进行映射。
若@device映射不成功,(盘符@deviced被占用,则打印出盘符被占用信息;若未被占用,则输出PING @IP的结果),则依次取下一个盘符进行重新映射,若最终所有盘符都映射不成功,则返回-1,且置@device的值为'!'
若映射成功则返回0,且@device的值为映射成功的盘符。
程序流程图如下: