<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Shashi&#039;s Blog</title>
	<atom:link href="http://skuppa.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://skuppa.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 04 Aug 2010 20:56:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='skuppa.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Shashi&#039;s Blog</title>
		<link>http://skuppa.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://skuppa.wordpress.com/osd.xml" title="Shashi&#039;s Blog" />
	<atom:link rel='hub' href='http://skuppa.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Removing duplicates from SQL Server 2005</title>
		<link>http://skuppa.wordpress.com/2010/08/04/removing-duplicates-from-sql-server-2005/</link>
		<comments>http://skuppa.wordpress.com/2010/08/04/removing-duplicates-from-sql-server-2005/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 20:56:40 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=142</guid>
		<description><![CDATA[I am currently working on project that is required to remove duplicate entries from Facility table, duplicates are based on address and city being the same. The duplicates would be recorded into an excel file for further examination and later &#8230; <a href="http://skuppa.wordpress.com/2010/08/04/removing-duplicates-from-sql-server-2005/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=142&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am currently working on project that is required to remove duplicate entries from Facility table, duplicates are based on address and city being the same. The duplicates would be recorded into an excel file for further examination and later expiry. I was looking for way to rank the entries and ran into this article <a href="http://blogs.techrepublic.com.com/datacenter/?p=420">Removing Duplicate Records using SQL Server 2005</a> that helped me write my query as follows.</p>
<p><span style="font-family:Courier New;font-size:x-small;"><br />
<span style="color:blue;">CREATE</span> <span style="color:blue;">TABLE</span> <span style="color:maroon;">#orgexpire</span></span></p>
<p><span style="color:maroon;">(</span></p>
<p><span style="color:maroon;">organizationuid</span> <span style="color:black;"><em>BIGINT</em></span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">expirationrule</span> <span style="color:black;"><em>VARCHAR</em></span> <span style="color:maroon;">(</span><span style="color:black;">100</span><span style="color:maroon;">)</span></p>
<p><span style="color:maroon;">)</span><span style="color:silver;">;</span></p>
<p><span style="color:blue;">WITH</span> <span style="color:maroon;">cte</span><span style="color:maroon;">(</span><span style="color:maroon;">labid</span><span style="color:silver;">,</span> <span style="color:maroon;">labname</span><span style="color:silver;">,</span> <span style="color:maroon;">cliacode</span><span style="color:silver;">,</span> <span style="color:maroon;">address</span><span style="color:silver;">,</span> <span style="color:maroon;">state</span><span style="color:silver;">,</span> <span style="color:maroon;">city</span><span style="color:maroon;">)</span></p>
<p><span style="color:blue;">AS</span> <span style="color:maroon;">(</span><span style="color:blue;">SELECT</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">organizationuid</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">organizationnm</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">cliacode</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">streetaddr</span> <span style="color:silver;">=</span> <span style="color:blue;">CASE</span></p>
<p><span style="color:blue;">WHEN</span> <span style="color:fuchsia;"><em>Len</em></span><span style="color:maroon;">(</span><span style="color:#ff0080;"><strong>Isnull</strong></span><span style="color:maroon;">(</span><span style="color:maroon;">pl</span><span style="color:silver;">.</span><span style="color:maroon;">streetaddr1</span><span style="color:silver;">,</span> <span style="color:red;">&#8221;</span><span style="color:maroon;">)</span><span style="color:maroon;">)</span> <span style="color:silver;">&gt;</span> <span style="color:black;">0</span> <span style="color:blue;">THEN</span></p>
<p><span style="color:maroon;">pl</span><span style="color:silver;">.</span><span style="color:maroon;">streetaddr1</span></p>
<p><span style="color:blue;">ELSE</span> <span style="color:maroon;">pl</span><span style="color:silver;">.</span><span style="color:maroon;">streetaddr2</span></p>
<p><span style="color:blue;">END</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">pl</span><span style="color:silver;">.</span><span style="color:maroon;">statecd</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">pl</span><span style="color:silver;">.</span><span style="color:maroon;">citydesc</span></p>
<p><span style="color:blue;">FROM</span> <span style="color:maroon;">dbo</span><span style="color:silver;">.</span><span style="color:maroon;">organization</span> <span style="color:maroon;">o</span></p>
<p><span style="color:blue;">INNER</span> <span style="color:blue;">JOIN</span> <span style="color:maroon;">dbo</span><span style="color:silver;">.</span><span style="color:maroon;">entity</span> <span style="color:maroon;">e</span></p>
<p><span style="color:blue;">ON</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">organizationuid</span> <span style="color:silver;">=</span> <span style="color:maroon;">e</span><span style="color:silver;">.</span><span style="color:maroon;">entityuid</span></p>
<p><span style="color:blue;">LEFT</span> <span style="color:blue;">OUTER</span> <span style="color:blue;">JOIN</span> <span style="color:maroon;">dbo</span><span style="color:silver;">.</span><span style="color:maroon;">entitylocatorparticipation</span> <span style="color:maroon;">elp</span></p>
<p><span style="color:blue;">ON</span> <span style="color:maroon;">elp</span><span style="color:silver;">.</span><span style="color:maroon;">entityuid</span> <span style="color:silver;">=</span> <span style="color:maroon;">e</span><span style="color:silver;">.</span><span style="color:maroon;">entityuid</span></p>
<p><span style="color:blue;">LEFT</span> <span style="color:blue;">OUTER</span> <span style="color:blue;">JOIN</span> <span style="color:maroon;">dbo</span><span style="color:silver;">.</span><span style="color:maroon;">postallocator</span> <span style="color:maroon;">pl</span></p>
<p><span style="color:blue;">ON</span> <span style="color:maroon;">elp</span><span style="color:silver;">.</span><span style="color:maroon;">locatoruid</span> <span style="color:silver;">=</span> <span style="color:maroon;">pl</span><span style="color:silver;">.</span><span style="color:maroon;">postallocatoruid</span></p>
<p><span style="color:blue;">WHERE</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">cd</span> <span style="color:silver;">=</span> <span style="color:red;">&#8216;LAB&#8217;</span> <span style="color:green;"><em>&#8211; facility type is lab</em></span></p>
<p><span style="color:blue;">AND</span> <span style="color:maroon;">(</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">totime</span> <span style="color:blue;">IS</span> <span style="color:blue;">NULL</span></p>
<p><span style="color:blue;">OR</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">totime</span> <span style="color:silver;">&gt;</span> <span style="color:fuchsia;"><em>Getdate</em></span><span style="color:maroon;">(</span><span style="color:maroon;">)</span> <span style="color:maroon;">)</span> <span style="color:green;"><em>&#8211; Lab is not already expired</em></span></p>
<p><span style="color:blue;">AND</span> <span style="color:maroon;">(</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">cliacode</span> <span style="color:blue;">IS</span> <span style="color:blue;">NULL</span></p>
<p><span style="color:blue;">OR</span> <span style="color:fuchsia;"><em>Len</em></span><span style="color:maroon;">(</span><span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">cliacode</span><span style="color:maroon;">)</span> <span style="color:silver;">=</span> <span style="color:black;">0</span> <span style="color:maroon;">)</span> <span style="color:green;"><em>&#8211; There is no Clia code</em></span></p>
<p><span style="color:blue;">AND</span> <span style="color:maroon;">o</span><span style="color:silver;">.</span><span style="color:maroon;">addtime</span> <span style="color:silver;">&lt;=</span> <span style="color:red;">&#8217;02/20/2009&#8242;</span></p>
<p><span style="color:green;"><em>&#8211; Lab was not added after STD migration on 2/20/2009</em></span></p>
<p><span style="color:maroon;">)</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">dupcte</span><span style="color:maroon;">(</span><span style="color:maroon;">labid</span><span style="color:silver;">,</span> <span style="color:maroon;">address</span><span style="color:silver;">,</span> <span style="color:maroon;">city</span><span style="color:silver;">,</span> <span style="color:maroon;">ranking</span><span style="color:maroon;">)</span></p>
<p><span style="color:blue;">AS</span> <span style="color:maroon;">(</span><span style="color:blue;">SELECT</span> <span style="color:maroon;">labid</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">address</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">city</span><span style="color:silver;">,</span></p>
<p><span style="color:maroon;">ranking</span> <span style="color:silver;">=</span> <span style="color:#ff0080;"><strong>Dense_rank</strong></span><span style="color:maroon;">(</span><span style="color:maroon;">)</span> <span style="color:blue;">OVER</span> <span style="color:maroon;">(</span><span style="color:blue;">PARTITION</span> <span style="color:blue;">BY</span> <span style="color:maroon;">address</span><span style="color:silver;">,</span> <span style="color:maroon;">city</span> <span style="color:blue;">ORDER</span> <span style="color:blue;">BY</span></p>
<p><span style="color:maroon;">(</span></p>
<p><span style="color:blue;">SELECT</span></p>
<p><span style="color:fuchsia;"><em>COUNT</em></span><span style="color:maroon;">(</span><span style="color:maroon;">p</span><span style="color:silver;">.</span><span style="color:maroon;">actuid</span><span style="color:maroon;">)</span></p>
<p><span style="color:blue;">FROM</span> <span style="color:maroon;">dbo</span><span style="color:silver;">.</span><span style="color:maroon;">participation</span> <span style="color:maroon;">p</span> <span style="color:blue;">WHERE</span> <span style="color:maroon;">p</span><span style="color:silver;">.</span><span style="color:maroon;">subjectentityuid</span> <span style="color:silver;">=</span></p>
<p><span style="color:maroon;">labid</span><span style="color:maroon;">)</span></p>
<p><span style="color:blue;">DESC</span><span style="color:maroon;">)</span></p>
<p><span style="color:blue;">FROM</span> <span style="color:maroon;">cte</span></p>
<p><span style="color:blue;">WHERE</span> <span style="color:maroon;">address</span> <span style="color:blue;">IS</span> <span style="color:blue;">NOT</span> <span style="color:blue;">NULL</span></p>
<p><span style="color:blue;">AND</span> <span style="color:maroon;">city</span> <span style="color:blue;">IS</span> <span style="color:blue;">NOT</span> <span style="color:blue;">NULL</span><span style="color:maroon;">)</span></p>
<p><span style="color:blue;">INSERT</span> <span style="color:blue;">INTO</span> <span style="color:maroon;">#orgexpire</span></p>
<p><span style="color:blue;">SELECT</span> <span style="color:maroon;">labid</span><span style="color:silver;">,</span></p>
<p><span style="color:red;">&#8217;6121-1 F002&#8242;</span></p>
<p><span style="color:blue;">FROM</span> <span style="color:maroon;">dupcte</span></p>
<p><span style="color:blue;">WHERE</span> <span style="color:maroon;">ranking</span> <span style="color:silver;">&gt;</span> <span style="color:black;">1</span></p>
<p><span style="color:blue;">SELECT</span> <span style="color:silver;"> * </span><span style="color:blue;">FROM</span> <span style="color:maroon;">#orgexpire</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=142&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/08/04/removing-duplicates-from-sql-server-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Server 2005 Query XML data stored in ntext field</title>
		<link>http://skuppa.wordpress.com/2010/06/17/sql-server-2005-query-xml-data-stored-in-ntext-field/</link>
		<comments>http://skuppa.wordpress.com/2010/06/17/sql-server-2005-query-xml-data-stored-in-ntext-field/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 20:23:23 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=133</guid>
		<description><![CDATA[We moved from SQL 2000 to SQL 2005 so we are still storing the XML data in ntext field. Finally I need to mine the XML content and I thought cool let me write some XPath queries and be done &#8230; <a href="http://skuppa.wordpress.com/2010/06/17/sql-server-2005-query-xml-data-stored-in-ntext-field/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=133&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We moved from SQL 2000 to SQL 2005 so we are still storing the XML data in ntext field. Finally I need to mine the XML content and I thought cool let me write some XPath queries and be done with it. As is the case with everything new there was a slight learning curve and I am trying to document the process.</p>
<p>First thing I need to do was cast my ntext data into xml. Simple!<br />
<code><br />
DECLARE @xmlData AS xml<br />
SELECT @xmlData = CAST(messagexml AS XML) FROM dbo.H2O_Message WHERE MessageID = 80467</code></p>
<p>The query editor responded with the following SQL error message<br />
<code><em>SQL Server Database Error: XML parsing: line 1, character 38, unable to switch the encoding</em></code></p>
<p>After some googling it turns out that SQL server works with UTF-16 and has issues with UTF-8 XML document. No problem, lets switch XML header tag. Well, the field is ntext so I need to cast the field to nvarchar(max) then replace the utf-8 to utf-16<br />
<code><br />
DECLARE @xmlData AS xml<br />
SELECT @xmlData = CAST( REPLACE(CAST(messagexml AS nvarchar(MAX)),'utf-8', 'utf-16') AS XML) FROM dbo.H2O_Message WHERE MessageID = 80467</code></p>
<p>Wonderful all I had to do then was query the Xpath I needed. There are various examples on the web on to do this so  I would not go into details here.</p>
<p>Here is the final SQL statement to get MessageControlID element text from my xml document stored as ntext field in SQL server 2005 Database.<br />
<code><br />
DECLARE @xmlData AS xml<br />
SELECT @xmlData = CAST( REPLACE(CAST(messagexml AS nvarchar(MAX)),'utf-8', 'utf-16') AS XML) FROM dbo.H2O_Message WHERE MessageID = 80467</code></p>
<p><code> </code></p>
<p><code>SELECT msg.query('data(/ObservationMessage/MessageControlID)') FROM (SELECT  @xmlData msg) tbl</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=133&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/06/17/sql-server-2005-query-xml-data-stored-in-ntext-field/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>C# Delegate Covariance and Contra-variance</title>
		<link>http://skuppa.wordpress.com/2010/05/24/c-delegate-covariance-and-contra-variance/</link>
		<comments>http://skuppa.wordpress.com/2010/05/24/c-delegate-covariance-and-contra-variance/#comments</comments>
		<pubDate>Mon, 24 May 2010 20:15:41 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=130</guid>
		<description><![CDATA[Covariance allows us to have a more derived type as return type Contra-variance allows us to have less derived type as parameter type than what is specified in the delegate. Example: using System; using System.Collections.Generic; public class MyBase { public &#8230; <a href="http://skuppa.wordpress.com/2010/05/24/c-delegate-covariance-and-contra-variance/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=130&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Covariance allows us to have a more derived type as return type<br />
Contra-variance allows us to have less derived type as parameter type than what is specified in the delegate.<br />
Example:<br />
<!-- {\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Consolas;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red100\green49\blue49;\red163\green21\blue21;\red0\green128\blue0;}??\fs20 \cf1 using\cf0  System;\par ??\cf1 using\cf0  System.Collections.Generic;\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 MyBase\par ??\cf0 \{\par ??    \cf1 public\cf0  \cf1 virtual\cf0  \cf1 void\cf0  MyName()\par ??    \{\par ??        \cf4 Console\cf0 .WriteLine(\cf5 "from base"\cf0 );\par ??    \}\par ??\}\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 Derived\cf0  : MyBase\par ??\{\par ??    \cf1 public\cf0  \cf1 override\cf0  \cf1 void\cf0  MyName()\par ??    \{\par ??        \cf4 Console\cf0 .WriteLine(\cf5 "from derived"\cf0 );\par ??    \}\par ??\}\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 MyClass\par ??\cf0 \{\par ??    \cf1 public\cf0  \cf1 delegate\cf0  MyBase Test(Derived d);\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  \cf1 void\cf0  RunSnippet()\par ??    \{\par ??        \cf6 //C# Delegate Covariance and Contra-variance\par ??\cf0         \cf6 //Covariance allows us to have a more derived type as return type\par ??\cf0         \cf6 //Contra-variance allows us to have less derived type as parameter type than what is specified in the delegate.\par ??\cf0         Test t = \cf1 new\cf0  Test(TestFunction);\par ??        MyFunction(t);\par ??\par ??        RL();\par ??    \}\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  \cf1 void\cf0  MyFunction(Test t)\par ??    \{\par ??        \cf6 //WL(t.GetType().ToString());\par ??\cf0         WL(t.GetInvocationList()[0].Method.Name);\par ??    \}\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  Derived TestFunction(MyBase d)\par ??    \{\par ??        d.MyName();\par ??        Derived d2 = \cf1 new\cf0  Derived();\par ??        \cf1 return\cf0  d2;\par ??    \}\par ??\par ??\cf1     #region\cf0  Helper methods\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  \cf1 void\cf0  Main()\par ??    \{\par ??        \cf1 try\par ??\cf0         \{\par ??            RunSnippet();\par ??        \}\par ??        \cf1 catch\cf0  (\cf4 Exception\cf0  e)\par ??        \{\par ??            \cf1 string\cf0  error = \cf1 string\cf0 .Format(\cf5 " -\\nThe following error occurred while executing the snippet:\\n\{0\}\\n -"\cf0 , e.ToString());\par ??            \cf4 Console\cf0 .WriteLine(error);\par ??        \}\par ??        \cf1 finally\par ??\cf0         \{\par ??            \cf4 Console\cf0 .Write(\cf5 "Press any key to continue..."\cf0 );\par ??            \cf4 Console\cf0 .ReadKey();\par ??        \}\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  WL(\cf1 object\cf0  text, \cf1 params\cf0  \cf1 object\cf0 [] args)\par ??    \{\par ??        \cf4 Console\cf0 .WriteLine(text.ToString(), args);\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  RL()\par ??    \{\par ??        \cf4 Console\cf0 .ReadLine();\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  Break()\par ??    \{\par ??        System.Diagnostics.\cf4 Debugger\cf0 .Break();\par ??    \}\par ??\par ??\cf1     #endregion\par ??\cf0 \}} --></p>
<div style="font-family:Consolas;font-size:10pt;color:black;background:white;">
<p style="margin:0;"><span style="color:blue;">using</span> System;</p>
<p style="margin:0;"><span style="color:blue;">using</span> System.Collections.Generic;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#643131;">MyBase</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">virtual</span> <span style="color:blue;">void</span> MyName()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.WriteLine(<span style="color:#a31515;">&#8220;from base&#8221;</span>);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#643131;">Derived</span> : MyBase</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> MyName()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.WriteLine(<span style="color:#a31515;">&#8220;from derived&#8221;</span>);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#643131;">MyClass</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">delegate</span> MyBase Test(Derived d);</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> RunSnippet()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:green;">//C# Delegate Covariance and Contra-variance</span></p>
<p style="margin:0;"><span style="color:green;">//Covariance allows us to have a more derived type as return type</span></p>
<p style="margin:0;"><span style="color:green;">//Contra-variance allows us to have less derived type as parameter type than what is specified in the delegate.</span></p>
<p style="margin:0;">Test t = <span style="color:blue;">new</span> Test(TestFunction);</p>
<p style="margin:0;">MyFunction(t);</p>
<p style="margin:0;">
<p style="margin:0;">RL();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> MyFunction(Test t)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:green;">//WL(t.GetType().ToString());</span></p>
<p style="margin:0;">WL(t.GetInvocationList()[0].Method.Name);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> Derived TestFunction(MyBase d)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">d.MyName();</p>
<p style="margin:0;">Derived d2 = <span style="color:blue;">new</span> Derived();</p>
<p style="margin:0;"><span style="color:blue;">return</span> d2;</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;"> #region</span> Helper methods</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> Main()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">try</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;">RunSnippet();</p>
<p style="margin:0;">}</p>
<p style="margin:0;"><span style="color:blue;">catch</span> (<span style="color:#643131;">Exception</span> e)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">string</span> error = <span style="color:blue;">string</span>.Format(<span style="color:#a31515;">&#8220;&#8212;\nThe following error occurred while executing the snippet:\n{0}\n&#8212;&#8221;</span>, e.ToString());</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.WriteLine(error);</p>
<p style="margin:0;">}</p>
<p style="margin:0;"><span style="color:blue;">finally</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.Write(<span style="color:#a31515;">&#8220;Press any key to continue&#8230;&#8221;</span>);</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.ReadKey();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> WL(<span style="color:blue;">object</span> text, <span style="color:blue;">params</span> <span style="color:blue;">object</span>[] args)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.WriteLine(text.ToString(), args);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> RL()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.ReadLine();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> Break()</p>
<p style="margin:0;">{</p>
<p style="margin:0;">System.Diagnostics.<span style="color:#643131;">Debugger</span>.Break();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;"> #endregion</span></p>
<p style="margin:0;">}</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=130&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/05/24/c-delegate-covariance-and-contra-variance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>C# Anonymous Methods and Lambda Expressions</title>
		<link>http://skuppa.wordpress.com/2010/05/24/c-anonymous-methods-and-lambda-expressions/</link>
		<comments>http://skuppa.wordpress.com/2010/05/24/c-anonymous-methods-and-lambda-expressions/#comments</comments>
		<pubDate>Mon, 24 May 2010 17:56:50 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=125</guid>
		<description><![CDATA[In the following example talks about anonymous methods, method group conversions and finally lambda expressions. using System; using System.Collections.Generic; public class CarEventArgs : EventArgs { public string Msg { get; set; } public CarEventArgs(string msg) { Msg = msg; } &#8230; <a href="http://skuppa.wordpress.com/2010/05/24/c-anonymous-methods-and-lambda-expressions/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=125&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Consolas;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red100\green49\blue49;\red163\green21\blue21;\red0\green128\blue0;}??\fs20 \cf1 using\cf0  System;\par ??\cf1 using\cf0  System.Collections.Generic;\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 CarEventArgs\cf0  : \cf4 EventArgs\par ??\cf0 \{\par ??    \cf1 public\cf0  \cf1 string\cf0  Msg \{ \cf1 get\cf0 ; \cf1 set\cf0 ; \}\par ??\par ??    \cf1 public\cf0  CarEventArgs(\cf1 string\cf0  msg)\par ??    \{\par ??        Msg = msg;\par ??    \}\par ??\}\par ??\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 Car\par ??\cf0 \{\par ??    \cf1 private\cf0  \cf1 int\cf0  _speed = 0;\par ??\par ??    \cf1 public\cf0  \cf1 event\cf0  \cf4 EventHandler\cf0 &lt;\cf4 CarEventArgs\cf0 &gt; MyEvent;\par ??\par ??    \cf1 public\cf0  \cf1 void\cf0  Acccelarate(\cf1 int\cf0  speed)\par ??    \{\par ??        _speed += speed;\par ??        \cf1 if\cf0  (MyEvent != \cf1 null\cf0 )\par ??        \{\par ??            MyEvent(\cf1 this\cf0 , \cf1 new\cf0  \cf4 CarEventArgs\cf0 (\cf1 string\cf0 .Format(\cf5 "Current speed \{0\}"\cf0 , _speed)));\par ??        \}\par ??    \}\par ??\}\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 MyClass\par ??\cf0 \{\par ??\par ??\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  \cf1 void\cf0  RunSnippet()\par ??    \{\par ??        \cf4 Car\cf0  c = \cf1 new\cf0  \cf4 Car\cf0 ();\par ??\par ??        \cf6 //traditional event method call.\par ??\cf0         c.MyEvent += \cf1 new\cf0  \cf4 EventHandler\cf0 &lt;\cf4 CarEventArgs\cf0 &gt;(TestMethod);\par ??\par ??        \cf6 //c# method group conversion, let the compiler figure out the delegate type from method signature.\par ??\cf0         c.MyEvent += TestMethod;\par ??\par ??        \cf6 //c# anonymous method   associate delegate directly to block of code statements at the time of event regristration.\par ??\cf0         c.MyEvent += \cf1 delegate\cf0 (\cf1 object\cf0  sender, \cf4 CarEventArgs\cf0  args) \{ WL(\cf5 "from Anonymous method."\cf0  + args.Msg); \};\par ??\par ??        \cf6 //Lamda expression: more consise way of authoring anonymous methods.\par ??\cf0         \cf6 //lamda expression syntax: ArgumentsToProcess =&gt; statementsToProcessThem;\par ??\cf0         c.MyEvent += (s, e) =&gt; \{ WL(\cf5 "lamda "\cf0  + ((\cf4 CarEventArgs\cf0 )e).Msg); \};\par ??\par ??        c.MyEvent += (\cf1 object\cf0  s, \cf4 CarEventArgs\cf0  e) =&gt; \{ WL(\cf5 "lamda with variables declared:"\cf0  + e.Msg); \};\par ??\par ??        c.Acccelarate(10);\par ??        RL();\par ??    \}\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  \cf1 void\cf0  TestMethod(\cf1 object\cf0  sender, \cf4 CarEventArgs\cf0  args)\par ??    \{\par ??        WL(args.Msg);\par ??    \}\par ??\par ??\par ??\cf1     #region\cf0  Helper methods\par ??\par ??    \cf1 public\cf0  \cf1 static\cf0  \cf1 void\cf0  Main()\par ??    \{\par ??        \cf1 try\par ??\cf0         \{\par ??            RunSnippet();\par ??        \}\par ??        \cf1 catch\cf0  (\cf4 Exception\cf0  e)\par ??        \{\par ??            \cf1 string\cf0  error = \cf1 string\cf0 .Format(\cf5 " -\\nThe following error occurred while executing the snippet:\\n\{0\}\\n -"\cf0 , e.ToString());\par ??            \cf4 Console\cf0 .WriteLine(error);\par ??        \}\par ??        \cf1 finally\par ??\cf0         \{\par ??            \cf4 Console\cf0 .Write(\cf5 "Press any key to continue..."\cf0 );\par ??            \cf4 Console\cf0 .ReadKey();\par ??        \}\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  WL(\cf1 object\cf0  text, \cf1 params\cf0  \cf1 object\cf0 [] args)\par ??    \{\par ??        \cf4 Console\cf0 .WriteLine(text.ToString(), args);\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  RL()\par ??    \{\par ??        \cf4 Console\cf0 .ReadLine();\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  Break()\par ??    \{\par ??        System.Diagnostics.\cf4 Debugger\cf0 .Break();\par ??    \}\par ??\par ??\cf1     #endregion\par ??\cf0 \}} --></p>
<div style="font-family:Consolas;font-size:10pt;color:black;background:white;">
<p style="margin:0;">In the following example talks about anonymous methods, method group conversions and finally lambda expressions.</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">using</span> System;</p>
<p style="margin:0;"><span style="color:blue;">using</span> System.Collections.Generic;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#643131;">CarEventArgs</span> : <span style="color:#643131;">EventArgs</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">string</span> Msg { <span style="color:blue;">get</span>; <span style="color:blue;">set</span>; }</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> CarEventArgs(<span style="color:blue;">string</span> msg)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">Msg = msg;</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#643131;">Car</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">int</span> _speed = 0;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">event</span> <span style="color:#643131;">EventHandler</span>&lt;<span style="color:#643131;">CarEventArgs</span>&gt; MyEvent;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">void</span> Acccelarate(<span style="color:blue;">int</span> speed)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">_speed += speed;</p>
<p style="margin:0;"><span style="color:blue;">if</span> (MyEvent != <span style="color:blue;">null</span>)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">MyEvent(<span style="color:blue;">this</span>, <span style="color:blue;">new</span> <span style="color:#643131;">CarEventArgs</span>(<span style="color:blue;">string</span>.Format(<span style="color:#a31515;">&#8220;Current speed {0}&#8221;</span>, _speed)));</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#643131;">MyClass</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;">
<p style="margin:0;">
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> RunSnippet()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Car</span> c = <span style="color:blue;">new</span> <span style="color:#643131;">Car</span>();</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:green;">//traditional event method call.</span></p>
<p style="margin:0;">c.MyEvent += <span style="color:blue;">new</span> <span style="color:#643131;">EventHandler</span>&lt;<span style="color:#643131;">CarEventArgs</span>&gt;(TestMethod);</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:green;">//c# method group conversion, let the compiler figure out the delegate type from method signature.</span></p>
<p style="margin:0;">c.MyEvent += TestMethod;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:green;">//c# anonymous method &#8212; associate delegate directly to block of code statements at the time of event regristration.</span></p>
<p style="margin:0;">c.MyEvent += <span style="color:blue;">delegate</span>(<span style="color:blue;">object</span> sender, <span style="color:#643131;">CarEventArgs</span> args) { WL(<span style="color:#a31515;">&#8220;from Anonymous method.&#8221;</span> + args.Msg); };</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:green;">//Lamda expression: more consise way of authoring anonymous methods.</span></p>
<p style="margin:0;"><span style="color:green;">//lamda expression syntax: ArgumentsToProcess =&gt; statementsToProcessThem;</span></p>
<p style="margin:0;">c.MyEvent += (s, e) =&gt; { WL(<span style="color:#a31515;">&#8220;lamda &#8220;</span> + ((<span style="color:#643131;">CarEventArgs</span>)e).Msg); };</p>
<p style="margin:0;">
<p style="margin:0;">c.MyEvent += (<span style="color:blue;">object</span> s, <span style="color:#643131;">CarEventArgs</span> e) =&gt; { WL(<span style="color:#a31515;">&#8220;lamda with variables declared:&#8221;</span> + e.Msg); };</p>
<p style="margin:0;">
<p style="margin:0;">c.Acccelarate(10);</p>
<p style="margin:0;">RL();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> TestMethod(<span style="color:blue;">object</span> sender, <span style="color:#643131;">CarEventArgs</span> args)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">WL(args.Msg);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;"> #region</span> Helper methods</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> Main()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">try</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;">RunSnippet();</p>
<p style="margin:0;">}</p>
<p style="margin:0;"><span style="color:blue;">catch</span> (<span style="color:#643131;">Exception</span> e)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">string</span> error = <span style="color:blue;">string</span>.Format(<span style="color:#a31515;">&#8220;&#8212;\nThe following error occurred while executing the snippet:\n{0}\n&#8212;&#8221;</span>, e.ToString());</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.WriteLine(error);</p>
<p style="margin:0;">}</p>
<p style="margin:0;"><span style="color:blue;">finally</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.Write(<span style="color:#a31515;">&#8220;Press any key to continue&#8230;&#8221;</span>);</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.ReadKey();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> WL(<span style="color:blue;">object</span> text, <span style="color:blue;">params</span> <span style="color:blue;">object</span>[] args)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.WriteLine(text.ToString(), args);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> RL()</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#643131;">Console</span>.ReadLine();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">private</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> Break()</p>
<p style="margin:0;">{</p>
<p style="margin:0;">System.Diagnostics.<span style="color:#643131;">Debugger</span>.Break();</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;"> #endregion</span></p>
<p style="margin:0;">}</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=125&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/05/24/c-anonymous-methods-and-lambda-expressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>Using the SQL 2005 Pivot Clause</title>
		<link>http://skuppa.wordpress.com/2010/03/19/using-the-sql-2005-pivot-clause-5/</link>
		<comments>http://skuppa.wordpress.com/2010/03/19/using-the-sql-2005-pivot-clause-5/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 20:35:38 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/2010/03/19/using-the-sql-2005-pivot-clause-5/</guid>
		<description><![CDATA[Let&#8217;s say you are querying interview table for the interview id 488 Lets say we are only interested in these 3 disease specific fields Lets get the interview values for the above fields along with the values from the interview &#8230; <a href="http://skuppa.wordpress.com/2010/03/19/using-the-sql-2005-pivot-clause-5/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=122&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">Let&#8217;s say you are querying interview table for the interview id 488<br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql1.png?w=640" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql2.png?w=600" alt="" width="600" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">Lets say we are only interested in these 3 disease specific fields<br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql3.png?w=640" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql4.png?w=640" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">Lets get the interview values for the above fields along with the values from the interview table<br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql5.png?w=649&#038;h=117" alt="" width="649" height="117" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql6.png?w=565&#038;h=108" alt="" width="565" height="108" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">The problem as you can see is that the interview data first 3 columns get repeated. Let&#8217;s use pivot clause to get the information in a single row.<br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">Let&#8217;s create a Common Table Expression query to get all the data for the fields we are interested in from Interview Value table<br />
</span></p>
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;"> <img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql7.png?w=640" alt="" /></span><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">Now lets Pivot Common Table expression table so that we can get an aggregate value like Count, sum, min, max etc., of field value for given field id.<br />
</span></p>
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;"> <img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql8.png?w=703&#038;h=275" alt="" width="703" height="275" /></span><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql9.png?w=640" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">The use of the square brackets [ ] around the column names in both the SELECT and the IN in the pivot clause is required.<br />
</span></p>
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">These are keys, because the pivot operation is treating the values in these columns as column names.<br />
</span></p>
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">Effectively you are grouping field values by two columns InterviewID and FieldID, then pivoting field id ie., you are treating the row values of field id as column names.<br />
</span></p>
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">All we need to do now is to join our pivot to the interview table to get the required result.<br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql10.png?w=661&#038;h=327" alt="" width="661" height="327" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><img src="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql11.png?w=1046&#038;h=70" alt="" width="1046" height="70" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">
<p style="margin-left:1pt;"><span style="font-family:Trebuchet MS;font-size:10pt;">That&#8217;s all folks!<br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=122&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/03/19/using-the-sql-2005-pivot-clause-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql1.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql2.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql3.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql4.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql5.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql6.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql7.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql8.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql9.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql10.png" medium="image" />

		<media:content url="http://skuppa.files.wordpress.com/2010/03/031910_2036_usingthesql11.png" medium="image" />
	</item>
		<item>
		<title>using Enums as data source for a drop down list box in asp.net</title>
		<link>http://skuppa.wordpress.com/2010/03/03/using-enums-as-data-source-for-a-drop-down-list-box-in-asp-net/</link>
		<comments>http://skuppa.wordpress.com/2010/03/03/using-enums-as-data-source-for-a-drop-down-list-box-in-asp-net/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 15:54:04 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=40</guid>
		<description><![CDATA[We can discuss the merits of using enums as data sources at a different time. But I needed to use an enum as datasource and wanted to have a space in one of the enum values. The article by Luke &#8230; <a href="http://skuppa.wordpress.com/2010/03/03/using-enums-as-data-source-for-a-drop-down-list-box-in-asp-net/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=40&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We can discuss the merits of using enums as data sources at a different time. But I needed to use an enum as datasource and wanted to have a space in one of the enum values. The <a href="http://blog.spontaneouspublicity.com/2008/01/17/associating-strings-with-enums-in-c/">article</a> by Luke explains how we can go about it. I updated code just a bit to stream line adding the enum as datasource to drop down list control.</p>
<div style="font-family:Trebuchet MS;font-size:10pt;color:black;background:white;">
<p style="margin:0;"><span style="color:blue;">&nbsp;#region</span> Enum Description</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> Gets the enum list.</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;/summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;typeparam name=&#8221;T&#8221;&gt;&lt;/typeparam&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;returns&gt;&lt;/returns&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:#2b91af;">List</span>&lt;<span style="color:blue;">string</span>&gt; GetEnumList&lt;T&gt;()</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">List</span>&lt;<span style="color:blue;">string</span>&gt; enumValues = <span style="color:blue;">new</span> <span style="color:#2b91af;">List</span>&lt;<span style="color:blue;">string</span>&gt;();</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">foreach</span> (T enumVal <span style="color:blue;">in</span> EnumToList&lt;T&gt;())</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; enumValues.Add(GetEnumDescription(enumVal));</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">return</span> enumValues;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> Enums to list.</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;/summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;typeparam name=&#8221;T&#8221;&gt;&lt;/typeparam&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;returns&gt;&lt;/returns&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:#2b91af;">List</span>&lt;T&gt; EnumToList&lt;T&gt;()</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">Type</span> enumType = <span style="color:blue;">typeof</span>(T);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:green;">// Can&#8217;t use generic type constraints on value types,</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:green;">// so have to do check like this</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">if</span> (enumType.BaseType != <span style="color:blue;">typeof</span>(<span style="color:#2b91af;">Enum</span>))</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">throw</span> <span style="color:blue;">new</span> <span style="color:#2b91af;">ArgumentException</span>(<span style="color:#a31515;">&#8220;T must be of type System.Enum&#8221;</span>);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">Array</span> enumValArray = <span style="color:#2b91af;">Enum</span>.GetValues(enumType);</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">List</span>&lt;T&gt; enumValList = <span style="color:blue;">new</span> <span style="color:#2b91af;">List</span>&lt;T&gt;(enumValArray.Length);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">foreach</span> (<span style="color:blue;">int</span> val <span style="color:blue;">in</span> enumValArray)</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; enumValList.Add((T)<span style="color:#2b91af;">Enum</span>.Parse(enumType, val.ToString()));</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">return</span> enumValList;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> Gets the enum description.</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;/summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;typeparam name=&#8221;T&#8221;&gt;&lt;/typeparam&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;param name=&#8221;value&#8221;&gt;</span><span style="color:green;">The value.</span><span style="color:gray;">&lt;/param&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;returns&gt;&lt;/returns&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">string</span> GetEnumDescription&lt;T&gt;(T value)</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">Type</span> enumType = <span style="color:blue;">typeof</span>(T);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:green;">// Can&#8217;t use generic type constraints on value types,</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:green;">// so have to do check like this</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">if</span> (enumType.BaseType != <span style="color:blue;">typeof</span>(<span style="color:#2b91af;">Enum</span>))</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">throw</span> <span style="color:blue;">new</span> <span style="color:#2b91af;">ArgumentException</span>(<span style="color:#a31515;">&#8220;T must be of type System.Enum&#8221;</span>);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">FieldInfo</span> fi = value.GetType().GetField(value.ToString());</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">DescriptionAttribute</span>[] attributes =</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (<span style="color:#2b91af;">DescriptionAttribute</span>[])fi.GetCustomAttributes(</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">typeof</span>(<span style="color:#2b91af;">DescriptionAttribute</span>),</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">false</span>);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">if</span> (attributes != <span style="color:blue;">null</span> &amp;&amp; attributes.Length &gt; 0)</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">return</span> attributes[0].Description;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">else</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">return</span> value.ToString();</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> Gets the eum from description.</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;/summary&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;typeparam name=&#8221;T&#8221;&gt;&lt;/typeparam&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;param name=&#8221;value&#8221;&gt;</span><span style="color:green;">The value.</span><span style="color:gray;">&lt;/param&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:gray;">///</span><span style="color:green;"> </span><span style="color:gray;">&lt;returns&gt;&lt;/returns&gt;</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">public</span> <span style="color:blue;">static</span> T GetEumFromDescription&lt;T&gt;(<span style="color:blue;">string</span> value)</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:#2b91af;">Type</span> enumType = <span style="color:blue;">typeof</span>(T);</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">if</span> (enumType.BaseType != <span style="color:blue;">typeof</span>(<span style="color:#2b91af;">Enum</span>))</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">throw</span> <span style="color:blue;">new</span> <span style="color:#2b91af;">ArgumentException</span>(<span style="color:#a31515;">&#8220;T must be of type System.Enum&#8221;</span>);</p>
<p style="margin:0;">&nbsp;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; T returnValue = <span style="color:blue;">default</span>(T);</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">foreach</span> (T enumVal <span style="color:blue;">in</span> EnumToList&lt;T&gt;())</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">if</span> (GetEnumDescription(enumVal) == value)</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; returnValue = enumVal;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">break</span>;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color:blue;">return</span> returnValue;</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;"><span style="color:blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #endregion</span></p>
</div>
<p>Sample Enum</p>
<div style="font-family:Trebuchet MS;font-size:10pt;color:black;background:white;">
<p style="margin:0;"><span style="color:blue;">using</span> System.ComponentModel;</p>
<p style="margin:0;"><span style="color:blue;">namespace</span> TestEnumNameSpace</p>
<p style="margin:0;">{</p>
<p style="margin:0;">&nbsp;&nbsp; <span style="color:blue;">public</span> <span style="color:blue;">enum</span> <span style="color:#2b91af;">AgentDrugResult</span></p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; {</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Intermediate,</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color:#2b91af;">Description</span>(<span style="color:#a31515;">"Not Done"</span>)]</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; NotDone,</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Resistant,</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Susceptible,</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Unknown,</p>
<p style="margin:0;">&nbsp;&nbsp;&nbsp; }</p>
<p style="margin:0;">}</p>
</div>
<p>Call to attach the sample enum as datasource</p>
<div style="font-family:Trebuchet MS;font-size:10pt;color:black;background:white;">
<p style="margin:0;">&nbsp;ddl.DataSource = GetEnumList&lt;<span style="color:#2b91af;">AgentDrugResult</span>&gt;();</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=40&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/03/03/using-enums-as-data-source-for-a-drop-down-list-box-in-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>Add Column with a check on acceptable range of values</title>
		<link>http://skuppa.wordpress.com/2010/02/16/add-column-with-a-check-on-acceptable-range-of-values/</link>
		<comments>http://skuppa.wordpress.com/2010/02/16/add-column-with-a-check-on-acceptable-range-of-values/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:31:39 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=37</guid>
		<description><![CDATA[Here is the code to add a new column to an existing table with a check on range. The following column only allows values of 0,1 or 2. IF NOT EXISTS (SELECT c.name FROM dbo.sysobjects s INNER JOIN dbo.syscolumns c &#8230; <a href="http://skuppa.wordpress.com/2010/02/16/add-column-with-a-check-on-acceptable-range-of-values/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=37&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is the code to add a new column to an existing table with a check on range. The following column only allows values of 0,1 or 2.</p>
<p><code><br />
IF NOT EXISTS (SELECT c.name FROM dbo.sysobjects s<br />
	INNER JOIN dbo.syscolumns c ON s.id = c.id<br />
	WHERE s.id = object_id(N'[dbo].[H2O_ResultMap]') AND c.name = 'ResultTypeFlag')<br />
BEGIN<br />
	ALTER  TABLE dbo.H2O_ResultMap ADD  ResultTypeFlag INT NOT NULL<br />
	, CONSTRAINT df_ResultMap_ResultTypeFlag DEFAULT 0 FOR ResultTypeFlag<br />
	, CONSTRAINT chk_ResultMap_ResultTypeRange CHECK (ResultTypeFlag &gt;=0 AND ResultTypeFlag &lt;=2)<br />
END<br />
GO</p>
<p></code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=37&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/02/16/add-column-with-a-check-on-acceptable-range-of-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>Dropping unnamed default constraints</title>
		<link>http://skuppa.wordpress.com/2010/02/11/working-with-default-constraints/</link>
		<comments>http://skuppa.wordpress.com/2010/02/11/working-with-default-constraints/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 19:04:23 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=32</guid>
		<description><![CDATA[Ron Talmage article on Default constraints explains why we should always name our default constraints. In case you created a table with unnamed default constraint then SQL server automatically assigns one for you, scripting to drop that column would be &#8230; <a href="http://skuppa.wordpress.com/2010/02/11/working-with-default-constraints/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=32&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ron Talmage article on <a href="http://msdn.microsoft.com/en-us/library/aa175912%28SQL.80%29.aspx">Default constraints</a> explains why we should always name our default constraints. In case you created a table with unnamed default constraint then SQL server automatically assigns one for you, scripting to drop that column would be a headache as you don&#8217;t have the default constraint name to drop. The following code finds the drops the constraint.<br />
<code><br />
DECLARE @defname VARCHAR(100), @cmd VARCHAR(1000)<br />
SET @defname =<br />
(<br />
SELECT name<br />
FROM sysobjects so JOIN sysconstraints sc ON so.id = sc.constid<br />
WHERE object_name(so.parent_obj) = 'H2O_TestMap'  AND so.xtype = 'D'<br />
AND sc.colid = (SELECT colid FROM syscolumns WHERE id = object_id('dbo.H2O_TestMap') AND name = 'AntimicrobialFlag')<br />
)<br />
SET @cmd = 'ALTER TABLE dbo.H2O_TestMap DROP CONSTRAINT ' + @defname<br />
EXEC(@cmd)<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=32&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/02/11/working-with-default-constraints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>WCF service Hosted on IIS in Windows 2003 needs write access to windows temp directory</title>
		<link>http://skuppa.wordpress.com/2010/02/02/wcf-service-in-iis-needs-write-access-to-windows-temp-directory/</link>
		<comments>http://skuppa.wordpress.com/2010/02/02/wcf-service-in-iis-needs-write-access-to-windows-temp-directory/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 20:25:19 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=25</guid>
		<description><![CDATA[I migrated my WCF services to Prod windows 2003 box and started getting the following error. Error: Cannot import wsdl:portTypeDetail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporterError: Schema with target namespace 'http://www.odh.ohio.gov/ELR2/contract' could not be found &#8230; <a href="http://skuppa.wordpress.com/2010/02/02/wcf-service-in-iis-needs-write-access-to-windows-temp-directory/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=25&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I migrated my WCF services to Prod windows 2003 box and started getting the following error.<br />
<code><br />
Error: Cannot import wsdl:portTypeDetail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporterError: Schema with target namespace 'http://www.odh.ohio.gov/ELR2/contract' could not be found<br />
</code><br />
After initially being perplexed at what could have gone wrong and frantically searching for resolution on google found this <a href="http://merill.net/2008/04/wcf-add-service-reference-gotcha-with-windows-server/">blog post.</a></p>
<p>Resolution to the bug, provide write access on  C:\Windows\Temp to the App-Pool user.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=25&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/02/02/wcf-service-in-iis-needs-write-access-to-windows-temp-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL 2005 drop unique constraint</title>
		<link>http://skuppa.wordpress.com/2010/02/02/sql-2005-drop-unique-constraint/</link>
		<comments>http://skuppa.wordpress.com/2010/02/02/sql-2005-drop-unique-constraint/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:19:04 +0000</pubDate>
		<dc:creator>Shashi Kuppa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://skuppa.wordpress.com/?p=18</guid>
		<description><![CDATA[I just realized that we can not use drop constraint to drop a unique constraint on a table. Since unique constraint is implemented as index we need to drop the index. IF EXISTS (SELECT name FROM sys.indexes WHERE name = &#8230; <a href="http://skuppa.wordpress.com/2010/02/02/sql-2005-drop-unique-constraint/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=18&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just realized that we can not use drop constraint to drop a unique constraint on a table. Since unique constraint is implemented as index we need to drop the index.</p>
<p><code><br />
IF EXISTS (SELECT name FROM sys.indexes WHERE name = N'unq_MessageDiseaseHold')<br />
BEGIN<br />
DROP INDEX unq_MessageDiseaseHold ON dbo.H2O_MessageDiseaseHold<br />
END<br />
GO<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/skuppa.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/skuppa.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/skuppa.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/skuppa.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/skuppa.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/skuppa.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/skuppa.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/skuppa.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=skuppa.wordpress.com&amp;blog=11729412&amp;post=18&amp;subd=skuppa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://skuppa.wordpress.com/2010/02/02/sql-2005-drop-unique-constraint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c036220e175f43a083b67953d17348f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">skuppa</media:title>
		</media:content>
	</item>
	</channel>
</rss>
