<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CE8DQ3ozeCp7ImA9WhRXEko.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233</id><updated>2011-12-19T11:04:32.480+05:30</updated><category term="SharePoint" /><category term="PerformancePoint" /><category term="Misc" /><category term="DBA" /><category term="SharePoint Deployment" /><category term="Calculated field" /><category term="Runtime Error" /><category term="SharePoint 2010" /><category term="Data Patterns" /><category term="BI" /><category term="SQL Server" /><category term="SharePoint Programming" /><title>Dev Column</title><subtitle type="html">Dev blog on SharePoint!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://devcolumn.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/DevColumn" /><feedburner:info uri="devcolumn" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CE8DQ3oyeip7ImA9WhRXEko.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-6131683797290248617</id><published>2011-12-19T11:04:00.000+05:30</published><updated>2011-12-19T11:04:32.492+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T11:04:32.492+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint 2010" /><title>Social Ratings and Timer Jobs</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Social Rating is a new feature in SharePoint 2010. It allows users to rate a content on the scale of 1-5. However, if you have noticed, when you rate a content and refresh the page, the rating will disappear or does not reflect. This happens because the tables from where the rating data is fetched are not updated by Timer Jobs.&lt;br /&gt;
&lt;br /&gt;
If you want to see the data immediately, run the following Timer Jobs:&lt;br /&gt;
&lt;br /&gt;
1. Go to Central Administration.&lt;br /&gt;
2. Click on Monitoring.&lt;br /&gt;
3. Click on Review Job Definitions&lt;br /&gt;
4. Look for the following Jobs and run each:&lt;br /&gt;
a. User Profile Service Application - Social Data Maintenance Job &lt;br /&gt;
b. User Profile Service Application - Activity Feed Job &lt;br /&gt;
c. User Profile Service Application - Social Rating Synchronization Job&lt;br /&gt;
&lt;br /&gt;
Now, refresh your application page and Ratings are reflected! You can also change the frequency/schedule of the above Timer Jobs and accordingly Ratings gets reflected automatically.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-6131683797290248617?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/czAARYabYMzubFvod3LY9Ekxt9A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/czAARYabYMzubFvod3LY9Ekxt9A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/czAARYabYMzubFvod3LY9Ekxt9A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/czAARYabYMzubFvod3LY9Ekxt9A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/0h7tdNlyCdc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/6131683797290248617/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2011/12/social-ratings-and-timer-jobs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6131683797290248617?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6131683797290248617?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/0h7tdNlyCdc/social-ratings-and-timer-jobs.html" title="Social Ratings and Timer Jobs" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2011/12/social-ratings-and-timer-jobs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUDQXk_fip7ImA9WxFWFkg.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-7865781288701962487</id><published>2010-06-04T17:13:00.001+05:30</published><updated>2010-06-04T17:21:10.746+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-04T17:21:10.746+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint 2010" /><title>Collection of SharePoint 2010 resources</title><content type="html">Here&amp;nbsp;are the links to some of the resources available for &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010. I'll keep updating this post as and when I come across new resources.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=110318EC-0238-4811-8FC7-EC4399D3C100" target="_blank"&gt;SharePoint 2010: IT Pro Evaluation Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=8C619BEF-008B-4AF2-9687-8A05848FEA97" target="_blank"&gt;&lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010 &lt;span class="goog-spellcheck-word"&gt;Walkthrough&lt;/span&gt; Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/hi-in/library/cc263199(en-us).aspx" target="_blank"&gt;Technical Diagrams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/sharepoint/ff420377.aspx" target="_blank"&gt;&lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010 Advanced Developer Training&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/sharepoint/ff420396.aspx" target="_blank"&gt;&lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010 Advanced IT Pro Training&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=66438e41-5733-448a-bd76-a8052b394fe2" target="_blank"&gt;&lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; Server 2010 capacity management: software boundaries and limits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B9091243-0E17-404D-8853-57309F885722" target="_blank"&gt;Capacity Management and Sizing for &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; Server 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FD686CBB-8401-4F25-B65E-3CE7AA7DBEAB" target="_blank"&gt;Topologies for &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; Server 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FD1EAC86-AD47-4865-9378-80040D08AC55" target="_blank"&gt;&lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; Server 2010 performance and capacity test results and recommendations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=990041E5-0A73-4D2F-895D-2232D1A229F5" target="_blank"&gt;Databases That Support &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010 Products&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-7865781288701962487?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9rVjNenO-04gLZCHmAtYIc1x8Rg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9rVjNenO-04gLZCHmAtYIc1x8Rg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9rVjNenO-04gLZCHmAtYIc1x8Rg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9rVjNenO-04gLZCHmAtYIc1x8Rg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/MJ7JBAT-zp4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/7865781288701962487/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/06/collection-of-sharepoint-2010-resources.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/7865781288701962487?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/7865781288701962487?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/MJ7JBAT-zp4/collection-of-sharepoint-2010-resources.html" title="Collection of SharePoint 2010 resources" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/06/collection-of-sharepoint-2010-resources.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cCSXY9eip7ImA9WxFWFU4.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-7616214659237617424</id><published>2010-06-03T09:54:00.000+05:30</published><updated>2010-06-03T09:54:28.862+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-03T09:54:28.862+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint 2010" /><title>What is SharePoint 2010?</title><content type="html">Here is a &lt;a href="http://www.cmswire.com/cms/enterprise-20/what-is-sharepoint-2010-vision-and-reality-007513.php" target="_blank"&gt;good article on &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010&lt;/a&gt;. It explains briefly about six pillars of &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010. This article should give you an idea on what you can expect from &lt;span class="goog-spellcheck-word"&gt;SharePoint&lt;/span&gt; 2010.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-7616214659237617424?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sCVP_kyKD4Hm4cgAIAT5ANBxMUE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sCVP_kyKD4Hm4cgAIAT5ANBxMUE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sCVP_kyKD4Hm4cgAIAT5ANBxMUE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sCVP_kyKD4Hm4cgAIAT5ANBxMUE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/TuEHzQTYzxM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/7616214659237617424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/06/what-is-sharepoint-2010.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/7616214659237617424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/7616214659237617424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/TuEHzQTYzxM/what-is-sharepoint-2010.html" title="What is SharePoint 2010?" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/06/what-is-sharepoint-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08GQX87fyp7ImA9WxBaE04.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-2827388833161978038</id><published>2010-03-23T14:47:00.000+05:30</published><updated>2010-03-23T14:47:00.107+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-23T14:47:00.107+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Event ID: 6398</title><content type="html">I used to get the following error in event log:&lt;br /&gt;&lt;br /&gt;The Execute method of job definition Microsoft.SharePoint.Search.Administration.SPSearchJobDefinition (ID 80d7c9cb-ece6-4631-9d61-5fa1a0e8596c) threw an exception&lt;br /&gt;&lt;br /&gt;To resolve this, I did the following simple steps:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to Run command in SharePoint Server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Type Services.msc and enter&lt;/li&gt;&lt;li&gt;Locate "Windows SharePoint Services Search"&lt;/li&gt;&lt;li&gt;Right-click on it and select "Stop"&lt;/li&gt;&lt;li&gt;Right-click on it and select "Properties"&lt;/li&gt;&lt;li&gt;Navigate to Log On&lt;/li&gt;&lt;li&gt;Ensure it is running under domain account. Type the correct password&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;li&gt;In Services window, right-click on "Windows SharePoint Services Search" and select "Start"&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Now, the above error message is gone!&lt;br /&gt;&lt;br /&gt;Source: &lt;a href="http://www.eggheadcafe.com/software/aspnet/35142065/sharepoint-event-id-2424.aspx" target="_blank"&gt;eggheadcafe.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-2827388833161978038?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CBSoymLqKSgEv0A12D2I2GAw8X8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CBSoymLqKSgEv0A12D2I2GAw8X8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CBSoymLqKSgEv0A12D2I2GAw8X8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CBSoymLqKSgEv0A12D2I2GAw8X8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/X3i7gumMGRI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/2827388833161978038/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/03/event-id-6398.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2827388833161978038?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2827388833161978038?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/X3i7gumMGRI/event-id-6398.html" title="Event ID: 6398" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/03/event-id-6398.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAMRHw6fCp7ImA9WxBbGUU.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-5110262702338498965</id><published>2010-03-19T14:14:00.003+05:30</published><updated>2010-03-19T14:23:05.214+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-19T14:23:05.214+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>The SSP Timer Job Distribution List Import Job was not run</title><content type="html">I used to get this error very often in Event Log:&lt;br /&gt;&lt;br /&gt;The SSP Timer Job Distribution List Import Job was not run.&lt;br /&gt;Reason: Logon failure: unknown user name or bad password&lt;br /&gt;&lt;br /&gt;After a quick search in net, I found the resolution for this. It is a simple 3 steps:&lt;br /&gt;&lt;br /&gt;Here, "newPassword" is the password which you use it for MOSS account.&lt;br /&gt;&lt;br /&gt;1. On the machine where Central Administration resides, execute the following command:&lt;br /&gt;&lt;br /&gt;stsadm -o updatefarmcredentials -userlogin "domain user" -password "newPassword"&lt;br /&gt;&lt;br /&gt;2. iisreset /noforce (optional)&lt;br /&gt;&lt;br /&gt;3. Execute the following command:&lt;br /&gt;&lt;br /&gt;stsadm -o updateaccountpassword -userlogin "domain user" -password "newpassword"  -noadmin&lt;br /&gt;&lt;br /&gt;It solved the problem!&lt;br /&gt;&lt;br /&gt;You can get more information &lt;a href="http://blogs.msdn.com/joelo/archive/2006/08/22/712945.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-5110262702338498965?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZFP6jihG_Z7gI_dIQG5r2NW-v0k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZFP6jihG_Z7gI_dIQG5r2NW-v0k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZFP6jihG_Z7gI_dIQG5r2NW-v0k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZFP6jihG_Z7gI_dIQG5r2NW-v0k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/OGiDi8wYfrA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/5110262702338498965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/03/ssp-timer-job-distribution-list-import.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5110262702338498965?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5110262702338498965?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/OGiDi8wYfrA/ssp-timer-job-distribution-list-import.html" title="The SSP Timer Job Distribution List Import Job was not run" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/03/ssp-timer-job-distribution-list-import.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQMQn4_fyp7ImA9WxBWEk0.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-6576699973095939803</id><published>2010-02-03T19:44:00.003+05:30</published><updated>2010-02-03T19:59:43.047+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-03T19:59:43.047+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>How to make a List column read-only</title><content type="html">Use the below code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;using (SPSite mySite = new SPSite("siteURL"))&lt;br /&gt;{&lt;br /&gt;    using (SPWeb myWeb = mySite.OpenWeb())&lt;br /&gt;    {&lt;br /&gt;        SPList myList = myWeb.Lists["ListName"];&lt;br /&gt;        SPField myField = myList.Fields["ColName"];&lt;br /&gt;        myField.ReadOnlyField = true;&lt;br /&gt;        myField.Update();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With this code, the column becomes read-only. This column does not appear while adding new item or editing existing item, and also in the list of columns in List settings. But, you can add this column to a view, so, user can see the data. Also, programmatically, you can add/update a value to this column (That means, it is set to read-only from SharePoint UI point of view)&lt;br /&gt;&lt;br /&gt;One use of this approach is when you want to introduce auto-generated number column.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-6576699973095939803?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bwCIfc2D7oVyVoan9H3m_yqyjDA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bwCIfc2D7oVyVoan9H3m_yqyjDA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bwCIfc2D7oVyVoan9H3m_yqyjDA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bwCIfc2D7oVyVoan9H3m_yqyjDA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/35q0u1ojAjY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/6576699973095939803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/02/how-to-make-list-column-read-only.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6576699973095939803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6576699973095939803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/35q0u1ojAjY/how-to-make-list-column-read-only.html" title="How to make a List column read-only" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/02/how-to-make-list-column-read-only.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQCQX85cSp7ImA9WxBXE0w.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-3498617220628843430</id><published>2010-01-24T12:46:00.000+05:30</published><updated>2010-01-24T12:46:00.129+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-24T12:46:00.129+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Renaming Type column in List</title><content type="html">This question was posted in MSDN forum. How to rename Type column in a perticular List. In GUI, there is no option to rename the column. However, we can achieve this programmatically. Let's see the code: &lt;p&gt;&lt;pre&gt;&lt;br /&gt;using (SPSite mySite = new SPSite("http://server/mySite/"))&lt;br /&gt;{&lt;br /&gt;    using (SPWeb myWeb = mySite.OpenWeb())&lt;br /&gt;    {&lt;br /&gt;        SPList myList = myWeb.Lists["ListName"];&lt;br /&gt;        SPField myField = myList.Fields["Type"];&lt;br /&gt;        myField.Title = "MyType";&lt;br /&gt;        myField.Update();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;Here, in the perticular site and the list, get hold of "Type" field. Change the Title to whatever you want and call Update method.&lt;br /&gt;Now, refresh your List view! You can see the column name as "MyType"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-3498617220628843430?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jJJbHCW52VqLEXJBVw0KTBZK23s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jJJbHCW52VqLEXJBVw0KTBZK23s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jJJbHCW52VqLEXJBVw0KTBZK23s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jJJbHCW52VqLEXJBVw0KTBZK23s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/XNty3QKpNxA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/3498617220628843430/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/01/renaming-type-column-in-list.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/3498617220628843430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/3498617220628843430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/XNty3QKpNxA/renaming-type-column-in-list.html" title="Renaming Type column in List" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/01/renaming-type-column-in-list.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMRnYyfyp7ImA9WxBXEUg.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-2324670063501296413</id><published>2010-01-22T16:36:00.004+05:30</published><updated>2010-01-22T16:58:07.897+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-22T16:58:07.897+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Adding Adobe PDF icon to Document Library</title><content type="html">I was playing around with a document library. I uploaded a PDF file to the document library and I noticed that it displayed a white icon next to the PDF item instead of PDF icon which we see in our system. After digging more into this, here is how I got it resolved:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let's do step by step:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the PDF icon from &lt;a href="http://www.adobe.com/misc/linking.html" target="_blank"&gt;Adobe website&lt;/a&gt; (I chose 17x17 icon) &lt;/li&gt;&lt;li&gt;Save the above GIF image into "12\TEMPLATE\IMAGES" folder &lt;/li&gt;&lt;li&gt;Go to "12\TEMPLATE\XML" folder and open DOCICON.XML &lt;/li&gt;&lt;li&gt;Under ByExtension tag, add a Mapping element for PDF GIF image.&lt;/li&gt;&lt;p&gt;Key = "pdf" Value = "pdficon_small.gif"&lt;/p&gt;&lt;li&gt;Save DOCICON.XML file &lt;/li&gt;&lt;li&gt;Do IISRESET &lt;/li&gt;&lt;li&gt;Refresh your page.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Bingo! For all PDF files, it displays the correct PDF icon! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-2324670063501296413?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Johi8SZ3kYOfnQOR9sQL1fVGjVE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Johi8SZ3kYOfnQOR9sQL1fVGjVE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Johi8SZ3kYOfnQOR9sQL1fVGjVE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Johi8SZ3kYOfnQOR9sQL1fVGjVE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/oHXHYFKPd9g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/2324670063501296413/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/01/adding-adobe-pdf-icon-to-document.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2324670063501296413?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2324670063501296413?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/oHXHYFKPd9g/adding-adobe-pdf-icon-to-document.html" title="Adding Adobe PDF icon to Document Library" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/01/adding-adobe-pdf-icon-to-document.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUMQX8zcSp7ImA9WxBQEkw.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-2692510018712466963</id><published>2010-01-11T19:28:00.000+05:30</published><updated>2010-01-11T19:28:00.189+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-11T19:28:00.189+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>How to determine Site Definition programmatically</title><content type="html">We can create different kind of sites such as Team Site, Document Workspace, Blog etc. Once we create such sites, how do we find out what kind of sites we have? I was trying to find this answer programmatically. Here is the simple code to get that.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;using (SPSite mySite = new SPSite("http://mysite"))&lt;br /&gt;{&lt;br /&gt;  foreach (SPWeb myWeb in mySite.AllWebs)&lt;br /&gt;  {&lt;br /&gt;      Console.WriteLine("Name: " + myWeb.Title);&lt;br /&gt;      Console.WriteLine("Template ID: " + myWeb.WebTemplateId.ToString());&lt;br /&gt;      Console.WriteLine("Template Name: " + myWeb.WebTemplate);&lt;br /&gt;      Console.WriteLine("====================");&lt;br /&gt;      myWeb.Dispose();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;In this code, I'm looping through each Web in the site collection and display the Title, Site Definition Template ID, and Site Definition template Name of each Web.&lt;br /&gt;Note that, it is a best practice to dispose SPWeb object explicitly when we are using SPWeb in foreach statement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-2692510018712466963?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zh4dpVpOnkNaU_Rq6aLHUmDQsvo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zh4dpVpOnkNaU_Rq6aLHUmDQsvo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zh4dpVpOnkNaU_Rq6aLHUmDQsvo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zh4dpVpOnkNaU_Rq6aLHUmDQsvo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/_eSJdkIqezY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/2692510018712466963/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/01/how-to-determine-site-definition.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2692510018712466963?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2692510018712466963?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/_eSJdkIqezY/how-to-determine-site-definition.html" title="How to determine Site Definition programmatically" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/01/how-to-determine-site-definition.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ECQX0yfyp7ImA9WxBRGUw.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-3825160456731951552</id><published>2010-01-08T08:31:00.000+05:30</published><updated>2010-01-08T08:31:00.397+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-08T08:31:00.397+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>How to determine if the SPUser is a Manager!</title><content type="html">This question was posted in MSDN forum. I did some research on this and got the logic to get it!&lt;br /&gt;&lt;br /&gt;First, how do we determine if the user is a manager? In AD, every manager will have Direct Reports. This is the assumption I've made to write the logic. Let's see the code:&lt;br /&gt;&lt;br /&gt;1. First you should add a reference to Microsoft.Office.Server&lt;br /&gt;&lt;br /&gt;2. Define the namespace:&lt;br /&gt;&lt;br /&gt;using Microsoft.Office.Server;&lt;br /&gt;using Microsoft.Office.Server.UserProfiles;&lt;br /&gt;&lt;br /&gt;3. Add the below piece of code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;using (SPSite mySite = new SPSite("http://mysite"))&lt;br /&gt;{&lt;br /&gt;   ServerContext context = ServerContext.GetContext(mySite);&lt;br /&gt;   UserProfileManager profileManager = new UserProfileManager(context);&lt;br /&gt;&lt;br /&gt;   using (SPWeb myWeb = mySite.OpenWeb())&lt;br /&gt;   {&lt;br /&gt;       foreach (SPUser user in myWeb.Users)&lt;br /&gt;       {&lt;br /&gt;           UserProfile profile = profileManager.GetUserProfile(user.LoginName);&lt;br /&gt;           if (profile.GetDirectReports().Length &gt; 0)&lt;br /&gt;               //Manager!&lt;br /&gt;           else&lt;br /&gt;               // Not a manager&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here, it checks how many direct reports are there for the SPUser. If it is more than 0, then the person is manager.&lt;br /&gt;&lt;br /&gt;Of course, we have to handle exception as it throws error if any SPUser does not have User Profile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-3825160456731951552?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zEypN7NgoEEhgMdofRrRcv-Y5EU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zEypN7NgoEEhgMdofRrRcv-Y5EU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zEypN7NgoEEhgMdofRrRcv-Y5EU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zEypN7NgoEEhgMdofRrRcv-Y5EU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/ibLfR-huSpY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/3825160456731951552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/01/how-to-determine-if-spuser-is-manager.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/3825160456731951552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/3825160456731951552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/ibLfR-huSpY/how-to-determine-if-spuser-is-manager.html" title="How to determine if the SPUser is a Manager!" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/01/how-to-determine-if-spuser-is-manager.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYEQX85eyp7ImA9WxBRGEk.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-2783103428619055870</id><published>2010-01-07T11:15:00.000+05:30</published><updated>2010-01-07T11:15:00.123+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-07T11:15:00.123+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Accessing User Profile details programmatically</title><content type="html">When you configure User Profiles, you can get a lot of information of the SPUser. These details can also be fetched programmatically. Let me show you how to do that.&lt;br /&gt;&lt;br /&gt;Before we get into the coding, let me first explain you about user profile properties. To check what kind of user profile properties you have in your SSP, open your SSP -&gt; User profile and Properties -&gt; View Profile Properties. Here it displays the list of Profile Properties. You can edit some of the properties and set some conditions like whether user should be able to edit the property or not and so on.&lt;br /&gt;&lt;br /&gt;Let's look at the code:&lt;br /&gt;&lt;br /&gt;1. First you should add a reference to Microsoft.Office.Server&lt;br /&gt;&lt;br /&gt;2. Define the namespace:&lt;br /&gt;&lt;br /&gt;using Microsoft.Office.Server;&lt;br /&gt;using Microsoft.Office.Server.UserProfiles;&lt;br /&gt;&lt;br /&gt;3. The actual code looks like this:&lt;br /&gt;&lt;pre lang="x-c#"&gt;&lt;br /&gt;using (SPSite mySite = new SPSite("my Site URL"))&lt;br /&gt;{&lt;br /&gt;   ServerContext context = ServerContext.GetContext(mySite);&lt;br /&gt;   UserProfileManager profileManager = new UserProfileManager(context);&lt;br /&gt;   foreach (UserProfile profile in profileManager)&lt;br /&gt;   {&lt;br /&gt;       Console.WriteLine(profile["FirstName"].Value.ToString());  //Gets First Name&lt;br /&gt;       Console.WriteLine(profile["Manager"].Value.ToString());   // Gets Manager's Name&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here, I'm trying to get the First Name and user's Manager Name for all the profiles who exists in my SharePoint site. As shown in the above code, you can get the details of the profile using the Property Name (FirstName, Manager).&lt;br /&gt;&lt;br /&gt;When you run the above code, you may get "Access Denied" error. To resolve this, you should ensure that the credential under which the code runs should have proper permissions. To verify that, navigate to SSP home page, under "User Profiles and My Sites", click on "Personalization services permissions". Under Manage Permissions page, ensure that the user (under that credential the above code runs) has "Manage User Profiles" and "Personal Features" rights. And you got that code working!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-2783103428619055870?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dluQ7VLClfEYZIvMX09e_RTa5_k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dluQ7VLClfEYZIvMX09e_RTa5_k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dluQ7VLClfEYZIvMX09e_RTa5_k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dluQ7VLClfEYZIvMX09e_RTa5_k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/uG-DI2ZdsV8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/2783103428619055870/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2010/01/accessing-user-profile-details.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2783103428619055870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/2783103428619055870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/uG-DI2ZdsV8/accessing-user-profile-details.html" title="Accessing User Profile details programmatically" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2010/01/accessing-user-profile-details.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4MRXY5eip7ImA9WxBREks.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-5028733708392111716</id><published>2009-12-31T18:06:00.000+05:30</published><updated>2009-12-31T18:06:24.822+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-31T18:06:24.822+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Limiting number of Attachments per SPListItem</title><content type="html">Here is an example on how we can limit the number of attachments per SPListItem.&lt;br /&gt;&lt;br /&gt;We need to write an event handler on the event "ItemAttachmentAdding". Lets straight away get into the example:&lt;br /&gt;&lt;pre lang="x-c#"&gt;&lt;br /&gt;public override void ItemAttachmentAdding(SPItemEventProperties properties)&lt;br /&gt;{&lt;br /&gt;if (properties.ListTitle == "List Name")&lt;br /&gt; {&lt;br /&gt;     //Do not allow more than one attachment per List Item&lt;br /&gt;     if (properties.ListItem.Attachments.Count &gt;= 1)&lt;br /&gt;     {&lt;br /&gt;         properties.Cancel = true;&lt;br /&gt;         properties.ErrorMessage = "More than one attachment is not allowed per List Item!";&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;For the particular List, it checks for the number of attachments. If the ListItem already contains an attachment (Count = 1), it cancels the event and displays a custom message to the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-5028733708392111716?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6ElMrp7wLbaM-Js6iaFge4IUnDU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ElMrp7wLbaM-Js6iaFge4IUnDU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6ElMrp7wLbaM-Js6iaFge4IUnDU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ElMrp7wLbaM-Js6iaFge4IUnDU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/aGKXoA5xuu8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/5028733708392111716/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/12/limiting-number-of-attachments-per.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5028733708392111716?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5028733708392111716?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/aGKXoA5xuu8/limiting-number-of-attachments-per.html" title="Limiting number of Attachments per SPListItem" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/12/limiting-number-of-attachments-per.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNQn0-fCp7ImA9WxBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-3518359585126859695</id><published>2009-12-28T15:48:00.003+05:30</published><updated>2009-12-28T15:58:13.354+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-28T15:58:13.354+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Instead of custom error message, it displays %1!.512s!</title><content type="html">I was working on some event handlers. I was trying to display a custom error message whenever a condition is met. So my code went like this:&lt;br /&gt;&lt;pre lang="x-c#"&gt;properties.Cancel = true;&lt;br /&gt;properties.ErrorMessage = "Custom Error Message";&lt;/pre&gt;Even though, the event was getting canceled, but to my surprise, the SharePoint always displayed a message as "%1!.512s!". I spent so much of time to figure out what was wrong. Finally, when I did googling, I was taken to this &lt;a href="http://support.microsoft.com/?kbid=931636" target="_blank"&gt;KB article&lt;/a&gt; where it is mentioned that it is a bug! :( Well, it was time to bang my head for some other reason!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-3518359585126859695?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sF6xq-AUzq9H9M9I0kJfamkcdnM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sF6xq-AUzq9H9M9I0kJfamkcdnM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sF6xq-AUzq9H9M9I0kJfamkcdnM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sF6xq-AUzq9H9M9I0kJfamkcdnM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/AYcJ919_LlQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/3518359585126859695/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/12/instead-of-custom-error-message-it.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/3518359585126859695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/3518359585126859695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/AYcJ919_LlQ/instead-of-custom-error-message-it.html" title="Instead of custom error message, it displays %1!.512s!" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/12/instead-of-custom-error-message-it.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEMRX44eSp7ImA9WxBTGEU.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-8468793665125573602</id><published>2009-12-15T16:24:00.003+05:30</published><updated>2009-12-15T18:58:04.031+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T18:58:04.031+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Deployment" /><title>Restore error due to different versions (RTM and SP1)</title><content type="html">One of my friends faced an error during the restoration of Site Collection from one server to another server.&lt;br /&gt;&lt;br /&gt;Error:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;blockquote&gt;Your backup is from a different version of Windows SharePoint Services and cannot be restored to a server running the current version. The backup file should be restored to a server with version '12.0.0.6219' or later.&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;Cause:&lt;br /&gt;The source server was installed with SharePoint SP1 (12.0.0.6219). The destination server was installed with SharePoint RTM version (12.0.0.4518).&lt;br /&gt;&lt;br /&gt;To find out the SharePoint version installed, follow these simple steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open Central Administration&lt;/li&gt;&lt;li&gt;Click on Operations&lt;/li&gt;&lt;li&gt;Click on Servers in Farm&lt;/li&gt;&lt;li&gt;Under "Farm Information", you can see the version.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Resolution:&lt;br /&gt;It is a normal practise to ensure that Dev, and Staging servers are in sync with Production server. In the above case, either the source server should be made same as the destination server or destination server needs to be upgraded to SP1. The former approach is better as it involves less risks and of course, that should be planned before the start of the development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-8468793665125573602?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1hbmLPP9kjYW8N4FPy-NbDBmTWI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1hbmLPP9kjYW8N4FPy-NbDBmTWI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1hbmLPP9kjYW8N4FPy-NbDBmTWI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1hbmLPP9kjYW8N4FPy-NbDBmTWI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/JgzpLevxf04" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/8468793665125573602/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/12/restore-error-due-to-different-versions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/8468793665125573602?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/8468793665125573602?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/JgzpLevxf04/restore-error-due-to-different-versions.html" title="Restore error due to different versions (RTM and SP1)" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/12/restore-error-due-to-different-versions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ACQ3s6fSp7ImA9WxBTFUk.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-1778148427131843110</id><published>2009-12-11T19:10:00.007+05:30</published><updated>2009-12-11T19:59:22.515+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-11T19:59:22.515+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Calculated field" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Calculated field for Date column</title><content type="html">In a SharePoint list or document library, we can create a calculated field. This field becomes handy when we have to display a formatted/calculated value based on the existing column. We often hear the requirements wherein we have to display a formatted value of the Date column.&lt;br /&gt;&lt;br /&gt;Ex., Display only Month value of a date column, display only Month and year part of the date column and so on. Let me show you how we can achieve this:&lt;br /&gt;&lt;br /&gt;For this example, create a list having a date field. When you create a list, by default, SharePoint adds two date fields "Modified" and "Created". So you can use any of these columns or you can create a custom Date field.&lt;br /&gt;&lt;br /&gt;After creating a list, now create a column of type "Calculated". Under the Formula text box, we need to enter the formula which will fetch us the desired value. In my example, I'm going to use a custom date field "StartDate".&lt;br /&gt;&lt;br /&gt;I want to display Month of the StartDate column in 3 characters like Jan, Feb. I'll use the below formula for that:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;=TEXT(StartDate,"mmm")&lt;/span&gt;&lt;/blockquote&gt;Here, second parameter decides the format for the Date.&lt;br /&gt;&lt;br /&gt;Now, I want to extend this to display something like this: Jan 2009, Oct 2010. I'll change the formula as:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;=TEXT(StartDate,"mmm")&amp;amp;" "&amp;amp;YEAR(StartDate)&lt;/span&gt;&lt;/blockquote&gt;Let us see one complex formula. I want to calculate Quarter based on the date: Something like Q1, Q2 etc. The formula for this looks something like this:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;=IF(AND(MONTH(StartDate)&gt;=10,MONTH(StartDate)&lt;=12),"Q3",IF(AND(MONTH(StartDate)&gt;=1,MONTH(StartDate)&lt;=3),"Q4",IF(AND(MONTH(StartDate)&gt;=4,MONTH(StartDate)&lt;=6),"Q1",IF(AND(MONTH(StartDate)&gt;=7,MONTH(StartDate)&lt;=9),"Q2",""))))&lt;/span&gt;&lt;/blockquote&gt; This is a nested IF condition using AND logical condition. The output looks something like this: &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OYuUq-b2AQE/SyJVYrMqwNI/AAAAAAAAAb8/JfSE5mq_bq0/s1600-h/Calculated_Date.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 94px;" src="http://1.bp.blogspot.com/_OYuUq-b2AQE/SyJVYrMqwNI/AAAAAAAAAb8/JfSE5mq_bq0/s400/Calculated_Date.JPG" alt="" id="BLOGGER_PHOTO_ID_5413983584453837010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Similarly, we can use calculated column effectively to display formatted data. In my next post, I'm going to show you some more formulae.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-1778148427131843110?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J_7aLLFT-qFzlspvXf-V_mKmAiU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J_7aLLFT-qFzlspvXf-V_mKmAiU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/J_7aLLFT-qFzlspvXf-V_mKmAiU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J_7aLLFT-qFzlspvXf-V_mKmAiU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/5N-P2qtBYco" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/1778148427131843110/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/12/calculated-field-for-date-column.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/1778148427131843110?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/1778148427131843110?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/5N-P2qtBYco/calculated-field-for-date-column.html" title="Calculated field for Date column" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_OYuUq-b2AQE/SyJVYrMqwNI/AAAAAAAAAb8/JfSE5mq_bq0/s72-c/Calculated_Date.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/12/calculated-field-for-date-column.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MBQHg8fyp7ImA9WxJbE04.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-5984033471617083794</id><published>2009-07-23T12:51:00.005+05:30</published><updated>2009-07-23T13:20:51.677+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-23T13:20:51.677+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>Deleting SPListItem using Web Service</title><content type="html">I was working on adding/deleting list items using web services. When we have to delete the SPListItem from a document library/list, it is mandatory to mention ID of that SPListItem.&lt;br /&gt;&lt;br /&gt;Ex.,&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OYuUq-b2AQE/SmgVVi8FopI/AAAAAAAAAYI/dQhCutv6EjU/s1600-h/ws1.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 53px;" src="http://2.bp.blogspot.com/_OYuUq-b2AQE/SmgVVi8FopI/AAAAAAAAAYI/dQhCutv6EjU/s400/ws1.JPG" alt="" id="BLOGGER_PHOTO_ID_5361558816284844690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I cannot do something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OYuUq-b2AQE/SmgVd62k0ZI/AAAAAAAAAYQ/S7CIUIDpN7g/s1600-h/ws2.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 30px;" src="http://2.bp.blogspot.com/_OYuUq-b2AQE/SmgVd62k0ZI/AAAAAAAAAYQ/S7CIUIDpN7g/s400/ws2.JPG" alt="" id="BLOGGER_PHOTO_ID_5361558960143126930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This way of coding would have helped more:&lt;br /&gt;First, I would like to delete all the list items where City="Bengaluru".&lt;br /&gt;&lt;br /&gt;Second, many a times we do not expose ID column for the user.  So, we would be interested only in those columns which matters.&lt;br /&gt;&lt;br /&gt;As a workaround, I had to use GetListItems to get the SPListItems where City = "Bengaluru" and then for each ID, execute UpdateListItems to delete those SPListItems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-5984033471617083794?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ggq_bylZxyOxdg7DLLAZHGxKGv4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ggq_bylZxyOxdg7DLLAZHGxKGv4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ggq_bylZxyOxdg7DLLAZHGxKGv4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ggq_bylZxyOxdg7DLLAZHGxKGv4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/5IXApFtRKg4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/5984033471617083794/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/07/deleting-splistitem-using-web-service.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5984033471617083794?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5984033471617083794?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/5IXApFtRKg4/deleting-splistitem-using-web-service.html" title="Deleting SPListItem using Web Service" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_OYuUq-b2AQE/SmgVVi8FopI/AAAAAAAAAYI/dQhCutv6EjU/s72-c/ws1.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/07/deleting-splistitem-using-web-service.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YEQXY8fyp7ImA9WxJVGUs.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-4178889654298435958</id><published>2009-07-07T16:26:00.004+05:30</published><updated>2009-07-07T16:41:40.877+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T16:41:40.877+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Programming" /><title>GetDataTable() returns null</title><content type="html">This actually bugged me for sometime! Look at this code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;SPListItemCollection results = list.GetItems (myQuery);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataTable dtResults = results.GetDataTable();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here, I'll execute a CAML (SPQuery) query against a list. From the SPListItemCollection, I'll try to get a DataTable.&lt;br /&gt;&lt;br /&gt;If the SPListItemCollection is empty (i.e., results.Count = 0), the second line assigns null to dtResults. So, if you are referring to dtResults in the following lines, application throws NullReferenceException ("Object reference not set to an instance of an object"). I was expecting that, if there is no list item, the data table should be kind of empty table (no row but it should have schema).&lt;br /&gt;&lt;br /&gt;So the summary is, whenever you are using GetDataTable(), make sure that you handle the null appropriately.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-4178889654298435958?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/beUtu9s67rif6PBniSXl1pugbrc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/beUtu9s67rif6PBniSXl1pugbrc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/beUtu9s67rif6PBniSXl1pugbrc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/beUtu9s67rif6PBniSXl1pugbrc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/DdLaODRRIrI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/4178889654298435958/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/07/getdatatable-returns-null.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/4178889654298435958?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/4178889654298435958?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/DdLaODRRIrI/getdatatable-returns-null.html" title="GetDataTable() returns null" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/07/getdatatable-returns-null.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DQH47cSp7ImA9WxJVFkw.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-5727907345286993106</id><published>2009-07-03T16:05:00.005+05:30</published><updated>2009-07-03T16:31:11.009+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-03T16:31:11.009+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DBA" /><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><title>SharePoint Content Db in Suspect mode</title><content type="html">While I was accessing my SharePoint site, suddenly, it threw the following error:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;blockquote&gt;&lt;i&gt;A connection was successfully established with the server, but then an error  occurred during the login process. (provider: Shared Memory Provider, error: 0 -  No process is on the other end of the pipe.)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial,Helvetica,Geneva,SunSans-Regular,sans-serif;"&gt;&lt;b&gt;Description:  &lt;/b&gt;An unhandled exception occurred during the execution of the current web  request. Please review the stack trace for more information about the error and  where it originated in the code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exception Details:  &lt;/b&gt;System.Data.SqlClient.SqlException: A connection was successfully  established with the server, but then an error occurred during the login  process. (provider: Shared Memory Provider, error: 0 - No process is on the  other end of the pipe.)&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;A few times, I also got the following error:&lt;i&gt;&lt;br /&gt;&lt;blockquote&gt;Cannot open database "MyDb" requested by the login. The login  failed.&lt;br /&gt;Login failed for user 'Domain\Username'.&lt;/blockquote&gt;&lt;br /&gt;&lt;/i&gt;I opened SQL Server Management Studio and got to know that the Content Database was in "Suspect" mode. So, how do we bring this up to Normal mode.?! I did a quick googling and I got this &lt;a href="http://www.codeproject.com/KB/reporting-services/SQL_2005_Suspect_Database.aspx" target="_blank"&gt;article&lt;/a&gt; which shows step by step method to bring the database back to Normal mode. Of course, my content database is back to Normal!&lt;br /&gt;&lt;br /&gt;A note: As per MSDN, the command sp_resetstatus will be removed in a future version of SQL Server. So, you may have to use ALTER DATABASE statement to achieve the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-5727907345286993106?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U0vVi0gm6JUodmg3FIubOkmy1q4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U0vVi0gm6JUodmg3FIubOkmy1q4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U0vVi0gm6JUodmg3FIubOkmy1q4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U0vVi0gm6JUodmg3FIubOkmy1q4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/4nfLbmxqiMU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/5727907345286993106/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/07/sharepoint-content-db-in-suspect-mode.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5727907345286993106?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5727907345286993106?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/4nfLbmxqiMU/sharepoint-content-db-in-suspect-mode.html" title="SharePoint Content Db in Suspect mode" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/07/sharepoint-content-db-in-suspect-mode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANQ346eyp7ImA9WxJRFk8.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-5651098916192908890</id><published>2009-05-18T11:40:00.003+05:30</published><updated>2009-05-18T11:53:12.013+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-18T11:53:12.013+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="Runtime Error" /><title>Runtime Error in method IViewHost.OnLoad</title><content type="html">I noticed the following error in Event Viewer (under Application section):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; Runtime Error in method IViewHost.OnLoad of type System.ArgumentException.The exception was System.ArgumentException: SAPHostName must be specified&lt;br /&gt; at Microsoft.SharePoint.Portal.WebControls.IViewHost.get_Producer()&lt;br /&gt; at Microsoft.SharePoint.Portal.WebControls.IViewHost.get_SSOApplicationName()&lt;br /&gt; at Microsoft.SharePoint.Portal.WebControls.IViewHost.OnLoad(EventArgs args)&lt;/blockquote&gt;&lt;br /&gt;When I did search, all I could find was IViewHost.OnLoad is reserved for internal use and is not intended to be used directly from code. What is this error all about? Do I need to take any action to resolve this? Please let me know if you have any information on this error message.&lt;br /&gt;&lt;br /&gt;I've also posted this question in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/cb15f98f-dd35-4e5d-b3f7-0996f8ea97df" target="_blank"&gt;MSDN forum&lt;/a&gt;. If I get any response, I'll update it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-5651098916192908890?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2uzY9c9TIKZ57XEiszeY9Xjf_us/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2uzY9c9TIKZ57XEiszeY9Xjf_us/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2uzY9c9TIKZ57XEiszeY9Xjf_us/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2uzY9c9TIKZ57XEiszeY9Xjf_us/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/y434s5H1khc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/5651098916192908890/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/05/runtime-error-in-method-iviewhostonload.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5651098916192908890?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/5651098916192908890?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/y434s5H1khc/runtime-error-in-method-iviewhostonload.html" title="Runtime Error in method IViewHost.OnLoad" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/05/runtime-error-in-method-iviewhostonload.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8GSXY6eip7ImA9WxVXFEw.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-6989591113080532220</id><published>2009-02-12T09:45:00.002+05:30</published><updated>2009-02-12T09:57:08.812+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-12T09:57:08.812+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Misc" /><title>Virtual TechDays</title><content type="html">&lt;span style="font-family:verdana;"&gt;Registration is open for &lt;/span&gt;&lt;a href="http://www.virtualtechdays.com/home.aspx" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Microsoft Virtual TechDays&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-6989591113080532220?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZOqOS7ZFQ0RMcIaa7Z0JLX669Sw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZOqOS7ZFQ0RMcIaa7Z0JLX669Sw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZOqOS7ZFQ0RMcIaa7Z0JLX669Sw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZOqOS7ZFQ0RMcIaa7Z0JLX669Sw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/Ljxo-eGkH1w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/6989591113080532220/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/02/virtual-techdays.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6989591113080532220?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6989591113080532220?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/Ljxo-eGkH1w/virtual-techdays.html" title="Virtual TechDays" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/02/virtual-techdays.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMSHY_fyp7ImA9WxVXE08.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-909096637831522217</id><published>2009-02-11T09:20:00.003+05:30</published><updated>2009-02-11T09:28:09.847+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-11T09:28:09.847+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PerformancePoint" /><category scheme="http://www.blogger.com/atom/ns#" term="BI" /><title>MS BI Strategy Update</title><content type="html">&lt;span style="font-family:verdana;"&gt;Microsoft has announced that it is consolidating the scorecard, dashboard, and analytical capabilities from PerformancePoint server into SharePoint server as PerformancePoint services. That means, SharePoint users can make use of these features without investing in PerformancePoint server. Read more &lt;/span&gt;&lt;a href="http://blogs.msdn.com/bi/archive/2009/01/23/microsoft-bi-strategy-update.aspx" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-909096637831522217?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HOdJPD65AN_2I0WytYY9p2AbADc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HOdJPD65AN_2I0WytYY9p2AbADc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HOdJPD65AN_2I0WytYY9p2AbADc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HOdJPD65AN_2I0WytYY9p2AbADc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/g6e3UwHQGzc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/909096637831522217/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2009/02/ms-bi-strategy-update.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/909096637831522217?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/909096637831522217?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/g6e3UwHQGzc/ms-bi-strategy-update.html" title="MS BI Strategy Update" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2009/02/ms-bi-strategy-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ICSHc8eyp7ImA9WxZbFE8.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-6517549190399015432</id><published>2008-04-17T13:57:00.003+05:30</published><updated>2008-04-17T14:09:29.973+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-17T14:09:29.973+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Data Patterns" /><title>Data Patterns</title><content type="html">&lt;span style="font-family:verdana;"&gt;Here is a very good article on Data Patterns. Document is available in PDF format for download. Check it out: &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/architecture/ms998446.aspx" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;http://msdn2.microsoft.com/en-us/architecture/ms998446.aspx&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-6517549190399015432?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2TqAd3at0lSnFU16PG04Zp-X3jk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2TqAd3at0lSnFU16PG04Zp-X3jk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2TqAd3at0lSnFU16PG04Zp-X3jk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2TqAd3at0lSnFU16PG04Zp-X3jk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/jmu1XypoAr0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/6517549190399015432/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2008/04/data-patterns.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6517549190399015432?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/6517549190399015432?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/jmu1XypoAr0/data-patterns.html" title="Data Patterns" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2008/04/data-patterns.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMCRno4eyp7ImA9WB5SEU4.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-385330108487039124</id><published>2007-06-06T17:33:00.001+05:30</published><updated>2007-06-06T17:51:07.433+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-06T17:51:07.433+05:30</app:edited><title>ISQL Vs SQLCMD - How they return value?!</title><content type="html">&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;ISQL is not supported in SQL Server 2005. SQLCMD is a replacement for ISQL utility. I don’t go in detail about SQLCMD. Instead I’m going to explain one big difference between these two utilities that require attention.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;SQLCMD does not support passing of stored procedure return value to the exit value. Let me explain this with examples.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Consider a simple Stored Procedure.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;CREATE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;PROC&lt;/span&gt;&lt;/span&gt; dbo&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;/span&gt;Sample&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;@Val &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;INT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;AS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;  IF&lt;/span&gt;&lt;/span&gt; @Val &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;    RETURN&lt;/span&gt;&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;  ELSE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;    RETURN&lt;/span&gt;&lt;/span&gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;This stored proc is self explanatory. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;When this SP is called from ISQL, the RETURN value is passed to EXIT command of ISQL. That means we can capture this return value and process accordingly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;In case of SQLCMD, the RETURN value will not be passed to EXIT command. Because, SQLCMD expects SP to SELECT return value. That is, if we change SP as shown below, this works with SQLCMD.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;CREATE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;PROC&lt;/span&gt;&lt;/span&gt; dbo&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;/span&gt;Sample&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;@Val &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;INT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;AS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;IF&lt;/span&gt;&lt;/span&gt; @Val &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt;&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;ELSE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt;&lt;/span&gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Assume that you have batch files where you are calling many SPs using ISQL. And you have to change from ISQL to SQLCMD. Normally, in batch files the returned value is used for error handling. If you have huge number of SPs, then it would be a lot of effort to change each and every SP to return value using SELECT. Instead you can change batch files so that it’ll handle return value and no change is required in SP. Let us see an example here.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;SET SP=dbo.Sample 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;SET SQL=&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;SET SQL=%SQL% DECLARE @Return INT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;SET SQL=%SQL% SET @Return = -100&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;SET SQL=%SQL% EXEC @Return = %SP%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;SET SQL=%SQL% SELECT @Return&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;CALL SQLCMD -Q "exit( %SQL% )" -b /&lt;?xml:namespace prefix = st1 /&gt;&lt;st1:place st="on"&gt;S MyServer&lt;/st1:place&gt; /d MyDB /E&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Here, you are executing SP using EXEC statement. Then RETURNed value is SELECTed and passed to EXIT command of SQLCMD. Actually you are executing following statements using SQLCMD.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;DECLARE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; @Return &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;INT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SET&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; @Return &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;-&lt;/span&gt;&lt;/span&gt;100&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;EXEC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; @Return &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt; dbo&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;/span&gt;Sample 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; @Return&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Here, @Return is set to -100 before executing SP. SQLCMD returns -100 if any error encounters before selecting return value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;This way, you can keep all your existing SPs intact.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-385330108487039124?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oqHVP6eo20YVHAVcuKXJFFW444w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oqHVP6eo20YVHAVcuKXJFFW444w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oqHVP6eo20YVHAVcuKXJFFW444w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oqHVP6eo20YVHAVcuKXJFFW444w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/08zJ0progPo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/385330108487039124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2007/06/isql-vs-sqlcmd-how-they-return-value.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/385330108487039124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/385330108487039124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/08zJ0progPo/isql-vs-sqlcmd-how-they-return-value.html" title="ISQL Vs SQLCMD - How they return value?!" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2007/06/isql-vs-sqlcmd-how-they-return-value.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGR348fCp7ImA9WB5SEU0.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-9068737170501329044</id><published>2007-06-06T11:15:00.001+05:30</published><updated>2007-06-06T11:27:06.074+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-06T11:27:06.074+05:30</app:edited><title>Index Usage Statistics</title><content type="html">&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Dynamic Management View&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:green;"&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;sys.dm_db_index_usage_stats&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;color:blue;"&gt;&lt;span style="font-family:Verdana;color:blue;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;shows counts of different types of index operations. This DMV can be used to know whether particular index is used frequently or not or which index is incurring maintenance overhead.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Let us take an example.&lt;/span&gt;&lt;/span&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;&lt;span style="color:fuchsia;"&gt;OBJECT_NAME&lt;/span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;&lt;span style="color:fuchsia;"&gt;object_id&lt;/span&gt;&lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt; Table_Name&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;*&lt;/span&gt;&lt;/span&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt;&lt;/span&gt; &lt;span style="color:green;"&gt;&lt;span style="color:green;"&gt;sys.dm_db_index_usage_stats&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;WHERE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;&lt;span style="color:fuchsia;"&gt;DB_NAME&lt;/span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt; database_id &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;span style="color:red;"&gt;' MyDB'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;AND&lt;/span&gt;&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;&lt;span style="color:fuchsia;"&gt;OBJECT_NAME&lt;/span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;&lt;span style="color:fuchsia;"&gt;object_id&lt;/span&gt;&lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;span style="color:red;"&gt;'Order' &lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:green;"&gt;-- Commenting this line displays result for all tables&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Column &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;index_id&lt;/span&gt;&lt;/i&gt; specifies type of index being used. 0 for heap, 1 for clustered index and &amp;gt;1 for non-clustered index.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-STYLE: italic;font-family:Verdana;" &gt;user_seeks&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;, &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;user_scans&lt;/span&gt;&lt;/i&gt;, &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;user_lookups&lt;/span&gt;&lt;/i&gt; and &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;user_updates&lt;/span&gt;&lt;/i&gt; columns specify no. of respective operations by user queries.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-STYLE: italic;font-family:Verdana;" &gt;last_user_seek&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;, &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;last_user_scan&lt;/span&gt;&lt;/i&gt;, &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;last_user_lookup&lt;/span&gt;&lt;/i&gt; and &lt;i&gt;&lt;span style="FONT-STYLE: italic"&gt;last_user_update&lt;/span&gt;&lt;/i&gt; columns specify time of last respective operations done.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Similarly, there are other 8 columns which are recorded against system queries.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;If any of the indexes are not used by queries, you may want to consider dropping the index and creating other index.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;See BOL for more details.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-9068737170501329044?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O_B4kB1Y1BDM5jibKu45FEtMBSM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O_B4kB1Y1BDM5jibKu45FEtMBSM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O_B4kB1Y1BDM5jibKu45FEtMBSM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O_B4kB1Y1BDM5jibKu45FEtMBSM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/xsadMrHqMXE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/9068737170501329044/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2007/06/index-usage-statistics.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/9068737170501329044?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/9068737170501329044?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/xsadMrHqMXE/index-usage-statistics.html" title="Index Usage Statistics" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2007/06/index-usage-statistics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8NQnc8cCp7ImA9WBFbFk8.&quot;"><id>tag:blogger.com,1999:blog-8752113652404415233.post-7027874059642411270</id><published>2007-05-08T17:59:00.001+05:30</published><updated>2007-05-08T18:08:13.978+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-08T18:08:13.978+05:30</app:edited><title>Termination option in ALTER DATABASE</title><content type="html">&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;This is tried on &lt;?xml:namespace prefix = st1 /&gt;&lt;st1:state st="on"&gt;&lt;st1:place st="on"&gt;Yukon&lt;/st1:place&gt;&lt;/st1:state&gt;.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;Assume that User1 is connected to the database MyDb. User2 executes the following statement:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;ALTER&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;DATABASE&lt;/span&gt;&lt;/span&gt; MyDb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SET&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; RESTRICTED_USER&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;WITH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;ROLLBACK&lt;/span&gt;&lt;/span&gt; IMMEDIATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;Since Termination option is ROLLBACK IMMEDIATE, it disconnects User1 from database and changes the database to restricted_user mode.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;Now, let us consider similar scenario. User1 is connected to MyDb. User2 executes the following statement:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;ALTER&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;DATABASE&lt;/span&gt;&lt;/span&gt; MyDb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SET&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; MULTI_USER&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New;color:blue;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;WITH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;ROLLBACK&lt;/span&gt;&lt;/span&gt; IMMEDIATE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;color:blue;"&gt;&lt;span style="font-family:Verdana;color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;This statement fails and returns error as shown below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:red;"&gt;&lt;span style="font-family:'Courier New';color:red;"&gt;&lt;span style="font-size:85%;"&gt;Msg 1222, Level 16, State 28, Line 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:red;"&gt;&lt;span style="font-family:'Courier New';color:red;"&gt;&lt;span style="font-size:85%;"&gt;Lock request time out period exceeded.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:red;"&gt;&lt;span style="font-family:'Courier New';color:red;"&gt;&lt;span style="font-size:85%;"&gt;Msg 5069, Level 16, State 1, Line 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Courier New;color:red;"&gt;&lt;span style="font-family:'Courier New';color:red;"&gt;&lt;span style="font-size:85%;"&gt;ALTER DATABASE statement failed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;That means termination option has no effect when database is switching to multi_user mode. As long as users are connected to the database, above statement fails to execute.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;I’ve no idea about the logic behind this design. Kindly update me if you know.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8752113652404415233-7027874059642411270?l=devcolumn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kvXaNvtK-SmYZekbY9OWjYo3DWk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kvXaNvtK-SmYZekbY9OWjYo3DWk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kvXaNvtK-SmYZekbY9OWjYo3DWk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kvXaNvtK-SmYZekbY9OWjYo3DWk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DevColumn/~4/vfOgObgZc40" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://devcolumn.blogspot.com/feeds/7027874059642411270/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://devcolumn.blogspot.com/2007/05/termination-option-in-alter-database.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/7027874059642411270?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8752113652404415233/posts/default/7027874059642411270?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DevColumn/~3/vfOgObgZc40/termination-option-in-alter-database.html" title="Termination option in ALTER DATABASE" /><author><name>Suresh</name><uri>http://www.blogger.com/profile/13849616434485220029</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://devcolumn.blogspot.com/2007/05/termination-option-in-alter-database.html</feedburner:origLink></entry></feed>

