<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Darren Gosbell [MVP] - Random Procrastination</title>
        <link>http://geekswithblogs.net/darrengosbell/Default.aspx</link>
        <description>Business Intelligence, SQL Server, .Net, Powershell and MDX Madness</description>
        <language>en-AU</language>
        <copyright>Darren Gosbell</copyright>
        <managingEditor>dgosbell@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Darren Gosbell [MVP] - Random Procrastination</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/darrengosbell/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/darrengosbell" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <title>Gemini/PowerPivot MOSSIG Presentation</title>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/fiSX_eqyG4U/geminipowerpivot-mossig-presentation.aspx</link>
            <description>&lt;p&gt;I did a presentation earlier this month on &lt;a href="http://www.powerpivot.com"&gt;PowerPivot&lt;/a&gt; (a.k.a Project Gemini) at the &lt;a href="http://www.sharepointusers.org.au/MOSSIG/default.aspx"&gt;MOSSIG&lt;/a&gt; meeting and as promised here is the slide deck. If you've seen other "Gemini" presentations there will be nothing new in this presentation, I've really only posted it here so that those who attended the meeting can refer to it.&lt;/p&gt;  &lt;p&gt;You can download the "short" (1Mb) version with just the content slides:&lt;/p&gt; &lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-98546e1b65a78a74.skydrive.live.com/embedicon.aspx/Public/Presentations/2009-10%20PowerPivot/Project%20Gemini%20-%20MOSSIG%20Oct%202009%20^5short^6.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Or you can get the full (8.3Mb) slide deck including the "fairy tale" images from the link below:&lt;/p&gt; &lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-98546e1b65a78a74.skydrive.live.com/embedicon.aspx/Public/Presentations/2009-10%20PowerPivot/Project%20Gemini%20-%20MOSSIG%20Oct%202009.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135987"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135987" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/135987.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=fiSX_eqyG4U:3Ti1korxlVY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=fiSX_eqyG4U:3Ti1korxlVY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=fiSX_eqyG4U:3Ti1korxlVY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=fiSX_eqyG4U:3Ti1korxlVY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=fiSX_eqyG4U:3Ti1korxlVY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=fiSX_eqyG4U:3Ti1korxlVY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=fiSX_eqyG4U:3Ti1korxlVY:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/fiSX_eqyG4U" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/11/04/geminipowerpivot-mossig-presentation.aspx</guid>
            <pubDate>Wed, 04 Nov 2009 07:58:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/135987.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/11/04/geminipowerpivot-mossig-presentation.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/135987.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/135987.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/11/04/geminipowerpivot-mossig-presentation.aspx</feedburner:origLink></item>
        <item>
            <title>Good-bye OLAP Report &amp;ndash; Hello The BI Verdict</title>
            <category>General</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/vpZXBwXQabI/good-bye-olap-report-ndash-hello-the-bi-verdict.aspx</link>
            <description>&lt;p&gt;I just got an email telling me about &lt;a href="http://www.bi-verdict.com/topnavigation/press/launch-pr"&gt;this press announcement&lt;/a&gt; in relation to the OLAP report becoming the BI Verdict (&lt;a href="http://www.bi-verdict.com"&gt;www.bi-verdict.com&lt;/a&gt;). I wonder if this is reflection of the fact that "OLAP" is a technology and "BI" is about more than a single technology…&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135964"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135964" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/135964.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=vpZXBwXQabI:NO5rKZqQpRk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=vpZXBwXQabI:NO5rKZqQpRk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=vpZXBwXQabI:NO5rKZqQpRk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=vpZXBwXQabI:NO5rKZqQpRk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=vpZXBwXQabI:NO5rKZqQpRk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=vpZXBwXQabI:NO5rKZqQpRk:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=vpZXBwXQabI:NO5rKZqQpRk:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/vpZXBwXQabI" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/11/03/good-bye-olap-report-ndash-hello-the-bi-verdict.aspx</guid>
            <pubDate>Tue, 03 Nov 2009 07:48:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/135964.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/11/03/good-bye-olap-report-ndash-hello-the-bi-verdict.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/135964.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/135964.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/11/03/good-bye-olap-report-ndash-hello-the-bi-verdict.aspx</feedburner:origLink></item>
        <item>
            <title>Which Edition is my Analysis Services Server?</title>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/LGYhsI2RYYA/which-edition-is-my-analysis-services-server.aspx</link>
            <description>&lt;p&gt;There was &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/c359ca93-070b-4e69-b7ae-549186d5d80e"&gt;a question the other day&lt;/a&gt; on the MSDN SSAS forum asking how to find out the Edition of SSAS which is running on a given server. The answer to this question could be either Standard, Enterprise or Developer. The Object Explorer in Management Studio displays the current version next to the server name, but not the Edition. &lt;/p&gt;  &lt;p&gt;Now at a basic level I know that this is stored as a property of the server, so you could run a DISCOVER_XML_METADATA command like the following.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Discover&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;xmlns&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;urn:schemas-microsoft-com:xml-analysis&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequestType&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;DISCOVER_XML_METADATA&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequestType&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Restrictions&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RestrictionList&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ObjectExpansion&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;ObjectProperties&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ObjectExpansion&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RestrictionList&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Restrictions&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Properties&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;PropertyList&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;PropertyList&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Properties&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Discover&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Which returns not just the Edition, but a lot of other interesting information.&lt;/p&gt;

&lt;p&gt; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/WhichEditionismyAnalysisServicesServer_72CF/image_b1e5a441-6a8c-43d2-b3fa-5116f0f5eb8c.png" width="582" height="240" /&gt; &lt;/p&gt;

&lt;p&gt;Of course not everyone likes reading XML, so another approach would be to run a short powershell script, either using AMO directly…&lt;/p&gt;

&lt;pre class="code"&gt;  [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") &amp;gt; $null&lt;br /&gt;  $svr = new-object([Microsoft.AnalysisServices.Server])&lt;br /&gt;  $svr.Connect("localhost")&lt;br /&gt;  $svr.Edition&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or using the &lt;a href="http://powerssas.codeplex.com/"&gt;powerSSAS&lt;/a&gt; snapin (to do the same thing with a lot less typing).&lt;/p&gt;

&lt;pre class="code"&gt;  add-pssnapin powerSSAS&lt;br /&gt;  $svr = get-ASServer localhost&lt;br /&gt;  $svr.Edition &lt;/pre&gt;

&lt;pre class="code"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/pre&gt;

&lt;p&gt;Or if you really want to be really boring you could right click on your server from the Object Explorer in Management Studio, choose Reports – Standard Reports – General, but that would be way too simple. :)&lt;/p&gt;

&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/WhichEditionismyAnalysisServicesServer_72CF/image_205a3da2-8728-4aca-91bc-36be22bd2f11.png" width="582" height="440" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135457"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135457" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/135457.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=LGYhsI2RYYA:9Z886UOyie0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=LGYhsI2RYYA:9Z886UOyie0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=LGYhsI2RYYA:9Z886UOyie0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=LGYhsI2RYYA:9Z886UOyie0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=LGYhsI2RYYA:9Z886UOyie0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=LGYhsI2RYYA:9Z886UOyie0:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=LGYhsI2RYYA:9Z886UOyie0:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/LGYhsI2RYYA" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/10/14/which-edition-is-my-analysis-services-server.aspx</guid>
            <pubDate>Wed, 14 Oct 2009 10:20:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/135457.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/10/14/which-edition-is-my-analysis-services-server.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/135457.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/135457.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/10/14/which-edition-is-my-analysis-services-server.aspx</feedburner:origLink></item>
        <item>
            <title>SQL Downunder 2009 Presentation: SSAS Metadata &amp;ndash; Knowledge is Power</title>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/aAc3LO8-SbU/sql-downunder-2009-presentation-ssas-metadata-ndash-knowledge-is-power.aspx</link>
            <description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 5px 10px 5px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/SQLDownunder2009PresentationSSASMetadata_D6FE/image_07abaa9c-a77f-43ff-9242-149d27705366.png" width="361" height="271" /&gt; I just finished my talk at the 2009 &lt;a href="http://www.sqldownunder.com/SDUCodeCamp/tabid/100/Default.aspx"&gt;SQL Downunder Code Camp&lt;/a&gt; on Analysis Services data. As promised, attached below are the scripts and Powerpoint slides that I used in the presentation. There is not that much information in the slides, they were really just introduction and conclusion - all of the content is in the scripts. And the scripts probably only make sense if you at the session.&lt;/p&gt;  &lt;p&gt;In addition to the scripts, below are the links to all of the free tools that I was using:&lt;/p&gt;  &lt;p&gt;•MDX Studio &lt;a href="http://ssas-info.com/forum/mdxstudio"&gt;http://ssas-info.com/forum/mdxstudio&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;•ASSP &lt;a href="http://asstoredprocedures.codeplex.com"&gt;http://asstoredprocedures.codeplex.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;•PowerSSAS &lt;a href="http://powerSSAS.codeplex.com"&gt;http://powerSSAS.codeplex.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And the topic of BIDS Helper has come up a number of times over the weekend, so I’ve included &lt;a href="http://bidshelper.codeplex.com/"&gt;a link&lt;/a&gt; to that too.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-98546e1b65a78a74.skydrive.live.com/embedicon.aspx/Public/Presentations/2009-10%20SSAS%20Metadata%20-%20Knowledge%20is%20Power/SSAS%20Metadata%20upload.ppt" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;      &lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-98546e1b65a78a74.skydrive.live.com/embedicon.aspx/Public/Presentations/2009-10%20SSAS%20Metadata%20-%20Knowledge%20is%20Power/SSAS^_Metadata^_Knowledge^_is^_Power^_scripts.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135397"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135397" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/135397.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=aAc3LO8-SbU:hDDCSeqN97o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=aAc3LO8-SbU:hDDCSeqN97o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=aAc3LO8-SbU:hDDCSeqN97o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=aAc3LO8-SbU:hDDCSeqN97o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=aAc3LO8-SbU:hDDCSeqN97o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=aAc3LO8-SbU:hDDCSeqN97o:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=aAc3LO8-SbU:hDDCSeqN97o:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/aAc3LO8-SbU" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/10/11/sql-downunder-2009-presentation-ssas-metadata-ndash-knowledge-is-power.aspx</guid>
            <pubDate>Sun, 11 Oct 2009 04:18:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/135397.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/10/11/sql-downunder-2009-presentation-ssas-metadata-ndash-knowledge-is-power.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/135397.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/135397.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/10/11/sql-downunder-2009-presentation-ssas-metadata-ndash-knowledge-is-power.aspx</feedburner:origLink></item>
        <item>
            <title>Book Review - Analysis Services 2008 Unleashed</title>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/iiW9O9K4dxI/book-review---analysis-services-2008-unleashed.aspx</link>
            <description>&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.amazon.com/Microsoft-Server-Analysis-Services-Unleashed/dp/B001QVJ4U4/ref=dp_kinw_strp_1"&gt;&lt;img border="0" alt="Microsoft SQL Server 2008 Analysis Services Unleashed" align="left" src="http://ecx.images-amazon.com/images/I/51s1nMjautL._SL500_AA240_.jpg" width="240" height="240" /&gt;&lt;/a&gt;Full Disclosure:&lt;/strong&gt; I was lucky enough to be sent a free review copy by the publisher&lt;/p&gt;  &lt;p&gt;But... if I had not been sent a review copy I would have gone out and bought a copy of this book anyway. Why is that? Because I had purchased the &lt;a href="http://www.amazon.com/Microsoft-Server-2005-Analysis-Services/dp/0672327821"&gt;previous edition&lt;/a&gt; and I knew that it would be the most in depth book on SSAS 2008 available. It has been written by members of the product team and contains a wealth of information that just could not come from any other source.&lt;/p&gt;  &lt;p&gt;I'm sure most of you have heard that Attribute Relationships vitally important in an Analysis Services database, but have you ever wondered why? Well this book explains exactly how attributes and hierarchies are stored and you can see for yourself the additional structures that are created as a result of attribute relationships.&lt;/p&gt;  &lt;p&gt;If you are new to Analysis Services this may not be the best book to start with as it goes pretty deep.  It does start off with some introductory chapters on SSAS, but if you have never used the product before then it is probably better to start with one of the books that is explicitly aimed at getting started. But if you have done a project or two with SSAS and you are looking for some real inside knowledge, then this is the book for you. &lt;/p&gt;  &lt;p&gt;In particular sections 5 and 6 that cover information that you will not find anywhere else. These sections deal with everything from the physical data and how data is brought in to SSAS to memory management, query processing and the thread architecture.&lt;/p&gt;  &lt;p&gt;If you're lucky you may find it in your local book shop. if not, you can always &lt;a href="http://www.amazon.com/Microsoft-Server-Analysis-Services-Unleashed/dp/0672330016"&gt;get it from Amazon&lt;/a&gt;. :)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135288"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135288" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/135288.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=iiW9O9K4dxI:RHvhObKfBC0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=iiW9O9K4dxI:RHvhObKfBC0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=iiW9O9K4dxI:RHvhObKfBC0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=iiW9O9K4dxI:RHvhObKfBC0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=iiW9O9K4dxI:RHvhObKfBC0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=iiW9O9K4dxI:RHvhObKfBC0:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=iiW9O9K4dxI:RHvhObKfBC0:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/iiW9O9K4dxI" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/10/04/book-review---analysis-services-2008-unleashed.aspx</guid>
            <pubDate>Sun, 04 Oct 2009 11:36:09 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/135288.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/10/04/book-review---analysis-services-2008-unleashed.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/135288.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/135288.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/10/04/book-review---analysis-services-2008-unleashed.aspx</feedburner:origLink></item>
        <item>
            <title>SSAS: Creating a Rowset action with the ExecuteSQL .Net stored procedure</title>
            <category>.Net</category>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/QKor71An_Ko/ssas-creating-a-rowset-action-with-the-executesql-.net-stored.aspx</link>
            <description>&lt;p&gt;A few weeks ago I did &lt;a href="http://geekswithblogs.net/darrengosbell/archive/2009/06/18/ssas-executing-arbitrary-sql-queries.aspx"&gt;a post&lt;/a&gt; introduced the ExecuteSQL .net stored procedure for SSAS. &lt;a href="http://cwebbbi.spaces.live.com/"&gt;Chris Webb&lt;/a&gt; asked if this function can be called from Excel 2007 when it is set this up as a rowset action and I figured that this would make a good topic for a blog post. So the following screen shots show how you would go about setting up such an action. As a quick example I cheated a bit and set up an Rowset action that calls the sp_who2 system stored procedure. This way I did not have a depedancy on any particular database. You don't have to use a stored procedure, you can use any sort of SQL command that returns a set of rows into a rowset action. &lt;/p&gt; &lt;p&gt;Below is how I setup the action: &lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/SSASCreatingaRowsetac.Netstoredprocedure_138EB/image_ed325600-2bf5-495f-ace6-d7847bc64db0.png" width="582" height="456" /&gt;  &lt;/p&gt; &lt;p&gt;When you right click on a cell in a pivot table you will see the following:&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/SSASCreatingaRowsetac.Netstoredprocedure_138EB/image_0ae82180-2380-4693-a8d9-29728ac0b86d.png" width="517" height="434" /&gt; &lt;/p&gt; &lt;p&gt;And clicking on the "Rowset Action" creates another sheet that looks like this:&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/SSASCreatingaRowsetac.Netstoredprocedure_138EB/image_3782098d-5d55-4819-bb8f-e68e6654403f.png" width="600" height="233" /&gt;&lt;/p&gt; &lt;p&gt;Since I posted about the ExecuteSQL function I have made a slight change to the code I checked into the &lt;a href="http://asstoredprocedures.codeplex.com"&gt;ASStoredProcedure project&lt;/a&gt; on codeplex. I have now moved it into a separate "SQLQuery" project so that it compiles to it's own .dll file and does not have to be deployed with the same impersonation mode as the main &lt;a href="http://asstoredprocedures.codeplex.com/"&gt;ASSP&lt;/a&gt; assembly. &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b03366df-2809-48a6-9368-5e95541393e7" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASSP" rel="tag"&gt;ASSP&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Analysis%20Services" rel="tag"&gt;Analysis Services&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Stored%20Procedures" rel="tag"&gt;Stored Procedures&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Codeplex" rel="tag"&gt;Codeplex&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133200"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133200" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/133200.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=QKor71An_Ko:8Brj9Exdc2o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=QKor71An_Ko:8Brj9Exdc2o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=QKor71An_Ko:8Brj9Exdc2o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=QKor71An_Ko:8Brj9Exdc2o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=QKor71An_Ko:8Brj9Exdc2o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=QKor71An_Ko:8Brj9Exdc2o:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=QKor71An_Ko:8Brj9Exdc2o:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/QKor71An_Ko" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/07/02/ssas-creating-a-rowset-action-with-the-executesql-.net-stored.aspx</guid>
            <pubDate>Wed, 01 Jul 2009 21:42:40 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/133200.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/07/02/ssas-creating-a-rowset-action-with-the-executesql-.net-stored.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/133200.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/133200.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/07/02/ssas-creating-a-rowset-action-with-the-executesql-.net-stored.aspx</feedburner:origLink></item>
        <item>
            <title>MVP for another year</title>
            <category>General</category>
            <category>SQL Server</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/CSeYQ_GtVds/mvp-for-another-year-again.aspx</link>
            <description>&lt;p&gt;&lt;img style="margin: 0px 15px 0px 0px" border="0" alt="MVP_FullColor_ForScreen" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/MVPforanotheryear_6A64/MVP_FullColor_ForScreen_6c073b79-d58e-4065-93f1-edb12f4efe91.png" width="64" height="100" /&gt; It was very exciting to see an email from the MVP Award program in my inbox this morning saying that I had been re-awarded as an MVP for another year. This will be my 4th year as an MVP and I am very honored  to have been re-awarded.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133198"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133198" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/133198.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=CSeYQ_GtVds:-J5Q9ZCGaIU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=CSeYQ_GtVds:-J5Q9ZCGaIU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=CSeYQ_GtVds:-J5Q9ZCGaIU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=CSeYQ_GtVds:-J5Q9ZCGaIU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=CSeYQ_GtVds:-J5Q9ZCGaIU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=CSeYQ_GtVds:-J5Q9ZCGaIU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=CSeYQ_GtVds:-J5Q9ZCGaIU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/CSeYQ_GtVds" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/07/02/mvp-for-another-year-again.aspx</guid>
            <pubDate>Wed, 01 Jul 2009 21:34:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/133198.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/07/02/mvp-for-another-year-again.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/133198.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/133198.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/07/02/mvp-for-another-year-again.aspx</feedburner:origLink></item>
        <item>
            <title>SSAS: Executing Arbitrary SQL queries</title>
            <category>.Net</category>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/XlGk87B7klA/ssas-executing-arbitrary-sql-queries.aspx</link>
            <description>&lt;p&gt;I had a question a little while ago via my blog about possibly using a rowset action to execute a SQL query against a specified table. Although a rowset action will allow you to enter a SQL query, such a query is still executed against the current cube and only the subset of SQL supported by SSAS can be used. Basically the rowset action just returns a flattened result set.&lt;/p&gt; &lt;p&gt;However what would be possible would be to write a .Net stored procedure and use that to execute your SQL query. The code itself is really simple, the whole procedure only takes a few lines:&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Data;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Data.OleDb;

&lt;span style="color: rgb(0,0,255)"&gt;namespace&lt;/span&gt; ASSP
{
    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;SQLQuery
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;DataTable&lt;/span&gt; ExecuteSQL(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; connectionString, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; sql)
        {
            &lt;span style="color: rgb(43,145,175)"&gt;OleDbConnection&lt;/span&gt; conn = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;OleDbConnection&lt;/span&gt;(connectionString);
            
            &lt;span style="color: rgb(43,145,175)"&gt;DataTable&lt;/span&gt; dt = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;DataTable&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"Results"&lt;/span&gt;);
            &lt;span style="color: rgb(43,145,175)"&gt;OleDbDataAdapter&lt;/span&gt; da = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;OleDbDataAdapter&lt;/span&gt;(sql, conn);
            da.Fill(dt);
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; dt;
        }
    }
}
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And with this small amount of code you can execute any query that you like using the CALL statement&lt;/p&gt;
&lt;p&gt;eg.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;call&lt;/span&gt; assp.ExecuteSql(
    "provider=sqlncli;server=localhost;database=AdventureWorksDW;trusted_connection=yes"
    ,"Select * from DimCurrency");
&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Which is really cool if you want to do your own drillthrough or return an arbitrary recordset (assuming that your client application supports rowset actions). By you can actually execute more than just any query, you can actually execute any statement.&lt;/p&gt;
&lt;p&gt;So you can paste the following set of statements into SSMS and run them.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;call&lt;/span&gt; assp.ExecuteSql(
    "provider=sqlncli;server=localhost;database=AdventureWorksDW;trusted_connection=yes"
    ,"Create TABLE myTable (id int)");
GO
&lt;span style="color: rgb(0,0,255)"&gt;call&lt;/span&gt; assp.ExecuteSql(
    "provider=sqlncli;server=localhost;database=AdventureWorksDW;trusted_connection=yes"
    ,"INSERT INTO myTable VALUES(1)");
GO
&lt;span style="color: rgb(0,0,255)"&gt;call&lt;/span&gt; assp.ExecuteSql(
    "provider=sqlncli;server=localhost;database=AdventureWorksDW;trusted_connection=yes"
    ,"SELECT * FROM myTable");
GO
&lt;span style="color: rgb(0,0,255)"&gt;call&lt;/span&gt; assp.ExecuteSql(
    "provider=sqlncli;server=localhost;database=AdventureWorksDW;trusted_connection=yes"
    ,"DROP TABLE myTable");

&lt;/pre&gt;
&lt;p&gt;Even though I can only see this technique being used for SELECT statements, you can basically do anything you like in the database provided you have the appropriate rights. Pretty powerful, initially I thought that this might be too powerful to put into the &lt;a href="http://asstoredprocedures.codeplex.com"&gt;ASStoredProcedures Project&lt;/a&gt; on codeplex, but the more I think about it the more I think I was being paranoid, so I have checked this code into the ASStoredProcedure project. With the default deployment options a user can only perform operations that they already have rights to do anyway. It's really only if the assembly is deployed to run under the service account and if the service account has more rights than your end users that there is any risk of someone running a statement with elevated privileges.&lt;/p&gt;
&lt;p&gt;Ultimately I'm not sure how directly useful this simple procedure will be, but I think it will provide a starting point from which more sophisticated routines can be developed using some of the other techniques demonstrated in other functions in ASSP. I'd be interested to hear comments from anyone who ends up adapting this routine.&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;Update 19 Jun:&lt;/font&gt; I removed the "ReadOnly=1" from the end of the connection string - as it was not actually doing anything&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a6e1acd3-c026-47a3-aaeb-0e266ffaa0bc" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Analysis%20Services" rel="tag"&gt;Analysis Services&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Stored%20Procedures" rel="tag"&gt;Stored Procedures&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ASSP" rel="tag"&gt;ASSP&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132899"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132899" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/132899.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=XlGk87B7klA:mrRpjyrt_hc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=XlGk87B7klA:mrRpjyrt_hc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=XlGk87B7klA:mrRpjyrt_hc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=XlGk87B7klA:mrRpjyrt_hc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=XlGk87B7klA:mrRpjyrt_hc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=XlGk87B7klA:mrRpjyrt_hc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=XlGk87B7klA:mrRpjyrt_hc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/XlGk87B7klA" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/06/18/ssas-executing-arbitrary-sql-queries.aspx</guid>
            <pubDate>Thu, 18 Jun 2009 13:20:35 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/132899.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/06/18/ssas-executing-arbitrary-sql-queries.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/132899.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/132899.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/06/18/ssas-executing-arbitrary-sql-queries.aspx</feedburner:origLink></item>
        <item>
            <title>SSAS: Powershell to replace a group member in a role</title>
            <category>Analysis Services</category>
            <category>PowerShell</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/RR3i-XrHWio/ssas-powershell-to-replace-a-group-member-in-a-role.aspx</link>
            <description>&lt;p&gt;There was a question in the SSAS forum recently on how to replace one group name with another within the membership of a number of SSAS roles in a number of databases. While you could possibly do this with XMLA it would be tricky as you have to re-submit the whole membership list, you can't just add/remove single members. The easiest way to do this is to write something using the AMO library and in my opinion the easiest way to write a script for AMO is using Powershell.&lt;/p&gt; &lt;p&gt;Below is my short script which loops through all roles in all databases on the server and swaps out one group or user with another. I tried to make the script verbose and readable and I added some strings which are echoed out to the console so that you can see the roles and members that the script is iterating over.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Courier New"&gt;[System.reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") &lt;/font&gt; &lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Courier New"&gt;$svr = new-Object Microsoft.AnalysisServices.Server&lt;br /&gt;$svr.Connect("localhost\sql08") &lt;/font&gt; &lt;/p&gt;&lt;p&gt;&lt;font size="2" face="Courier New"&gt;foreach ($db in $svr.Databases)&lt;br /&gt;{&lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;# Print the Database Name&lt;br /&gt;"Database: " + $db.Name&lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;foreach ($role in $db.Roles)&lt;br /&gt;  {&lt;br /&gt;    $foundMember = $null&lt;br /&gt;    # Print the Role Name&lt;br /&gt;    "   Role: " + $role.Name    #Print the &lt;br /&gt;    foreach ($member in $role.Members)&lt;br /&gt;    {&lt;br /&gt;     # Print the member name(s)&lt;br /&gt;      "      " + $member.Name&lt;br /&gt;      if ($member.Name -eq &lt;font color="#0000ff"&gt;"domain_name\old_group_name")&lt;/font&gt;&lt;br /&gt;      {&lt;br /&gt;        $foundMember = $member&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    If ($foundMember -ne $null)&lt;br /&gt;    {&lt;br /&gt;      "    Member Found!"&lt;br /&gt;      $role.Members.Remove($foundMember)&lt;br /&gt;      $newRole = New-Object Microsoft.AnalysisServices.RoleMember(&lt;font color="#0000ff"&gt;"domain_name\new_group_name")&lt;/font&gt;&lt;br /&gt;      $role.Members.Add($newRole)&lt;br /&gt;      $role.Update()&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;$svr.Disconnect()&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132751"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132751" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/132751.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=RR3i-XrHWio:ZuM9CBx5Fuc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=RR3i-XrHWio:ZuM9CBx5Fuc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=RR3i-XrHWio:ZuM9CBx5Fuc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=RR3i-XrHWio:ZuM9CBx5Fuc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=RR3i-XrHWio:ZuM9CBx5Fuc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=RR3i-XrHWio:ZuM9CBx5Fuc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=RR3i-XrHWio:ZuM9CBx5Fuc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/RR3i-XrHWio" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/06/11/ssas-powershell-to-replace-a-group-member-in-a-role.aspx</guid>
            <pubDate>Wed, 10 Jun 2009 22:41:23 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/132751.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/06/11/ssas-powershell-to-replace-a-group-member-in-a-role.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/132751.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/132751.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/06/11/ssas-powershell-to-replace-a-group-member-in-a-role.aspx</feedburner:origLink></item>
        <item>
            <title>A fix for the PerformancePoint 2007 Scorecard font issue</title>
            <category>PerformancePoint</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/q612roBDs2w/a-fix-for-the-performancepoint-2007-scorecard-font-issue.aspx</link>
            <description>&lt;p&gt;The Dashboard Designer in PerformancePoint Server 2007 gives you the ability to set a number of the properties for the font of a given column in a scorecard including the font-family and the font-size. You can see these settings change in the designer and you can preview the scorecard and see how your scorecard will look when it is deployed.&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_526e6fb2-5292-41e1-896a-024cbf0ae751.png" width="716" height="379" /&gt; &lt;/p&gt; &lt;p&gt;I changed the font in the screenshot above to Wingdings so that you could easily see the difference. In practice this is probably not a typical change, but you might want to make the font a bit bigger or possibly &lt;a href="http://nickbarclay.blogspot.com/2007/02/pps-bsm-sparklines-in-scorecards.html"&gt;use a font to get a sparkline in your scorecard&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;However, when you actually deploy your scorecard to Sharepoint you will be greeted with the following:&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_c80940fa-ca96-44a5-8881-ad0df2c5d1a9.png" width="582" height="249" /&gt; &lt;/p&gt; &lt;p&gt;The fonts are all reset to 8pt Arial, regardless of the actual settings you specified in the scorecard designer for the font family and size.&lt;/p&gt; &lt;p&gt;This took a fair bit of digging an may not make too much sense if you have not done a bit of web development, but I have isolated the issue in the screen shot below.&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_b9eaf533-1ba6-453d-8846-009bcff42373.png" width="715" height="463" /&gt; &lt;/p&gt; &lt;p&gt;This is part of the markup for a scorecard webpart, showing just the parts that highlight this issue. Right up at the top you can see a DIV tag with the ms-WPBody style, this is the root of our issue. I have pointed out the TD tag a bit further down which is where the font settings from the scorecard are applied and then further down you can see a second TD and inside that is a DIV which contains the actual data for the scorecard cell.&lt;/p&gt; &lt;p&gt;The ms-WPBody style has an entry in the core.css which is part of Sharepoint and it applies a default font-family of Arial and a size of 8pt to any contained TD elements, the inline style that is specified in the TD at the column level gets overridden because of the TD wrapping the cell contents.&lt;/p&gt; &lt;p&gt;One fix for this issue involves deleting the section in core.css that contains the reference to ".ms-WPBody TD" but that is rather extreme. It could affect the look of other elements on your Sharepoint site and service packs and upgrades could undo this.&lt;/p&gt; &lt;p&gt;My current fix involves installing the jQuery &lt;a href="http://smarttools.codeplex.com/"&gt;SmartTool from codeplex&lt;/a&gt; then adding a &lt;strike&gt;custom&lt;/strike&gt; content editor webpart with the following script to the page containing the scorecard.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;language&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;javascript&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;text/javascript&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;  _spBodyOnLoadFunctionNames.push("fixPpsFonts");
  function fixPpsFonts()
  { $(".ms-WPBody").removeClass("ms-WPBody"); }
&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt; &lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;I set the visibility property of custom content webpart to false and then exported the webpart and added it to the gallery so that I could easily add it to other pages.&lt;/p&gt;
&lt;p&gt;It's not an ideal solution at the moment as I have to make sure to manually add the webpart if I ever re-deploy the dashboard, but I think it's better than the alternatives. &lt;/p&gt;
&lt;p&gt;Ideally I would like to be a bit more intelligent and only strip off the ms-WPBody class if the webpart contains a scorecard, but because the scorecards are rendered asynchronously using - the scorecard does not actually exist at the time the script runs, so I'm not sure that it's even possible to implementing this without changing the PerformancePoint Server code.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;Update: 27 June 2009&lt;/font&gt; - You need to enable the SmartTools.jQuery feature before you can use it. I have added some screen shots below to show how this is done.&lt;/p&gt;
&lt;p&gt;You need to be either a Site Collection administrator or higher to perform the following steps. You start by going into the Site Actions menu and then to the "Modify All Site Settings" option.&lt;/p&gt;
&lt;p&gt; &lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_3697b595-8121-4aff-97a2-f556a66437e3.png" width="582" height="438" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Then you go into the "Site collection features" option.&lt;/p&gt;
&lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_2c684b03-07bb-4193-ac0d-a484bbdb64d0.png" width="582" height="468" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And you enable the SmartTools.jQuery feature&lt;/p&gt;
&lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_70cdc88e-65f5-49ab-a75c-d32340978776.png" width="582" height="470" /&gt; &lt;/p&gt;
&lt;p&gt;Then you can go back to the page with your PPS Dashboard and add the snippet of javascript. Use the Source Editor button to paste in the script and set the Hidden property in the Layout section so that the webpart does not display anything to the end users.&lt;/p&gt;
&lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AfixforPerformancePoint2007Scorecardfont_1465C/image_29f15062-0989-46f0-a828-dd7cdc15cbf4.png" width="573" height="583" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132740"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132740" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/132740.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=q612roBDs2w:KrLp0U-y9WQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=q612roBDs2w:KrLp0U-y9WQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=q612roBDs2w:KrLp0U-y9WQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=q612roBDs2w:KrLp0U-y9WQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=q612roBDs2w:KrLp0U-y9WQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=q612roBDs2w:KrLp0U-y9WQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=q612roBDs2w:KrLp0U-y9WQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/q612roBDs2w" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/06/10/a-fix-for-the-performancepoint-2007-scorecard-font-issue.aspx</guid>
            <pubDate>Wed, 10 Jun 2009 05:45:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/132740.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/06/10/a-fix-for-the-performancepoint-2007-scorecard-font-issue.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/132740.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/132740.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/06/10/a-fix-for-the-performancepoint-2007-scorecard-font-issue.aspx</feedburner:origLink></item>
        <item>
            <title>BIDS Helper release 1.4.1</title>
            <category>BIDS Helper</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/cFoIWRLRx8k/bids-helper-release-1.4.1.aspx</link>
            <description>&lt;p&gt;I am happy to announce that we recently put out a &lt;a href="http://bidshelper.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22515"&gt;new release&lt;/a&gt; of BIDS Helper. I have copied the release notes out below, but one important "feature" that is not listed is that we now have a build script which is a modified version of the &lt;a href="http://codebetter.com/blogs/james.kovacs/archive/2008/06/27/introducing-psake.aspx"&gt;psake Powershell build script&lt;/a&gt; written by James Kovacs. &lt;/p&gt; &lt;p&gt;It had gotten to the point where it was a bit of an effort to do a build. You had to start by making sure you had the latest version of the source code, then version number had to be updated in a number of spots, then you had to do the compile, then run the installer script, then create the zip file for the xcopy deploy and once that was all done for the SQL 2005 version the whole process had to be repeated for the SQL 2008 version. So now we build an entire release in a single operation that only takes a minute or two. &lt;/p&gt; &lt;p&gt;There is also a new &lt;a href="http://bidshelper.codeplex.com/Wiki/View.aspx?title=Version%20Notification"&gt;Version Notification&lt;/a&gt; feature that will periodically check if there is a newer release on codeplex and let you know if there is a new version available for download. So once you are running this release, BIDS Helper itself will let you know when a new release is available.&lt;/p&gt; &lt;p&gt;As always, if you have any ideas for features that you would like to see you can add a feature suggestion to the &lt;a href="http://bidshelper.codeplex.com/WorkItem/List.aspx"&gt;issue list&lt;/a&gt;.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;This release incorporates the following major features: &lt;/p&gt;&lt;ul&gt; &lt;li&gt;&lt;b&gt;General&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/Wiki/View.aspx?title=Version%20Notification"&gt;Version Notification&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Analysis Services&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/Wiki/View.aspx?title=Sync%20Descriptions"&gt;Sync Descriptions&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Reporting Services&lt;/b&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/Wiki/View.aspx?title=Smart%20Diff"&gt;Smart Diff&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This release also incorporates the following bug fixes and enhancements: &lt;ul&gt; &lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/WorkItem/View.aspx?WorkItemId=20892"&gt;Parent/Child naturalizer fails if view contains spaces&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/WorkItem/View.aspx?WorkItemId=21074"&gt;Deploy SSIS package error (BIDS 2005 and BIDS 2008 side by side)&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/WorkItem/View.aspx?WorkItemId=21220"&gt;SSAS Estimated Count errors - CubeDimensionID does not exist&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://bidshelper.codeplex.com/WorkItem/View.aspx?WorkItemId=21565"&gt;Deploy SSIS Packages - no Deploy (BIDS Helper) tab?&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132091"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132091" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/132091.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=cFoIWRLRx8k:WYN7hXK1GYg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=cFoIWRLRx8k:WYN7hXK1GYg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=cFoIWRLRx8k:WYN7hXK1GYg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=cFoIWRLRx8k:WYN7hXK1GYg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=cFoIWRLRx8k:WYN7hXK1GYg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=cFoIWRLRx8k:WYN7hXK1GYg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=cFoIWRLRx8k:WYN7hXK1GYg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/cFoIWRLRx8k" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/05/14/bids-helper-release-1.4.1.aspx</guid>
            <pubDate>Wed, 13 May 2009 20:40:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/132091.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/05/14/bids-helper-release-1.4.1.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/132091.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/132091.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/05/14/bids-helper-release-1.4.1.aspx</feedburner:origLink></item>
        <item>
            <title>An Analysis Services 2008 nugget</title>
            <category>Analysis Services</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/NOBxMoCQeTs/an-analysis-services-2008-nugget.aspx</link>
            <description>&lt;p&gt;I was experimenting with some of the PerformancePoint APIs today, but I was doing something wrong as I kept getting ERROR! back. I assumed that some of the parameters that I was using was resulting in invalid MDX being generated. I was running against a test database on SSAS 2005 and as I suspected there was a syntax error in the MDX. Unfortunately Profiler against SSAS 2005 showed me the error, but not the offending MDX, which was not much help. &lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AnAnalysisServices2008nugget_147A8/image_a70acaec-848f-4add-a15f-a01cee53fa3d.png" width="582" height="376" /&gt; &lt;/p&gt; &lt;p&gt;On a whim I decided to move my test database to SSAS 2008 and what do you know - profiler now shows the full MDX in the error message! This allowed me to see that the it was the parameter that was mapping to the slicer that was not working.&lt;/p&gt; &lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/AnAnalysisServices2008nugget_147A8/image_ecde6443-3249-408d-8e14-e1657ec4c3ff.png" width="582" height="420" /&gt; &lt;/p&gt; &lt;p&gt;I'm sure there are plenty of other little areas of fit and polish like this which don't make it into an official feature list, but make it worth upgrading to SSAS 2008.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132053"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132053" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/132053.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=NOBxMoCQeTs:YReB9_uhz3c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=NOBxMoCQeTs:YReB9_uhz3c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=NOBxMoCQeTs:YReB9_uhz3c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=NOBxMoCQeTs:YReB9_uhz3c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=NOBxMoCQeTs:YReB9_uhz3c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=NOBxMoCQeTs:YReB9_uhz3c:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=NOBxMoCQeTs:YReB9_uhz3c:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/NOBxMoCQeTs" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/05/12/an-analysis-services-2008-nugget.aspx</guid>
            <pubDate>Tue, 12 May 2009 13:18:23 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/132053.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/05/12/an-analysis-services-2008-nugget.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/132053.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/132053.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/05/12/an-analysis-services-2008-nugget.aspx</feedburner:origLink></item>
        <item>
            <title>SSAS: T-SQL Equivalent for a Many-to-Many relationship</title>
            <category>Analysis Services</category>
            <category>MDX</category>
            <category>SQL Server</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/bjaepmOEuDA/ssas-t-sql-equivalent-for-a-many-to-many-relationship.aspx</link>
            <description>&lt;p&gt;This question came a while ago now in this SSAS forum thread: &lt;a href="http://social.msdn.microsoft.com/forums/en-US/sqlanalysisservices/thread/370aa59f-a609-4127-bfc8-a987048ddcc8/"&gt;What is wrong in my query&lt;/a&gt; and I thought it was something that may interest other people.&lt;/p&gt; &lt;p&gt;Basically it boiled down to trying to find a T-SQL equivalent to the following MDX which is querying a dimension with a many-to-many relationship to the measure.&lt;/p&gt; &lt;p&gt;So given the following simple MDX query, what would be the equivalent in SQL?&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;select&lt;/span&gt; 
  measures.[Internet Sales Amount] &lt;span style="color: rgb(0,0,255)"&gt;on&lt;/span&gt; 0
  , [Sales Reason].[Sales Reasons].[Reason Type].&lt;span style="color: rgb(0,0,255)"&gt;Members&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;on&lt;/span&gt; 1
&lt;span style="color: rgb(0,0,255)"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Well, what I came up with was the following where I ended up effectively joining to the fact table twice. I don't know about you, but I'd rather write the MDX version any day. :)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;SELECT&lt;/span&gt; 
  m2m&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesReasonReasonType
  &lt;span style="color: rgb(128,128,128)"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255,0,255)"&gt;Sum&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;(&lt;/span&gt;f&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesAmount&lt;span style="color: rgb(128,128,128)"&gt;)&lt;/span&gt; 
&lt;span style="color: rgb(0,0,255)"&gt;FROM&lt;/span&gt; FactInternetSales f
&lt;span style="color: rgb(128,128,128)"&gt;INNER&lt;/span&gt; &lt;span style="color: rgb(128,128,128)"&gt;JOIN&lt;/span&gt; 
&lt;span style="color: rgb(128,128,128)"&gt;(
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;DISTINCT&lt;/span&gt; salesOrderNumber&lt;span style="color: rgb(128,128,128)"&gt;,&lt;/span&gt; SalesOrderLineNumber&lt;span style="color: rgb(128,128,128)"&gt;,&lt;/span&gt; D&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesReasonReasonType
    &lt;span style="color: rgb(0,0,255)"&gt;FROM&lt;/span&gt; [dbo]&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;[DimSalesReason] &lt;span style="color: rgb(0,0,255)"&gt;AS&lt;/span&gt; dim
    &lt;span style="color: rgb(128,128,128)"&gt;INNER&lt;/span&gt; &lt;span style="color: rgb(128,128,128)"&gt;Join&lt;/span&gt; dbo&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;FactInternetSalesReason isr
        &lt;span style="color: rgb(0,0,255)"&gt;ON&lt;/span&gt; dim&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesReasonKey &lt;span style="color: rgb(128,128,128)"&gt;=&lt;/span&gt; isr&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesReasonKey 
&lt;span style="color: rgb(128,128,128)"&gt;)&lt;/span&gt; m2m
    &lt;span style="color: rgb(0,0,255)"&gt;on&lt;/span&gt; f&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesOrderNumber &lt;span style="color: rgb(128,128,128)"&gt;=&lt;/span&gt; m2m&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesOrderNumber 
    &lt;span style="color: rgb(128,128,128)"&gt;And&lt;/span&gt; f&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesOrderLineNumber &lt;span style="color: rgb(128,128,128)"&gt;=&lt;/span&gt; m2m&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesOrderLineNumber 
&lt;span style="color: rgb(0,0,255)"&gt;GROUP&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;BY&lt;/span&gt; m2m&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;SalesReasonReasonType
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:11f0a0eb-7ad0-4ca0-9bc8-e678f90b16f9" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Analysis%20Services" rel="tag"&gt;Analysis Services&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MDX" rel="tag"&gt;MDX&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Many%20to%20Many" rel="tag"&gt;Many to Many&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SQL" rel="tag"&gt;SQL&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131687"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131687" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/131687.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=bjaepmOEuDA:VkYPA1FFrWg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=bjaepmOEuDA:VkYPA1FFrWg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=bjaepmOEuDA:VkYPA1FFrWg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=bjaepmOEuDA:VkYPA1FFrWg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=bjaepmOEuDA:VkYPA1FFrWg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=bjaepmOEuDA:VkYPA1FFrWg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=bjaepmOEuDA:VkYPA1FFrWg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/bjaepmOEuDA" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/05/03/ssas-t-sql-equivalent-for-a-many-to-many-relationship.aspx</guid>
            <pubDate>Sun, 03 May 2009 11:47:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/131687.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/05/03/ssas-t-sql-equivalent-for-a-many-to-many-relationship.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/131687.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/131687.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/05/03/ssas-t-sql-equivalent-for-a-many-to-many-relationship.aspx</feedburner:origLink></item>
        <item>
            <title>PowerShell: List all the senders from an Outlook folder</title>
            <category>PowerShell</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/l9dyoLZpWIM/powershell-list-all-the-senders-from-an-outlook-folder.aspx</link>
            <description>&lt;p&gt;A friend of mine was looking for a tool today to extract a list of names and email addresses from a folder in outlook. I know that Outlook has a comprehensive COM based object model which I figured that I should be able to access from Powershell. I quick search turned up articles from both &lt;a href="http://blogs.msdn.com/jmanning/archive/2007/01/25/using-powershell-for-outlook-automation.aspx"&gt;James Manning&lt;/a&gt; and &lt;a href="http://www.leeholmes.com/blog/OutlookAutomationInPowerShellCalendarScrubbing.aspx"&gt;Lee Holmes&lt;/a&gt; on automating Outlook from Powershell (which I think I have come across before). A bit of poking around using the get-member helped me locate the properties I needed and resulted in the following script. &lt;/p&gt; &lt;p&gt;It access the Personal\Fun folder in my inbox and exports a list of names and email addresses for anyone that has sent me a joke (or at least those which were worth keeping)&lt;/p&gt; &lt;blockquote&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;$olFolderInbox&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;6&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;
&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$ol&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,128,128)"&gt;new-object&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0,128,128)"&gt;comobject&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;Outlook.Application&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;
&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$mapi&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$ol&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.getnamespace(&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;mapi&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)
&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$inbox&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$mapi&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.GetDefaultFolder(&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$olFolderInbox&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)
&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$msgs&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$inbox&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.Folders.Item(&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;Personal&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;).Folders.Item(&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;Fun&lt;/span&gt;&lt;span style="color: rgb(0,0,128)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)
&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;$msgs&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.items &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,128,128)"&gt;Select-Object&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; SenderName, SenderEmailAddress &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0,128,128)"&gt;unique&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(0,128,128)"&gt;export-Csv&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; c:\emails.csv &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0,128,128)"&gt;noTypeInformation&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Taking this a bit further, I wrapped this code into a script so that it could take in the path to an outlook folder and returned a collection of names and addresses.&lt;/p&gt;
&lt;p&gt;&lt;iframe style="border-bottom: #dde5e9 1px solid; border-left: #dde5e9 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 66px; border-top: #dde5e9 1px solid; border-right: #dde5e9 1px solid; padding-top: 0px" marginheight="0" src="http://cid-98546e1b65a78a74.skydrive.live.com/embedrowdetail.aspx/Public/Blog/PowerShell/get-OutlookFolderSenders.ps1" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;So the following call will display the output to the console&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;.\get-OutlookFolderSenders.ps1 "Personal\Fun"&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;And to export them to a file you can just pipe through to the export-csv cmdlet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;.\get-OutlookFolderSenders.ps1 "Personal\Fun" | export-csv "c:\email.csv" -noTypeInformation&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Or if you want a html page you can do the following:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;.\get-OutlookFolderSenders.ps1 "Personal\Fun" | convertTo-html | "c:\email.htm"  &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;I developed this little snippet of code using &lt;/em&gt;&lt;a href="http://www.powershellanalyzer.com/"&gt;&lt;em&gt;Powershell Analyzer&lt;/em&gt;&lt;/a&gt;&lt;em&gt; which I still favour as my main Powershell IDE even though it is not longer being actively developed. It just fits with the way I like to work.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130832"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130832" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/130832.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=l9dyoLZpWIM:Cq-7Zf3vVHM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=l9dyoLZpWIM:Cq-7Zf3vVHM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=l9dyoLZpWIM:Cq-7Zf3vVHM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=l9dyoLZpWIM:Cq-7Zf3vVHM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=l9dyoLZpWIM:Cq-7Zf3vVHM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=l9dyoLZpWIM:Cq-7Zf3vVHM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=l9dyoLZpWIM:Cq-7Zf3vVHM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/l9dyoLZpWIM" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/04/08/powershell-list-all-the-senders-from-an-outlook-folder.aspx</guid>
            <pubDate>Wed, 08 Apr 2009 11:17:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/130832.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/04/08/powershell-list-all-the-senders-from-an-outlook-folder.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/130832.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/130832.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/04/08/powershell-list-all-the-senders-from-an-outlook-folder.aspx</feedburner:origLink></item>
        <item>
            <title>Debugging SSIS ScriptTasks and ScriptComponents with Information Messages</title>
            <category>Integration Services</category>
            <category>SQL Server</category>
            <link>http://feedproxy.google.com/~r/darrengosbell/~3/GtJ7HK3qRZA/debugging-ssis-scripttasks-and-scriptcomponents-with-information-messages.aspx</link>
            <description>&lt;p&gt;I recently had to do some simple debugging of some script tasks and components in SSIS and through I would share the simple technique that I was using. While this is only just above the level of debugging using MessageBoxes it can still be quite handy. It basically consists of printing information messages to the Progress/Execution Results window in BIDS. The syntax differs between the ScriptTask and the ScriptComponent and I keep forgetting it, so I figured if I posted it here I should be able to find it later without too much trouble.  &lt;/p&gt;&lt;p&gt;For ScriptTasks in the control flow you use the following  &lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;  Dts.Events.FireInformation(0, "&amp;lt;SubComponentName&amp;gt;", "&amp;lt;Message&amp;gt;", "", 0, true)&lt;/font&gt;  &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;p&gt;For ScriptComponents in the data flow you use the following  &lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;  ComponentMetaData.FireInformation(0, "&amp;lt;SubComponentName&amp;gt;", "&amp;lt;Message&amp;gt;", "", 0, true)&lt;/font&gt;  &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;p&gt;Both these calls cause an information message like  "[ &lt;em&gt;&amp;lt;SubComponentName&amp;gt;&lt;/em&gt; ] &lt;em&gt;&amp;lt;Message&amp;gt;&lt;/em&gt;" to be written to the Execution Results window in BIDS.  &lt;/p&gt;&lt;p&gt;This can be useful for displaying the values of variables and for printing out trace messages when certain logic has been invoked.  &lt;/p&gt;&lt;p&gt;The screen shots below are from a simple test package which just loops through every database on a server and selects a list of all the tables. In the data flow task I have a script destination component that raises information events with the database and table name in the description. below is a copy of the code and a snippet of the Execution Results window that shows the output.  &lt;/p&gt;&lt;p&gt; &lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/DebuggingSSISScriptTasksandScriptCompone_1408A/image_4a96df15-6ee3-4952-8a2c-098bc19111c7.png" width="700" height="239" /&gt;  &lt;/p&gt;&lt;p&gt;Then at the end of the control flow I have a script task that just prints out a message that the packages had finished.  &lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/darrengosbell/WindowsLiveWriter/DebuggingSSISScriptTasksandScriptCompone_1408A/image_30dc67e3-96b3-4ce1-8687-a1ea8440259a.png" width="550" height="266" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130495"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130495" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/130495.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=GtJ7HK3qRZA:M1kgwW9S9K4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=GtJ7HK3qRZA:M1kgwW9S9K4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=GtJ7HK3qRZA:M1kgwW9S9K4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=GtJ7HK3qRZA:M1kgwW9S9K4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=GtJ7HK3qRZA:M1kgwW9S9K4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/darrengosbell?a=GtJ7HK3qRZA:M1kgwW9S9K4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/darrengosbell?i=GtJ7HK3qRZA:M1kgwW9S9K4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/darrengosbell/~4/GtJ7HK3qRZA" height="1" width="1"/&gt;</description>
            <dc:creator>Darren Gosbell</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/03/29/debugging-ssis-scripttasks-and-scriptcomponents-with-information-messages.aspx</guid>
            <pubDate>Sun, 29 Mar 2009 10:28:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/darrengosbell/comments/130495.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/darrengosbell/archive/2009/03/29/debugging-ssis-scripttasks-and-scriptcomponents-with-information-messages.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/130495.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/130495.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/03/29/debugging-ssis-scripttasks-and-scriptcomponents-with-information-messages.aspx</feedburner:origLink></item>
    </channel>
</rss>
