<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Mark Mrachek - Business Intelligence Blog</title>
    <link>http://www.mrachek.com/</link>
    <description />
    <language>en-us</language>
    <copyright>Mark Mrachek</copyright>
    <lastBuildDate>Thu, 18 May 2006 05:31:34 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.2</generator>
    <managingEditor>webmaster@mrachek.com</managingEditor>
    <webMaster>webmaster@mrachek.com</webMaster>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=af10cb31-0a3c-457b-89bb-06c5f26bdf8a</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,af10cb31-0a3c-457b-89bb-06c5f26bdf8a.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,af10cb31-0a3c-457b-89bb-06c5f26bdf8a.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=af10cb31-0a3c-457b-89bb-06c5f26bdf8a</wfw:commentRss>
      <title>Errors in the metadata manager</title>
      <guid>http://www.mrachek.com/PermaLink,guid,af10cb31-0a3c-457b-89bb-06c5f26bdf8a.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,af10cb31-0a3c-457b-89bb-06c5f26bdf8a.aspx</link>
      <pubDate>Thu, 18 May 2006 05:31:34 GMT</pubDate>
      <description>&lt;p class=MsoNormal&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I
   ran into this error yesterday when I was using the Aggregation Design Wizard in Analysis
   Services 2005.&lt;span&gt;&amp;nbsp; &lt;/span&gt;I was finally able trace the problem to a conflict
   between the Aggregation Design Wizard and a custom assembly that I had in my project.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = o /&gt;I
   still don’t know why the custom assembly was interfering with the creation of aggregations,
   but here is how I resolved the issue:&lt;o:p&gt;&lt;/o:p&gt;
   &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;span&gt;1)&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Remove
   the custom assembly from your project in Business Intelligence Development Studio.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;span&gt;2)&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Deploy
   your project.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;span&gt;3)&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Design
   the aggregations for your partitions with the Aggregation Design Wizard.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;span&gt;4)&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Add
   your custom assembly back into your project in Business Intelligence Development Studio.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in"&gt;
   &lt;font face=Verdana color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;span&gt;5)&lt;span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Deploy
   your project.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=af10cb31-0a3c-457b-89bb-06c5f26bdf8a" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,af10cb31-0a3c-457b-89bb-06c5f26bdf8a.aspx</comments>
      <category>Analysis Services</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=ea29b58b-2797-43cf-85f6-94108ca46c06</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,ea29b58b-2797-43cf-85f6-94108ca46c06.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,ea29b58b-2797-43cf-85f6-94108ca46c06.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ea29b58b-2797-43cf-85f6-94108ca46c06</wfw:commentRss>
      <title>Custom Drillthrough in Analysis Services 2005</title>
      <guid>http://www.mrachek.com/PermaLink,guid,ea29b58b-2797-43cf-85f6-94108ca46c06.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,ea29b58b-2797-43cf-85f6-94108ca46c06.aspx</link>
      <pubDate>Tue, 16 May 2006 04:17:02 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;It’s been
   quite a while since I’ve posted here because I’ve been extremely busy in a release
   cycle, but I thought I would post an update on the custom drillthrough that I have
   been working on.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;Unfortunately,
   I do not have the completed code yet.&lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;A few weeks
   ago, I had a conversation with &lt;a href="http://spaces.msn.com/cwebbbi"&gt;Chris Webb&lt;/a&gt; regarding
   the use of a stored procedure to implement customized drillthrough in Analysis Services
   2005.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We had discussed a couple of ways
   to implement a solution that would query the underlying database to return drillthrough
   records.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;One method
   was to capture the current members that made up a cell and pass those members to a
   Reporting Services report which would call a stored procedure and return records from
   the underlying database.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The other method
   was to capture the current members of a cell and use the metadata for those members
   (via AMO) to construct a SQL statement that could be passed to RS which would use
   a stored procedure to return the drillthrough records.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;I spent some
   time working on the SQL statement solution and got it working, but ran into a couple
   of problems that made me regret choosing this path.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;First,
   not all client applications handle actions the same way.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;For
   instance, if I were to construct a query by dragging and dropping my dimensions in
   Excel or the cube browser in SQL Server Management Studio, the queries returned immediately.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;However,
   when using ProClarity Desktop, my queries were much slower.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
   used SQL Server Profiler to see what was causing the holdup and found that a connection
   to Analysis Services would be opened and closed for every cell that was returned to
   the client.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So, if I had 300 cells that
   made up a result set, 301 connections would be opened on the server (1 connection
   for the original query + 300 connections for the cells in the result set).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
   occurred because my stored procedure used AMO to read the metadata for the current
   members.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This was puzzling because with
   Excel and the cube browser, these connections would not be opened unless the drillthrough
   action was triggered when I right clicked on a single cell…which is what I intended.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;Another major
   flaw with this method was passing a SQL statement via the URL to Reporting Services.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
   left a big security hole where the SQL in the query string could be manipulated.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Obviously,
   there are ways around this but the more I thought about this solution, the more I
   disliked it.&lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;Needless to
   say, I’m going to pass on creating the SQL statement from within the Analysis Services
   stored procedure.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My new plan involves
   two stored procedures, one in Analysis Services and one in SQL Server.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
   figure if I can pass the current members to Reporting Services, then I can call a
   custom assembly in SQL Server that will query AMO and get the metadata for the current
   members. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;After I get this metadata, I
   can construct a SQL statement in my SQL Server assembly, execute the statement, and
   then return the records. 
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;I’m still
   pinched on time, but will post my results as soon as I get them completed. 
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=ea29b58b-2797-43cf-85f6-94108ca46c06" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,ea29b58b-2797-43cf-85f6-94108ca46c06.aspx</comments>
      <category>Analysis Services</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=7a56867b-1101-471d-9e4d-9a80c51c6331</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,7a56867b-1101-471d-9e4d-9a80c51c6331.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,7a56867b-1101-471d-9e4d-9a80c51c6331.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7a56867b-1101-471d-9e4d-9a80c51c6331</wfw:commentRss>
      <title>Custom Drillthrough in Analysis Services 2005</title>
      <guid>http://www.mrachek.com/PermaLink,guid,7a56867b-1101-471d-9e4d-9a80c51c6331.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,7a56867b-1101-471d-9e4d-9a80c51c6331.aspx</link>
      <pubDate>Tue, 16 May 2006 04:17:00 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;It’s been
   quite a while since I’ve posted here because I’ve been extremely busy in a release
   cycle, but I thought I would post an update on the custom drillthrough that I have
   been working on.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;Unfortunately,
   I do not have the completed code yet.&lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;A few weeks
   ago, I had a conversation with &lt;a href="http://spaces.msn.com/cwebbbi"&gt;Chris Webb&lt;/a&gt; regarding
   the use of a stored procedure to implement customized drillthrough in Analysis Services
   2005.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;We had discussed a couple of ways
   to implement a solution that would query the underlying database to return drillthrough
   records.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;One method
   was to capture the current members that made up a cell and pass those members to a
   Reporting Services report which would call a stored procedure and return records from
   the underlying database.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The other method
   was to capture the current members of a cell and use the metadata for those members
   (via AMO) to construct a SQL statement that could be passed to RS which would use
   a stored procedure to return the drillthrough records.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;I spent some
   time working on the SQL statement solution and got it working, but ran into a couple
   of problems that made me regret choosing this path.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;First,
   not all client applications handle actions the same way.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;For
   instance, if I were to construct a query by dragging and dropping my dimensions in
   Excel or the cube browser in SQL Server Management Studio, the queries returned immediately.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;However,
   when using ProClarity Desktop, my queries were much slower.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
   used SQL Server Profiler to see what was causing the holdup and found that a connection
   to Analysis Services would be opened and closed for every cell that was returned to
   the client.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So, if I had 300 cells that
   made up a result set, 301 connections would be opened on the server (1 connection
   for the original query + 300 connections for the cells in the result set).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
   occurred because my stored procedure used AMO to read the metadata for the current
   members.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This was puzzling because with
   Excel and the cube browser, these connections would not be opened unless the drillthrough
   action was triggered when I right clicked on a single cell…which is what I intended.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;Another major
   flaw with this method was passing a SQL statement via the URL to Reporting Services.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
   left a big security hole where the SQL in the query string could be manipulated.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Obviously,
   there are ways around this but the more I thought about this solution, the more I
   disliked it.&lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;Needless to
   say, I’m going to pass on creating the SQL statement from within the Analysis Services
   stored procedure.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My new plan involves
   two stored procedures, one in Analysis Services and one in SQL Server.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
   figure if I can pass the current members to Reporting Services, then I can call a
   custom assembly in SQL Server that will query AMO and get the metadata for the current
   members. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;After I get this metadata, I
   can construct a SQL statement in my SQL Server assembly, execute the statement, and
   then return the records. 
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;font color=#000000&gt;I’m still
   pinched on time, but will post my results as soon as I get them completed. 
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=7a56867b-1101-471d-9e4d-9a80c51c6331" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,7a56867b-1101-471d-9e4d-9a80c51c6331.aspx</comments>
      <category>Analysis Services</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=7cb06281-9394-438b-b2aa-8996106ee481</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,7cb06281-9394-438b-b2aa-8996106ee481.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,7cb06281-9394-438b-b2aa-8996106ee481.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7cb06281-9394-438b-b2aa-8996106ee481</wfw:commentRss>
      <title>Drillthrough on Dimensions with ROLAP storage mode</title>
      <guid>http://www.mrachek.com/PermaLink,guid,7cb06281-9394-438b-b2aa-8996106ee481.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,7cb06281-9394-438b-b2aa-8996106ee481.aspx</link>
      <pubDate>Wed, 19 Apr 2006 14:51:11 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma color=#000000&gt;Recently,
   I was setting up drillthrough on a degenerate dimension with ROLAP storage.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
   encountered the error below when executing the drillthrough action.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma color=#000000&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;img alt="" hspace=0 src="http://www.mrachek.com/images/DrillError.jpg" align=baseline border=0&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma color=#000000&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma color=#000000&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;
   &lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;
      &lt;font face=Tahoma&gt;&lt;/font&gt;
   &lt;/v:shapetype&gt;
   &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma&gt;Using SQL Server
   profiler, I was able to locate the cause of the issue.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;Looking
   at the trace, I noticed that the ‘IntegerData’ trace field was failing at row 310,000
   so I looked at server properties to see which ROLAP related properties were set to
   300,000.&amp;nbsp; 
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
   &lt;o:p&gt;
      &lt;font face=Tahoma&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma&gt;The culprit turned
   out to be ‘ROLAPDimensionProcessingEffort’ which was set to 300,000.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So,
   as a test, I set the property to 2,000,000 (a number higher than the number of members
   in my degenerate dimension) and this resolved the error.&amp;nbsp; 
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
   &lt;o:p&gt;
      &lt;font face=Tahoma&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma&gt;Although changing
   this property resolved the error, the cost of using the ROLAP storage for this dimension
   turned out to be quite expensive.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My
   greatest concern was that a huge number of dimension members were being queried and
   cached when I was essentially targeting only 30 records for drillthrough.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
   &lt;o:p&gt;
      &lt;font face=Tahoma&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma&gt;I had posted this
   problem to an internal message board at Microsoft and was informed that “…client applications
   may mistakenly try to fetch more data than they really wanted to from ROLAP dimensions…”.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This
   is why the ‘ROLAPDimensionProcessingEffort’ property exists. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;
   &lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
   &lt;o:p&gt;
      &lt;font face=Tahoma&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Tahoma&gt;Needless to say,
   I’m not impressed with ROLAP dimensions and this one more reason to avoid using them
   if you can.&lt;o:p&gt;&lt;/o:p&gt;
   &lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font face=Tahoma&gt;&lt;/font&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font face=Tahoma&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&amp;nbsp;
&lt;/p&gt;
&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&gt;&gt;&gt;&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=7cb06281-9394-438b-b2aa-8996106ee481" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,7cb06281-9394-438b-b2aa-8996106ee481.aspx</comments>
      <category>Analysis Services</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=88216d1e-f157-4df5-891a-26aa19470691</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,88216d1e-f157-4df5-891a-26aa19470691.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,88216d1e-f157-4df5-891a-26aa19470691.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=88216d1e-f157-4df5-891a-26aa19470691</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <font face="Tahoma" size="2">In case you haven't heard yet, Microsoft recently purchased
   ProClarity.  Here is a link to the <a href="http://www.microsoft.com/presspass/press/2006/apr06/04-03ProClarityPR.mspx">press
   release</a>.<br /><br /></font>
        <img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=88216d1e-f157-4df5-891a-26aa19470691" />
      </body>
      <title>Microsoft buys ProClarity</title>
      <guid>http://www.mrachek.com/PermaLink,guid,88216d1e-f157-4df5-891a-26aa19470691.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,88216d1e-f157-4df5-891a-26aa19470691.aspx</link>
      <pubDate>Sat, 15 Apr 2006 20:25:26 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;font face="Tahoma" size="2"&gt;In case you haven't heard yet, Microsoft recently purchased
ProClarity.&amp;nbsp; Here is a link to the &lt;a href="http://www.microsoft.com/presspass/press/2006/apr06/04-03ProClarityPR.mspx"&gt;press
release&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt; &lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=88216d1e-f157-4df5-891a-26aa19470691" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,88216d1e-f157-4df5-891a-26aa19470691.aspx</comments>
      <category>Web Reporting</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=07ce7111-c56c-404e-8904-7b0195f4babb</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,07ce7111-c56c-404e-8904-7b0195f4babb.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,07ce7111-c56c-404e-8904-7b0195f4babb.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=07ce7111-c56c-404e-8904-7b0195f4babb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font face="Tahoma" size="2">I've been working with a new User Interface Platform
      group in Microsoft Services IT for the last three months.  This group is using
      Panorama as their BI interface within their platform.  </font>
        </p>
        <p>
          <font face="Tahoma" size="2">Although I have a bias toward building custom web based
      applications for BI UI's, I must say that I'm impressed with Panorama.  The charting
      is great and the security models are flexible.  I would say the biggest drawback
      I've seen at this point is that Panorama does not handle dynamic security models in
      Analysis Services very well.</font>
        </p>
        <p>
          <font face="Tahoma" size="2">One thing I really like about Panorama is that you can
      customize slicer security by altering their base asp files which gives you maximum
      flexibility when dealing with data level security.</font>
        </p>
        <p>
          <font face="Tahoma" size="2">I'll try to post more information about Panorama in the
      future.</font>
        </p>
        <img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=07ce7111-c56c-404e-8904-7b0195f4babb" />
      </body>
      <title>Panorama Dashboard</title>
      <guid>http://www.mrachek.com/PermaLink,guid,07ce7111-c56c-404e-8904-7b0195f4babb.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,07ce7111-c56c-404e-8904-7b0195f4babb.aspx</link>
      <pubDate>Sat, 25 Feb 2006 20:02:35 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;font face="Tahoma" size="2"&gt;I've been working with a new User Interface Platform
   group in Microsoft Services IT for the last three months.&amp;nbsp; This group is using
   Panorama as their BI interface within their platform.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Tahoma" size="2"&gt;Although I have a bias toward building custom web based
   applications for BI UI's, I must say that I'm impressed with Panorama.&amp;nbsp; The charting
   is great and the security models are flexible.&amp;nbsp; I would say the biggest drawback
   I've seen at this point is that Panorama does not handle dynamic security models in
   Analysis Services very well.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Tahoma" size="2"&gt;One thing I really like about Panorama is that you can
   customize slicer security by altering their base asp files which gives you maximum
   flexibility when dealing with data level security.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font face="Tahoma" size="2"&gt;I'll try to post more information about Panorama in the
   future.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=07ce7111-c56c-404e-8904-7b0195f4babb" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,07ce7111-c56c-404e-8904-7b0195f4babb.aspx</comments>
      <category>Web Reporting</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=8820cd3a-35f9-4c55-91b2-cc1dbd47fc83</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,8820cd3a-35f9-4c55-91b2-cc1dbd47fc83.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,8820cd3a-35f9-4c55-91b2-cc1dbd47fc83.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8820cd3a-35f9-4c55-91b2-cc1dbd47fc83</wfw:commentRss>
      <title>MDX NonEmpty() function vs NonEmptyCrossjoin() function in Analysis Services 2005</title>
      <guid>http://www.mrachek.com/PermaLink,guid,8820cd3a-35f9-4c55-91b2-cc1dbd47fc83.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,8820cd3a-35f9-4c55-91b2-cc1dbd47fc83.aspx</link>
      <pubDate>Mon, 20 Feb 2006 02:21:11 GMT</pubDate>
      <description>&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;If you have ever used the NonEmptyCrossjoin function, you may
   have been surprised (and frustrated) with the results your queries returned.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;This
   function was added to Analysis Services 2000 to help with performance of queries,
   but it commonly returned incorrect results.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Fortunately
   the NonEmptyCrossjoin function is being deprecated.&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;o:p&gt;
      &lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;The NonEmpty() function is new in Analysis Services 2005 and
   should be used instead of the NonEmptyCrossjoin function.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The
   NonEmpty() function is powerful because it can be applied to MDX expressions whereas
   the NON EMPTY clause was only available at the top level in SELECT statements.&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;o:p&gt;
      &lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;This syntax for the NonEmpty() function is NonEmpty({set},[filter
   set])&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   I met with a developer and PM from the Analysis Services team last week in Redmond
   and they provided me with more information on the NonEmpty() function.&amp;nbsp; 
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   If you use the NonEmpty() function without a filterset, then the expression is evaluated&amp;nbsp;using
   the default measure in your cube.&amp;nbsp; So, if you do not define a filterset and you
   did not specify a default measure in your cube, then you may get unexpected results
   with this function.&amp;nbsp; Because, even though you may not have explicity defined
   a default measure, all cubes have a default measure (Analysis Services will define
   a default measure even if you did not define one) and the NonEmpty() function will
   use this default measure as the context in which to evaluate the expression.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=8820cd3a-35f9-4c55-91b2-cc1dbd47fc83" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,8820cd3a-35f9-4c55-91b2-cc1dbd47fc83.aspx</comments>
      <category>Analysis Services/MDX</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=52768632-8b6f-48e4-b267-b908c452b1fa</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,52768632-8b6f-48e4-b267-b908c452b1fa.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,52768632-8b6f-48e4-b267-b908c452b1fa.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=52768632-8b6f-48e4-b267-b908c452b1fa</wfw:commentRss>
      <title>Business Intelligence Consultant.</title>
      <guid>http://www.mrachek.com/PermaLink,guid,52768632-8b6f-48e4-b267-b908c452b1fa.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,52768632-8b6f-48e4-b267-b908c452b1fa.aspx</link>
      <pubDate>Tue, 14 Feb 2006 09:05:40 GMT</pubDate>
      <description>&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;I have been developing reporting systems for over nine years.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;For
   the last six years I’ve been working as an independent contractor and consultant for
   my own company,&amp;nbsp;&lt;a href="http://www.dymetrics.com"&gt;dymetrics, inc.&lt;/a&gt;,&lt;/font&gt;&lt;font color="#000000"&gt;&amp;nbsp;which
   specializes in delivering Business Intelligence solutions.&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;o:p&gt;
      &lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;In November of 2005, I joined a consulting company as a full-time
   employee to work on a contract at Microsoft.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;o:p&gt;
      &lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;Although my areas of expertise include data warehousing, OLAP,
   and ASP.Net development, my primary focus at Microsoft has been working with Analysis
   Services 2005.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;I have also been helping the new User Interface
   Platform group in Microsoft’s Services IT department implement Panorama as their Business
   Intelligence user interface.&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;o:p&gt;
      &lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;
   &lt;font color="#000000"&gt;Once my assignment is completed at Microsoft, I will most likely
   go back to independent contracting since I prefer working independently as opposed
   to being a full-time employee.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=52768632-8b6f-48e4-b267-b908c452b1fa" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,52768632-8b6f-48e4-b267-b908c452b1fa.aspx</comments>
      <category>Consulting</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=c913d82f-1006-49dd-9253-98b478ef8959</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,c913d82f-1006-49dd-9253-98b478ef8959.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,c913d82f-1006-49dd-9253-98b478ef8959.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c913d82f-1006-49dd-9253-98b478ef8959</wfw:commentRss>
      <title>User Defined Functions (UDFs) in Analysis Services 2005</title>
      <guid>http://www.mrachek.com/PermaLink,guid,c913d82f-1006-49dd-9253-98b478ef8959.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,c913d82f-1006-49dd-9253-98b478ef8959.aspx</link>
      <pubDate>Sat, 11 Feb 2006 08:51:43 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font color=#000000&gt;I’ve found myself working with UDF’s more and more lately and
   thought it would make a good blog topic. So, if you are interested in creating a UDF
   to use in your MDX, read on.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font color=#000000&gt;I’m using the Adventure Works database which is the sample database
   Analysis Services 2005.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If you have not
   yet created the Adventure Works database, you can get the source files and installation
   instructions&amp;nbsp;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E719ECF7-9F46-4312-AF89-6AD8702E4E6E&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font color=#000000&gt;First, create a class library in Visual Studio.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;o:p&gt;
      &lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font color=#000000&gt;Here is a very basic sample of a C# class library I created:&lt;/font&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt; 
&lt;p&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; System;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; System.Text;&lt;br&gt;
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;namespace&lt;/span&gt; AWLib&lt;br&gt;
   {&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;class&lt;/span&gt; Utilities&lt;br&gt;
   {&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; GetSomeSet(){&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; sec &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; DateTime.Now.TimeOfDay.Milliseconds;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; set;&lt;br&gt;
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (sec
   &amp;lt; 200) {&lt;br&gt;
   set &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"[Date].[Fiscal].Children"&lt;/span&gt;;&lt;br&gt;
   }&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (sec
   &amp;lt; 400) 
   &lt;br&gt;
   {&lt;br&gt;
   set &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"[Reseller].[Reseller
   Type].Children"&lt;/span&gt;;&lt;br&gt;
   } 
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (sec
   &amp;lt; 600) 
   &lt;br&gt;
   {&lt;br&gt;
   set &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"[Employee].[Employees].Children"&lt;/span&gt;;&lt;br&gt;
   }&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (sec
   &amp;lt; 800)&lt;br&gt;
   {&lt;br&gt;
   set &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"[Geography].[Geography].Children"&lt;/span&gt;;&lt;br&gt;
   }&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;else&lt;/span&gt; {&lt;br&gt;
   set &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"[Sales
   Channel].[Sales Channel].Children"&lt;/span&gt;;&lt;br&gt;
   }&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;return&lt;/span&gt; set;&lt;br&gt;
   }&lt;br&gt;
   &lt;br&gt;
   }&lt;br&gt;
   }&lt;br&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font face=Verdana size=2&gt;Next, after you have successfully compiled your class library,
   you need to add it to the Adventure Works database.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
   do this by:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .75in"&gt;
   &lt;font face=Verdana&gt;&lt;font size=2&gt;&lt;span style="mso-list: Ignore"&gt;1)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Opening
   SQL Server Management Studio&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .75in"&gt;
   &lt;font face=Verdana&gt;&lt;font size=2&gt;&lt;span style="mso-list: Ignore"&gt;2)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Right
   click on the ‘Assemblies’ folder in the Adventure Works database, then click on ‘New
   Assembly…’&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;o:p&gt;
      &lt;font face=Verdana size=2&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font face=Verdana size=2&gt;Note: You can also add your class library to the server
   assemblies so the UDF’s will be available in all databases on your Analysis Services
   instance.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Also, you can add your assembly
   to your ‘Business Intelligence Development Studio’ project and deploy your assembly
   along with your database.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font face=Verdana size=2&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font face=Verdana size=2&gt;To
   test the UDF (from above), open a ‘New Query’ window in SQL Server Management Studio,
   select the Adventure Works database and execute the following MDX.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font face=Verdana size=2&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt; 
&lt;p&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;SELECT&lt;/span&gt; Measures.Members &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ON&lt;/span&gt; 0,&lt;br&gt;
   &lt;font color=#a52a2a&gt;STRTOSET&lt;/font&gt;(AWLib.GetSomeSet()) &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;ON&lt;/span&gt; 1&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;FROM&lt;/span&gt; [Adventure
   Works]&lt;/span&gt;
&lt;/p&gt;
&lt;/span&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font face=Verdana&gt;&lt;font size=2&gt;The AWLib.GetSomeSet() function will return different
   sets based on the milliseconds from the timestamp on your server.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;o:p&gt;
      &lt;font face=Verdana size=2&gt;&amp;nbsp;&lt;/font&gt;
   &lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
   &lt;font face=Verdana size=2&gt;UDF’s are very powerful and flexible and help to extend
   the functionality of MDX.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Here are just
   a few examples of how you can use UDF’s 1) implementing dynamic security in Analysis
   Services, 2) dynamically building sets and tuples, and 3) creating complex mathematical
   calculations.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;br&gt;
&lt;/p&gt;
&lt;/span&gt;&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=c913d82f-1006-49dd-9253-98b478ef8959" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,c913d82f-1006-49dd-9253-98b478ef8959.aspx</comments>
      <category>Analysis Services</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=492b5c79-9436-4426-9405-b192d933f6f2</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,492b5c79-9436-4426-9405-b192d933f6f2.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,492b5c79-9436-4426-9405-b192d933f6f2.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=492b5c79-9436-4426-9405-b192d933f6f2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <font face="Tahoma" size="2"> I ran into this error the other day when attempting
   to design aggregations for a cube using the AS 2005 Aggregation Design Wizard. 
   The full error was: "Clr Assembly must have main file specified. To restart the process,
   resolve the problem and then click Start." 
   <br /><br />
   I was able to able to resolve this error by:    
   <br />
       1) Stopping the services of AS where your database resides<br />
       2) Renaming the data directory for Analysis Services Databases. 
   <br />
           Default location: C:\Program Files\Microsoft
   SQL Server\MSSQL.2\OLAP\Data  (rename the 'Data' folder to 'Data_OLD')<br />
           Note: MSSQL.2 is the location for the AS files
   on *my* server.  You're AS folder may be named MSSQL.1 or MSSQL.3 or whatever.<br />
                   Also note,
   when you rename this folder, all existing databases that resided in your instance
   of AS are now unavailable.  You will need to re-deploy all of your databases
   to this server (if applicable).<br />
       3) Create a new folder in the 'C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\'
   directory called 'Data' (basically replacing the original 'Data' folder you renamed
   in Step 2 with a new "empty" folder)<br />
       4) Start the AS Services on your server<br />
       5) Deploy your Analysis Services Project to the server<br />
       6) Create your aggregations.<br /><br />
   This error has nothing to do with your database objects but everything to do with
   internal AS files.  Why or how this occurs is beyond me, but some AS files must
   be corrupt which causes this error.<br /></font>
        <img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=492b5c79-9436-4426-9405-b192d933f6f2" />
      </body>
      <title>Clr Assembly must have main file specified.</title>
      <guid>http://www.mrachek.com/PermaLink,guid,492b5c79-9436-4426-9405-b192d933f6f2.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,492b5c79-9436-4426-9405-b192d933f6f2.aspx</link>
      <pubDate>Sat, 04 Feb 2006 19:30:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;font face="Tahoma" size="2"&gt; I ran into this error the other day when attempting
to design aggregations for a cube using the AS 2005 Aggregation Design Wizard.&amp;nbsp;
The full error was: "Clr Assembly must have main file specified. To restart the process,
resolve the problem and then click Start." 
&lt;br&gt;
&lt;br&gt;
I was able to able to resolve this error by:&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Stopping the services of AS where your database resides&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) Renaming the data directory for Analysis Services Databases. 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Default location: C:\Program Files\Microsoft
SQL Server\MSSQL.2\OLAP\Data&amp;nbsp; (rename the 'Data' folder to 'Data_OLD')&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Note: MSSQL.2 is the location for the AS files
on *my* server.&amp;nbsp; You're AS folder may be named MSSQL.1 or MSSQL.3 or whatever.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Also note,
when you rename this folder, all existing databases that resided in your instance
of AS are now unavailable.&amp;nbsp; You will need to re-deploy all of your databases
to this server (if applicable).&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Create a new folder in the 'C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\'
directory called 'Data' (basically replacing the original 'Data' folder you renamed
in Step 2 with a new "empty" folder)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 4) Start the AS Services on your server&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 5) Deploy your Analysis Services Project to the server&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 6) Create your aggregations.&lt;br&gt;
&lt;br&gt;
This error has nothing to do with your database objects but everything to do with
internal AS files.&amp;nbsp; Why or how this occurs is beyond me, but some AS files must
be corrupt which causes this error.&lt;br&gt;
&lt;/font&gt; &lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=492b5c79-9436-4426-9405-b192d933f6f2" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,492b5c79-9436-4426-9405-b192d933f6f2.aspx</comments>
      <category>Analysis Services</category>
    </item>
    <item>
      <trackback:ping>http://www.mrachek.com/Trackback.aspx?guid=03d2bee8-3288-4e5c-8793-a7bb47f2f073</trackback:ping>
      <pingback:server>http://www.mrachek.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.mrachek.com/PermaLink,guid,03d2bee8-3288-4e5c-8793-a7bb47f2f073.aspx</pingback:target>
      <dc:creator>webmaster@mrachek.com (Mark Mrachek)</dc:creator>
      <wfw:comment>http://www.mrachek.com/CommentView,guid,03d2bee8-3288-4e5c-8793-a7bb47f2f073.aspx</wfw:comment>
      <wfw:commentRss>http://www.mrachek.com/SyndicationService.asmx/GetEntryCommentsRss?guid=03d2bee8-3288-4e5c-8793-a7bb47f2f073</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <font face="Verdana" size="2">I’ve written thousands of lines of MDX code over the
   years to support web reporting applications and today I discovered something new. 
   Although it probably isn’t new to MDX, it was new to me because I never needed it
   until today.  I was targeting the ascendants of a member and based on the parent
   of the member, I needed to alter the slice of the cube.<br /><br />
   Typically, when I use conditional statements, I create calculated member and handle
   the logic in the WITH statement.  Today’s challenge was different because I was
   not able to control what calculated members are passed from Panorama to Analysis Services. 
   Instead, I needed to work through the ‘WHERE’ clause to slice my data.  <br /><br />
   Anyways, I don’t know if I’ll ever need to use it in the future, but it’s nice to
   know that this functionality exists.  Below is a sample MDX statement that uses
   a conditional statement in the ‘WHERE’ clause.  This sample provides little value
   except to illustrate that you can indeed use conditional statements in ‘WHERE’ clauses.<br /><br />
   SELECT [Measures].[Internet Total Product Cost] ON 0,<br />
   [Sales Reason].[Sales Reasons].Members ON 1<br />
   FROM [Adventure Works]<br />
   WHERE (IIF([Sales Territory].[Sales Territory].[Sales Territory Country].[Australia].Parent.Name
   = “Pacific”, [Sales Territory].[Sales Territory], [Sales Territory].[Sales Territory].[Sales
   Territory Country].[Australia]))<br /></font>
        <br />
        <img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=03d2bee8-3288-4e5c-8793-a7bb47f2f073" />
      </body>
      <title>Conditional Statements in the MDX WHERE Clause</title>
      <guid>http://www.mrachek.com/PermaLink,guid,03d2bee8-3288-4e5c-8793-a7bb47f2f073.aspx</guid>
      <link>http://www.mrachek.com/PermaLink,guid,03d2bee8-3288-4e5c-8793-a7bb47f2f073.aspx</link>
      <pubDate>Thu, 26 Jan 2006 06:46:50 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;font face=Verdana size=2&gt;I’ve written thousands of lines of MDX code over the years
to support web reporting applications and today I discovered something new.&amp;nbsp;
Although it probably isn’t new to MDX, it was new to me because I never needed it
until today.&amp;nbsp; I was targeting the ascendants of a member and based on the parent
of the member, I needed to alter the slice of the cube.&lt;br&gt;
&lt;br&gt;
Typically, when I use conditional statements, I create calculated member and handle
the logic in the WITH statement.&amp;nbsp; Today’s challenge was different because I was
not able to control what calculated members are passed from Panorama to Analysis Services.&amp;nbsp;
Instead, I needed to work through the ‘WHERE’ clause to slice my data. &amp;nbsp;&lt;br&gt;
&lt;br&gt;
Anyways, I don’t know if I’ll ever need to use it in the future, but it’s nice to
know that this functionality exists.&amp;nbsp; Below is a sample MDX statement that uses
a conditional statement in the ‘WHERE’ clause.&amp;nbsp; This sample provides little value
except to illustrate that you can indeed use conditional statements in ‘WHERE’ clauses.&lt;br&gt;
&lt;br&gt;
SELECT [Measures].[Internet Total Product Cost] ON 0,&lt;br&gt;
[Sales Reason].[Sales Reasons].Members ON 1&lt;br&gt;
FROM [Adventure Works]&lt;br&gt;
WHERE (IIF([Sales Territory].[Sales Territory].[Sales Territory Country].[Australia].Parent.Name
= “Pacific”, [Sales Territory].[Sales Territory], [Sales Territory].[Sales Territory].[Sales
Territory Country].[Australia]))&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.mrachek.com/aggbug.ashx?id=03d2bee8-3288-4e5c-8793-a7bb47f2f073" /&gt;</description>
      <comments>http://www.mrachek.com/CommentView,guid,03d2bee8-3288-4e5c-8793-a7bb47f2f073.aspx</comments>
      <category>Analysis Services;Analysis Services/MDX</category>
    </item>
  </channel>
</rss>