SSDT-BI之四:变量

上一篇博客中提出了一个问题,文件路径写死导致了程序的不可移植,编写完成的解决方案在服务器上执行的时候无法保证文件路径一致,需要针对每一个文件连接重新选择文件路径,这种情况下,首先想到的是能不能利用相对路径,不幸的是:貌似是不行的(我没有发现可以调用的Api)。但是,通过使用变量可以曲折的解决这个问题。

新建变量

1,观察你的工作区有没有变量区域,如果没有可以通过在Package区域右键,然后选择变量菜单来调出变量工作区,如下图:

image

image

2,点击变量工作区上部的第一个按钮就可以新建一个变量,可以编辑名称,修改类型,指定值,如下图:

image

注意:作用域一栏要特别留意,确保该值为Package,否则你在某些Task上可能无法使用这一变量。但是,作用域是不可以手动修改的,请在新建变量前,确保点击一下Package,保证任何一个Task都不在选中的状态。

那么怎么借助刚才新建的变量让程序可移植呢?

请注意新建变量的名称和值,很明显它就是程序中用来存放Script的目录,确保这个目录存在于最终打包的项目目录中,只要以后所有的文件连接的文件路径都基于这个变量生成,那么最终执行的时候修改这个变量就可以保证所有的文件连接都是有效的了。

修改文件连接

1,选中要修改的文件连接,在属性区域点击Expressions右方的按钮,如下图:

image

 

2,在弹出的属性表达式编辑器第一行的属性栏选择ConnectionString, 如下图:

image

3,然后,点击第一行表达式一栏的按钮,将会弹出下图表达式生成器,把User::Folder_Script 从左上方的变量区域拖入表达式区域,并且添加我们要使用的Demo.sql, 此时点击计算表达式按钮,就会发现计算结果值区域内显示了一个脚本文件路径。如果路径有误,请修改表达式。如果无误,点击确定即可。

image

4,此时在观察Expressions下多了一个ConnectionString属性,如下图:

image

注意:如果你发现该文件连接的【直接】ConnectionString属性还不是正确的路径也没有关系,只要执行以下Package就可以了。如下图:

image

照此方法修改所有的文件连接,并且以后创建的所有文件连接都依照此方法来做就可以保证解决方案的可移植性了。

留下一个问题:这样做是保证了可移植性,但是最终部署的时候,可能服务器上没有安装开发工具,那还怎么执行方案,又怎么修改这个变量呢?好吧,下一篇博客中再说吧。

posted @ 2015-05-21 20:26  勤奋小码农  阅读(589)  评论(0编辑  收藏  举报