<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>olivier pieri's WebLog</title><link>http://blogs.msdn.com/olivier_pieri/default.aspx</link><description>SQL, SQL Server, ADO.NET and other data topics</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Run SSIS Package programatically</title><link>http://blogs.msdn.com/olivier_pieri/archive/2007/05/10/run-ssis-package-programatically.aspx</link><pubDate>Thu, 10 May 2007 10:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2519309</guid><dc:creator>olivier pieri</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/2519309.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=2519309</wfw:commentRss><description>&lt;P&gt;here is a small sample that show how to run an existing package from a .Net program.&lt;/P&gt;
&lt;P&gt;This sample show how to replace target and source connection string and give a value to a package variable.&lt;/P&gt;
&lt;P&gt;It show too how to register package event.&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; Runtime = Microsoft.SqlServer.Dts.Runtime;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PackageEvents&lt;/FONT&gt;&lt;FONT size=2&gt; packageEvents;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;event&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PackageEventEventHandler&lt;/FONT&gt;&lt;FONT size=2&gt; packageEvent = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;event&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PackageProgressEventHandler&lt;/FONT&gt;&lt;FONT size=2&gt; packageProgress = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;packageEvents = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PackageEvents&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;packageEvents.packageEvent += &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PackageEventEventHandler&lt;/FONT&gt;&lt;FONT size=2&gt;(packageEvents_packageEvent);&lt;/P&gt;
&lt;P&gt;packageEvents.packageProgress += &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PackageProgressEventHandler&lt;/FONT&gt;&lt;FONT size=2&gt;(packageEvents_packageProgress);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;FONT size=2&gt; Execute(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; packagePath, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; sourceConnectionString, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; targetConnectionString, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; packageVariable)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;Runtime.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Application&lt;/FONT&gt;&lt;FONT size=2&gt; app = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; Runtime.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Application&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;Runtime.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Package&lt;/FONT&gt;&lt;FONT size=2&gt; package = app.LoadPackage(packagePath, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/P&gt;
&lt;P&gt;package.InteractiveMode = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;// Target is the name of the target connection in the SSIS package&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;package.Connections[&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Target&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;].ConnectionString = targetConnectionString;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;package.Connections[&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Source"&lt;/FONT&gt;&lt;FONT size=2&gt;].ConnectionString = sourceConnectionString;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// The package have a variable, we give it the value&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;package.Variables[&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"myVar"&lt;/FONT&gt;&lt;FONT size=2&gt;].Value = packageVariable;&lt;/P&gt;
&lt;P&gt;Runtime.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DTSExecResult&lt;/FONT&gt;&lt;FONT size=2&gt; executionResult = package.Execute(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, packageEvents, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (executionResult == Microsoft.SqlServer.Dts.Runtime.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;DTSExecResult&lt;/FONT&gt;&lt;FONT size=2&gt;.Failure)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; packageEvents_packageProgress(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; percentComplete)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (packageProgress != &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;packageProgress(percentComplete);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; packageEvents_packageEvent(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;EventType&lt;/FONT&gt;&lt;FONT size=2&gt; type, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; message)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (packageEvent != &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;packageEvent(type, message);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2519309" width="1" height="1"&gt;</description></item><item><title>XMLA from the Command line</title><link>http://blogs.msdn.com/olivier_pieri/archive/2005/11/23/496185.aspx</link><pubDate>Wed, 23 Nov 2005 13:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:496185</guid><dc:creator>olivier pieri</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/496185.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=496185</wfw:commentRss><description>&lt;P&gt;I was very suprise to don't find a tool to execute XMLA Script from the command line. Then I have decided to write it and it have been simple.&lt;/P&gt;
&lt;P&gt;Let do it !&lt;/P&gt;
&lt;P&gt;1) Use the useful namespace&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; Microsoft.AnalysisServices.AdomdClient;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Data;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.IO;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Xml;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;2) Start by connecting to Analysis Services 2005 using Adomd.&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;strConnectionString = &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"Data Source="&lt;/FONT&gt;&lt;FONT size=2&gt; + ServerID + &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;";"&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;objConnection = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;AdomdConnection&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;objConnection.ConnectionString = strConnectionString;&lt;/P&gt;
&lt;P&gt;objConnection.Open();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;3) And just execute the Command&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#008080 size=2&gt;
&lt;P&gt;AdomdCommand&lt;/FONT&gt;&lt;FONT size=2&gt; objCommand;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlReader&lt;/FONT&gt;&lt;FONT size=2&gt; objReader;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;FileStream&lt;/FONT&gt;&lt;FONT size=2&gt; objStream;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;objCommand = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;AdomdCommand&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;objCommand.Connection = objConnection;&lt;/P&gt;
&lt;P&gt;objStream = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;FileStream&lt;/FONT&gt;&lt;FONT size=2&gt;(objScript, System.IO.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;FileMode&lt;/FONT&gt;&lt;FONT size=2&gt;.Open, System.IO.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;FileAccess&lt;/FONT&gt;&lt;FONT size=2&gt;.Read, System.IO.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;FileShare&lt;/FONT&gt;&lt;FONT size=2&gt;.Read);&lt;/P&gt;
&lt;P&gt;objCommand.CommandStream = objStream;&lt;/P&gt;
&lt;P&gt;objReader = objCommand.ExecuteXmlReader();&lt;/P&gt;
&lt;P&gt;objReader.MoveToContent();&lt;/P&gt;
&lt;P&gt;objReader.Read ();&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Console&lt;/FONT&gt;&lt;FONT size=2&gt;.WriteLine (objReader.ReadInnerXml());&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;That's All !&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=496185" width="1" height="1"&gt;</description></item><item><title>How to get SQL Server 2005 today</title><link>http://blogs.msdn.com/olivier_pieri/archive/2005/07/19/440304.aspx</link><pubDate>Tue, 19 Jul 2005 11:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:440304</guid><dc:creator>olivier pieri</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/440304.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=440304</wfw:commentRss><description>Just go here : &lt;a href="http://www.microsoft.com/technet/previewsqlserver2005/default.mspx"&gt; GO &lt;/a&gt;
&lt;br&gt;

You can get SQL Server 2005 CTP June and Visual Studio 2005 beta 2.

Enjoy :)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=440304" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Create a stored procedure with SMO</title><link>http://blogs.msdn.com/olivier_pieri/archive/2004/12/16/316755.aspx</link><pubDate>Thu, 16 Dec 2004 17:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:316755</guid><dc:creator>olivier pieri</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/316755.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=316755</wfw:commentRss><description>&lt;p&gt;Once you are connected to SQL Server 2005 with a SMO connection, you can start manage and create object. Here is an example on how you can create a stored procedure, we imagine that we have the code of a stored procedure in an embeded resources file.&amp;nbsp;(this sample is written in C# and use a beta version of SQL Server 2005 and of the .Net Framework 2.0).&lt;/p&gt; &lt;p&gt;For this sample you need to use the following name space :&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Smo;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Smo.Agent;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Common;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font size="3"&gt;And here is the code of the sample :&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;StoredProcedure&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; mySP;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; myResourceFile;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;mySP = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;StoredProcedure&lt;/font&gt;&lt;font size="2"&gt;(sqlserver.database, &lt;/font&gt;&lt;font color="#800000" size="2"&gt;"createNewYear"&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;myResourceFile = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#800000" size="2"&gt;"MyAssemblieName.StoredProc.sql"&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#008080" size="2"&gt;StreamReader&lt;/font&gt;&lt;font size="2"&gt; sr = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;StreamReader&lt;/font&gt;&lt;font size="2"&gt;(System.Reflection.&lt;/font&gt;&lt;font color="#008080" size="2"&gt;Assembly&lt;/font&gt;&lt;font size="2"&gt;.GetExecutingAssembly().GetManifestResourceStream(myResourceFile), System.Text.&lt;/font&gt;&lt;font color="#008080" size="2"&gt;Encoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;.Default);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;mySP.TextBody = sr.ReadToEnd();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;mySP.Create();&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=316755" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/SMO/default.aspx">SMO</category></item><item><title>Make an ADO.Net connection when you have an SMO connection</title><link>http://blogs.msdn.com/olivier_pieri/archive/2004/12/07/277511.aspx</link><pubDate>Tue, 07 Dec 2004 19:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:277511</guid><dc:creator>olivier pieri</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/277511.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=277511</wfw:commentRss><description>&lt;p&gt;When you have an SMO connection, it is very easy to make an ADO.Net connection as the connection string is exactly the same. Then you just have to reuse it.&lt;/p&gt; &lt;p&gt;Here is a sample that supposed that the object &lt;strong&gt;ServerConn&lt;/strong&gt; is an SMO ServerConnection.&lt;/p&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;SqlConnection mySQLConnection;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;mySQLConnection = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; SqlConnection(ServerConn.ConnectionString);&lt;/p&gt; &lt;p&gt;mySQLConnection.Open();&lt;/p&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=277511" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/SMO/default.aspx">SMO</category><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/ADO.Net/default.aspx">ADO.Net</category></item><item><title>Create table with SMO</title><link>http://blogs.msdn.com/olivier_pieri/archive/2004/12/07/277501.aspx</link><pubDate>Tue, 07 Dec 2004 18:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:277501</guid><dc:creator>olivier pieri</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/277501.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=277501</wfw:commentRss><description>&lt;p&gt;Once you are connected to SQL Server 2005 with a SMO connection, you can start manage and create object. Here is an example on how you can create a table with a promary key (this sample is written in C# and use a beta version of SQL Server 2005 and of the .Net Framework 2.0).&lt;/p&gt; &lt;p&gt;The Object &lt;strong&gt;sqlserver&lt;/strong&gt;, is the object created after the connection in this post about &lt;A href="http://blogs.msdn.com/olivier_pieri/archive/2004/12/06/275825.aspx"&gt;smo connection&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Of course, In order to connect to SQL Server using SMO you have to reference the following namespace (and the corresponding assembly):&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Smo;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Smo.Agent;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Microsoft.SqlServer.Management.Common;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font&gt;And the code to create the table is :&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt; &lt;p&gt;Table tbl;&lt;/p&gt; &lt;p&gt;Column col;&lt;/p&gt; &lt;p&gt;Index idx;&lt;/p&gt; &lt;p&gt;tbl = &lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Table(sqlserver.database, "MyTable");&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;col = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Column(tbl, "MyCol1", DataType.Int);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;tbl.Columns.Add(col);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;col.Nullable = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font face="Courier New"&gt;// Add the primary key index&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;idx = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Index(tbl, "PK_MyTable");&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;tbl.Indexes.Add(idx);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;idx.IndexedColumns.Add(&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; IndexedColumn(idx, col.Name));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;idx.IsClustered = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;idx.IsUnique = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;idx.IndexKeyType = IndexKeyType.DriPrimaryKey;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;col = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Column(tbl, "myCol2", DataType.SmallInt);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;tbl.Columns.Add(col);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;col.Nullable = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font face="Courier New"&gt;// Create the table&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; &lt;p&gt;tbl.Create();&lt;/p&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=277501" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/SMO/default.aspx">SMO</category></item><item><title>SMO connection</title><link>http://blogs.msdn.com/olivier_pieri/archive/2004/12/06/275825.aspx</link><pubDate>Tue, 07 Dec 2004 04:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:275825</guid><dc:creator>olivier pieri</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/275825.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=275825</wfw:commentRss><description>&lt;p&gt;This sample is written in C# and use SQL Server 2005 beta 2 and a beta version of the .Net Framework 2.0. It show how, with&amp;nbsp;SMO you can Connect to SQL Server 2005&lt;/p&gt; &lt;p&gt;In order to connect to SQL Server using SMO you have to reference the following namespace (and the corresponding assembly):&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Smo;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Microsoft.SqlServer.Management.Smo.Agent;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Microsoft.SqlServer.Management.Common;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font size="3"&gt;1) The following code allow you to connect with the intergrated security :&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;ServerConnection conn;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;Server sqlserver;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;conn = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; ServerConnection();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;conn.ServerInstance = "My Server"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;conn.LoginSecure = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;conn.Connect();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;sqlserver = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Server(conn);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;The object sqlserver is the object on with youe are going to work on each SMO project (to have to list of database for example).&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;2) The following code allow you to connect to SQL Server with the SQL Server authentification :&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;ServerConnection conn;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;Server sqlserver;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;conn = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; ServerConnection();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;conn.ServerInstance = "My Server";&lt;/font&gt;&lt;/p&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; &lt;p&gt;conn.Login = "My login";&lt;/p&gt; &lt;p&gt;conn.Password = "My Password";&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;conn.LoginSecure = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;conn.Connect();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;sqlserver = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Server(conn);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=275825" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/SMO/default.aspx">SMO</category></item><item><title>How to retreive KPI from Analysis Services 2005</title><link>http://blogs.msdn.com/olivier_pieri/archive/2004/12/06/275811.aspx</link><pubDate>Tue, 07 Dec 2004 04:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:275811</guid><dc:creator>olivier pieri</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/275811.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=275811</wfw:commentRss><description>&lt;p&gt;This sample is written in C# and use SQL Server 2005 beta 2 and a beta version of the .Net Framework 2.0. It show how, with ADOMD.Net, you can retreive KPI that are defined in Analysis Services 2005.&lt;/p&gt; &lt;p&gt;1) reference the namespace for ADOMD:&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Microsoft.AnalysisServices.AdomdClient;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font size="3"&gt;2) Build your connection string and connect to Analysis Services&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; myConnectionString;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font face="Courier New" size="2"&gt; &lt;p&gt;AdomdConnection myKPIConnection;&lt;/p&gt; &lt;p&gt;CubeDef myCubeDef;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New"&gt;myConnectionString = "Data Source=" + @myOlapServer + ";Catalog=\"" + @myOlapDatabase + "\"";&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;myKPIConnection = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; AdomdConnection(myConnectionString);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; &lt;p&gt;myKPIConnection.Open();&lt;/p&gt; &lt;p&gt;myCubeDef = myKPIConnection.Cubes[myCube];&lt;/p&gt; &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;3) Build the command and query the Olap database :&lt;/font&gt;&lt;/p&gt; &lt;p&gt;AdomdCommand myKPICommand;&lt;/p&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;foreach&lt;/font&gt;&lt;font size="2"&gt; (Kpi k &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;in&lt;/font&gt;&lt;font size="2"&gt; myCubeDef.Kpis)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; AdomdCommand();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.Connection = myKPIConnection;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;//build the MDX query that return the KPI Value&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.CommandText = "SELECT { strtomember(@Value), strtomember(@Goal), strtomember(@Status), strtomember(@Trend) } ON COLUMNS FROM [" +myCubeDef.Name + "]";&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.Parameters.Clear();&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.Parameters.Add(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; AdomdParameter("Value", "KPIValue([" + k.Name + "])"));&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.Parameters.Add(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; AdomdParameter("Goal", "KPIGoal([" + k.Name + "])"));&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.Parameters.Add(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; AdomdParameter("Status", "KPIStatus([" + k.Name + "])"));&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;myKPICommand.Parameters.Add(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; AdomdParameter("Trend", "KPITrend([" + k.Name + "])"));&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Execute query&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CellSet cellset = myKPICommand.ExecuteCellSet();&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Get values for KPIs&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&lt;/font&gt;&lt;font size="2"&gt; kpiName = k.Name;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&lt;/font&gt;&lt;font size="2"&gt; kpiValue = cellset.Cells[0].FormattedValue;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&lt;/font&gt;&lt;font size="2"&gt; kpiGoal = cellset.Cells[1].FormattedValue;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Display the Result&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;td&amp;gt;&amp;lt;font face=arial size=3&amp;gt;&amp;lt;img src=\"images\\kpi_icon.gif\"&amp;gt;&amp;lt;/td&amp;gt;");&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;td align=right&amp;gt;&amp;lt;font face=arial size=3&amp;gt;" + kpiValue + "&amp;lt;/td&amp;gt;");&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;td align=right&amp;gt;&amp;lt;font face=arial size=3&amp;gt;" + kpiGoal + "&amp;lt;/td&amp;gt;");&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;td&amp;gt;&amp;lt;center&amp;gt;&amp;lt;img src=" + myGraphicFileInfo.GetKpiImage(k.StatusGraphic, Convert.ToDouble(cellset.Cells[2].Value)) + "&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;");&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#9acd32"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//Show the description of the KPI&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/font&gt;&lt;font size="2"&gt; (k.Description != &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt; &amp;amp;&amp;amp; k.Description != "")&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;td&amp;gt;&amp;lt;center&amp;gt;&amp;lt;img src=images\\info.gif title=\"" + k.Description + "\"&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/td&amp;gt;");&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;");&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("&amp;lt;/tr&amp;gt;");&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;catch&lt;/font&gt;&lt;font size="2"&gt; (AdomdErrorResponseException myException)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;4) the query return a status graphic, and a value, now you have to retreive which graphic you should display, this is the goals of the method &lt;font face="Courier New" size="2"&gt;myGraphicFileInfo.GetKpiImage(k.StatusGraphic, Convert.ToDouble(cellset.Cells[2].Value),&lt;font face="Times New Roman" size="3"&gt; and this is the source of this methode :&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; System;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;using&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; System.Collections;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&lt;font face="Courier New"&gt;&amp;lt;summary&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font face="Courier New"&gt; Summary description for GraphicFileInfo&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;&lt;font face="Courier New"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInfo&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInfo()&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeGraphicFileInfo();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; private class to manage the KPI Icon&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;class&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; FileName;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; LastFileNumber;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/font&gt;&lt;font size="2"&gt; GraphicFileInformation(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; fileName, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; LastFileNumber)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;.FileName = fileName;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;.LastFileNumber = LastFileNumber;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Hashtable graphicFiles;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; Initiatlize the hashtable that contains the icons&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; InitializeGraphicFileInfo()&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles = &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; Hashtable();&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Standard Arrow", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Arrow_Beveled", 4));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("XP Arrow", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Arrow_XP", 4));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Status Arrow - Ascending", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Arrow_Status_Asc", 4));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Status Arrow - Descending", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Arrow_Status_Desc", 4));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Traffic Light - Single", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Stoplight_Single", 2));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Traffic Light - Multiple", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Stoplight_Multiple", 2));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Road Signs", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Road", 2));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Gauge - Ascending", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Gauge_Asc", 4));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Gauge - Descending", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Gauge_Desc", 4));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Thermometer", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Therm", 2));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Cylinder", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Cylinder", 2));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;graphicFiles.Add("Smiley Face", &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; GraphicFileInformation("Smiley", 2));&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; Return the icon to display&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;param name="graphicName"&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;Name of the KPI Icon&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/param&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;param name="value"&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;value of the KPI&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/param&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;returns&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;The Icon name to display&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/returns&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; GetKpiImage(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; graphicName, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;double&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;GraphicFileInformation graphicFile = (GraphicFileInformation)graphicFiles[graphicName];&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; fileNumber = (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt;)Math.Round(graphicFile.LastFileNumber * (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; + 1.0) / 2.0);&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; (fileNumber &amp;lt; 0)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;fileNumber = 0;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;else&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; (fileNumber &amp;gt; graphicFile.LastFileNumber)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;fileNumber = graphicFile.LastFileNumber;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; fileName = "Images/" + graphicFile.FileName + fileNumber + ".gif";&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; fileName;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=275811" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/olivier_pieri/archive/tags/ADOMD.Net/default.aspx">ADOMD.Net</category></item><item><title>First Post and presentation</title><link>http://blogs.msdn.com/olivier_pieri/archive/2004/12/03/274225.aspx</link><pubDate>Fri, 03 Dec 2004 18:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:274225</guid><dc:creator>olivier pieri</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/olivier_pieri/comments/274225.aspx</comments><wfw:commentRss>http://blogs.msdn.com/olivier_pieri/commentrss.aspx?PostID=274225</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt; &lt;p&gt;I am Olivier PIERI, a Microsoft consultant specialized in database technologies.&lt;/p&gt; &lt;p&gt;The goals of this blog is&amp;nbsp;discuss about database and Data access technologies offered by Microsoft.Net&amp;nbsp; Framwork such as ADO.Net, ADOMD.Net and SMO.&lt;/p&gt; &lt;p&gt;I will put some sample code about new possibilities offer by the .Net framework 2.0 and SQL Server 2005.&lt;/p&gt; &lt;p&gt;Have fun.&lt;/p&gt; &lt;p&gt;Olivier&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=274225" width="1" height="1"&gt;</description></item></channel></rss>