<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4460935810467623413</id><updated>2011-10-23T14:06:23.573+01:00</updated><title type='text'>C Sharp Logs</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default?start-index=101&amp;max-results=100'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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>114</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8205486515863292354</id><published>2011-10-21T21:22:00.001+01:00</published><updated>2011-10-22T02:05:49.476+01:00</updated><title type='text'>Importing existing code to svn with visualsvn and tortoise svn</title><content type='html'>You might have some code which is not under version control, and it is mixed with binaries or other files that you don't really want in the svn repository. If the code in question contains both files that should be and should not be versioned, the easiest way to do it is this:&lt;br /&gt;&lt;br /&gt;1. In visualsvn create a new repository&lt;br /&gt;2. Rename the folder containing the source code you want to version&lt;br /&gt;3. Create a new folder with the same name as the one you just renamed&lt;br /&gt;4. Using tortoise svn do an svn checkout into the new folder you have just created&lt;br /&gt;5. Move all the files from the renamed folder into the new folder&lt;br /&gt;6. Using tortoise svn do an "add" operation on the new folder, and choose the files you want to include in svn&lt;br /&gt;7. Using tortoise svn do a commit of the newly added files/folders into svn repository&lt;br /&gt;8. Delete the renamed folder as it is not needed any more&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8205486515863292354?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8205486515863292354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8205486515863292354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8205486515863292354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8205486515863292354'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2011/10/importing-existing-code-to-svn-with.html' title='Importing existing code to svn with visualsvn and tortoise svn'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5905986362707161840</id><published>2011-05-30T11:03:00.000+01:00</published><updated>2011-05-30T11:03:00.251+01:00</updated><title type='text'>TOSHIBA TECRA M2 Disassemble laptop yourself</title><content type='html'>http://www.irisvista.com/tech/laptops/ToshibaM2/tecra_M2_disassembly_1.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5905986362707161840?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5905986362707161840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5905986362707161840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5905986362707161840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5905986362707161840'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2011/05/toshiba-tecra-m2-disassemble-laptop.html' title='TOSHIBA TECRA M2 Disassemble laptop yourself'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8306351901415636613</id><published>2009-09-28T10:08:00.003+01:00</published><updated>2009-09-28T10:29:05.933+01:00</updated><title type='text'>VB .NET Converter</title><content type='html'>First, worth to try the VS built in converter.&lt;br /&gt;&lt;br /&gt;Another one that looks good, worth a try &lt;a href="http://www.aivosto.com/project/vbnet.html"&gt;http://www.aivosto.com/project/vbnet.html&lt;/a&gt; - says it works with previous versions and there is trial for small projects.&lt;br /&gt;&lt;br /&gt;Microsoft Visual Basic 6.0 Code Advisor can be used on VB6 before converting to VB.NET:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/vbasic/ms789135.aspx"&gt;http://msdn.microsoft.com/en-us/vbasic/ms789135.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally a couple of more: &lt;a href="http://www.vbto.net/"&gt;http://www.vbto.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vbmigration.com/editions.aspx"&gt;http://www.vbmigration.com/editions.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other useful links for migration of VB6 to .NET&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ericnel/archive/2008/04/25/visual-basic-6-migration-to-net.aspx"&gt;http://blogs.msdn.com/ericnel/archive/2008/04/25/visual-basic-6-migration-to-net.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-gb/vbrun/ms788233.aspx"&gt;http://msdn.microsoft.com/en-gb/vbrun/ms788233.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-gb/dd408373.aspx"&gt;http://msdn.microsoft.com/en-gb/dd408373.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally here is a promissing link for 5 to 6 but can't follow it at the moment: &lt;a href="http://www.topblogarea.com/sitedetails_17682-2.html"&gt;http://www.topblogarea.com/sitedetails_17682-2.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8306351901415636613?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8306351901415636613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8306351901415636613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8306351901415636613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8306351901415636613'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/vb-net-converter.html' title='VB .NET Converter'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3711619646052973795</id><published>2009-09-24T15:09:00.002+01:00</published><updated>2009-09-24T15:15:01.269+01:00</updated><title type='text'>how to get the default schema for a user in MSSQL 2005</title><content type='html'>execute the stored procedure sp_helpuser, for example&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sp_helpuser '&lt;em&gt;domainname&lt;/em&gt;\&lt;em&gt;username&lt;/em&gt;'&lt;br /&gt;&lt;br /&gt;One of the resulting columns is DefSchemaName.&lt;br /&gt;&lt;br /&gt;There is a similar proc sp_helpgroup to show the users in a group but does not include schema information.&lt;br /&gt;&lt;br /&gt;Another way to get the schema information is&lt;br /&gt;&lt;br /&gt;select name, default_schema_namefrom sys.database_principals uwhere u.name='username'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3711619646052973795?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3711619646052973795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3711619646052973795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3711619646052973795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3711619646052973795'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/how-to-get-default-schema-for-user-in.html' title='how to get the default schema for a user in MSSQL 2005'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1659937516393838716</id><published>2009-09-23T11:04:00.001+01:00</published><updated>2009-09-23T11:04:20.070+01:00</updated><title type='text'>tick data</title><content type='html'>&lt;a href="http://www.traderji.com/development-software-utilities/26678-how-convert-tick-data-into-candlestick-chart.html"&gt;http://www.traderji.com/development-software-utilities/26678-how-convert-tick-data-into-candlestick-chart.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1659937516393838716?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1659937516393838716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1659937516393838716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1659937516393838716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1659937516393838716'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/tick-data.html' title='tick data'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3457704366931488824</id><published>2009-09-23T10:57:00.000+01:00</published><updated>2009-09-23T10:58:05.710+01:00</updated><title type='text'>Online free university lectures</title><content type='html'>&lt;a href="http://www.makeuseof.com/tag/best-sites-for-free-video-lectures-from-top-colleges-universities/"&gt;http://www.makeuseof.com/tag/best-sites-for-free-video-lectures-from-top-colleges-universities/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3457704366931488824?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3457704366931488824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3457704366931488824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3457704366931488824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3457704366931488824'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/online-free-university-lectures.html' title='Online free university lectures'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4511196684680616509</id><published>2009-09-23T10:54:00.001+01:00</published><updated>2009-09-23T10:54:40.439+01:00</updated><title type='text'>open source vertical database</title><content type='html'>&lt;a href="http://www.hdfgroup.org/HDF5/index.html"&gt;http://www.hdfgroup.org/HDF5/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4511196684680616509?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4511196684680616509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4511196684680616509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4511196684680616509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4511196684680616509'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/open-source-vertical-database.html' title='open source vertical database'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5205245840700053</id><published>2009-09-22T10:13:00.003+01:00</published><updated>2009-09-22T10:19:37.332+01:00</updated><title type='text'>SQL tutorials</title><content type='html'>Nice website with tutorial but requires google gears to run the examples.&lt;br /&gt;&lt;a href="http://www.bin-co.com/database/sql_tutorial/"&gt;http://www.bin-co.com/database/sql_tutorial/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visual Explanation of JOINs &lt;a href="http://www.codinghorror.com/blog/archives/000976.html"&gt;http://www.codinghorror.com/blog/archives/000976.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5205245840700053?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5205245840700053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5205245840700053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5205245840700053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5205245840700053'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/sql-tutorial.html' title='SQL tutorials'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-9068501088011169511</id><published>2009-09-22T09:37:00.001+01:00</published><updated>2011-10-22T00:21:05.169+01:00</updated><title type='text'>SQL replicate permissions (copy)</title><content type='html'>Found the following cool script at &lt;a href="http://vyaskn.tripod.com/scripting_permissions_in_sql_server_2005.htm"&gt;http://vyaskn.tripod.com/scripting_permissions_in_sql_server_2005.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;along with a very good explanation&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;ON&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @OldUser sysname, @NewUser sysnameSET @OldUser = &lt;span class="str"&gt;'HRUser'&lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @NewUser = &lt;span class="str"&gt;'PersonnelAdmin'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'USE'&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(DB_NAME()) &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'--Database Context'&lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'--Cloning permissions from'&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(@OldUser) + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="str"&gt;'to'&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(@NewUser) &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'--Comment'&lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'EXEC sp_addrolemember @rolename ='&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(USER_NAME(rm.role_principal_id), &lt;span class="str"&gt;''&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt;) + &lt;span class="str"&gt;', @membername ='&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(@NewUser, &lt;span class="str"&gt;''&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt;) &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'--Role Memberships'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.database_role_members &lt;span class="kwrd"&gt;AS&lt;/span&gt; rm&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; USER_NAME(rm.member_principal_id) = @OldUser&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; rm.role_principal_id &lt;span class="kwrd"&gt;ASC&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;CASE&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHEN&lt;/span&gt; perm.&lt;span class="kwrd"&gt;state&lt;/span&gt; &amp;lt;&amp;gt; &lt;span class="str"&gt;'W'&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;THEN&lt;/span&gt; perm.state_desc &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt; &lt;span class="str"&gt;'GRANT'&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + perm.permission_name + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="str"&gt;'ON '&lt;/span&gt; + QUOTENAME(USER_NAME(obj.schema_id)) + &lt;span class="str"&gt;'.'&lt;/span&gt; + QUOTENAME(obj.name) + &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;CASE&lt;/span&gt; &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; cl.column_id &lt;span class="kwrd"&gt;IS&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt; &lt;span class="kwrd"&gt;THEN&lt;/span&gt; &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(0) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt; &lt;span class="str"&gt;'('&lt;/span&gt; + QUOTENAME(cl.name) + &lt;span class="str"&gt;')'&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="str"&gt;'TO'&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(@NewUser) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;COLLATE&lt;/span&gt; database_default + &lt;span class="kwrd"&gt;CASE&lt;/span&gt; &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; perm.&lt;span class="kwrd"&gt;state&lt;/span&gt; &amp;lt;&amp;gt; &lt;span class="str"&gt;'W'&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;span class="kwrd"&gt;THEN&lt;/span&gt; &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(0) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt; &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="str"&gt;'WITH GRANT OPTION'&lt;/span&gt; &lt;span class="kwrd"&gt;END&lt;/span&gt; &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'--Object Level Permissions'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.database_permissions &lt;span class="kwrd"&gt;AS&lt;/span&gt; perm &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.objects &lt;span class="kwrd"&gt;AS&lt;/span&gt; obj &lt;span class="kwrd"&gt;ON&lt;/span&gt; perm.major_id = obj.[object_id] &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.database_principals &lt;span class="kwrd"&gt;AS&lt;/span&gt; usr &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; perm.grantee_principal_id = usr.principal_id &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;LEFT&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.columns &lt;span class="kwrd"&gt;AS&lt;/span&gt; cl &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; cl.column_id = perm.minor_id &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; cl.[object_id] = perm.major_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; usr.name = @OldUser&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; perm.permission_name &lt;span class="kwrd"&gt;ASC&lt;/span&gt;, perm.state_desc &lt;span class="kwrd"&gt;ASC&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;CASE&lt;/span&gt; &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; perm.&lt;span class="kwrd"&gt;state&lt;/span&gt; &amp;lt;&amp;gt; &lt;span class="str"&gt;'W'&lt;/span&gt; &lt;span class="kwrd"&gt;THEN&lt;/span&gt; perm.state_desc &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt; &lt;span class="str"&gt;'GRANT'&lt;/span&gt; &lt;span class="kwrd"&gt;END&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + perm.permission_name + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="str"&gt;'TO'&lt;/span&gt; + &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + QUOTENAME(@NewUser) &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&lt;span class="kwrd"&gt;COLLATE&lt;/span&gt; database_default + &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&lt;span class="kwrd"&gt;CASE&lt;/span&gt; &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; perm.&lt;span class="kwrd"&gt;state&lt;/span&gt; &amp;lt;&amp;gt; &lt;span class="str"&gt;'W'&lt;/span&gt; &lt;span class="kwrd"&gt;THEN&lt;/span&gt; &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(0) &lt;span class="kwrd"&gt;ELSE&lt;/span&gt; &lt;span class="kwrd"&gt;SPACE&lt;/span&gt;(1) + &lt;span class="str"&gt;'WITH GRANT OPTION'&lt;/span&gt; &lt;span class="kwrd"&gt;END&lt;/span&gt; &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'--Database Level Permissions'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.database_permissions &lt;span class="kwrd"&gt;AS&lt;/span&gt; perm &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.database_principals &lt;span class="kwrd"&gt;AS&lt;/span&gt; usr &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; perm.grantee_principal_id = usr.principal_id&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; usr.name = @OldUser&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; perm.major_id = 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; perm.permission_name &lt;span class="kwrd"&gt;ASC&lt;/span&gt;, perm.state_desc ASC&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-9068501088011169511?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/9068501088011169511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=9068501088011169511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9068501088011169511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9068501088011169511'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/sql-replicate-permissions-copy.html' title='SQL replicate permissions (copy)'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4232921965425905928</id><published>2009-09-19T09:18:00.006+01:00</published><updated>2009-09-19T09:27:58.040+01:00</updated><title type='text'>outlook express with windows live email and o2 smtp settings</title><content type='html'>Finally I got this to work, the tricky bit was using SMTP port not the 25 default but 587 (as I discovered somewhere on the web). Here are the screenshots of the settings:&lt;br /&gt;&lt;br /&gt;The server settings:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 258px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5383090516182202354" border="0" alt="" src="http://4.bp.blogspot.com/_cf56ZicoI6c/SrSUTbrQd_I/AAAAAAAAABE/qsszSZvPExM/s320/outlook1.JPG" /&gt;The server authentication settings:&lt;/p&gt;&lt;p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 224px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5383090744924904834" border="0" alt="" src="http://2.bp.blogspot.com/_cf56ZicoI6c/SrSUgvzxHYI/AAAAAAAAABM/iZuIi0cfDvI/s320/outlook2.JPG" /&gt; &lt;/p&gt;&lt;p&gt;Note that in the above image you can enable the "Log on using Secure Password Authentication" and it will still work. Or you can use the option "Use same settings as my incoming mail server" and it will still work - actually this is a bit easier since you dont have to enter the same information twice.&lt;/p&gt;&lt;p&gt;Finally the advanced settings: &lt;/p&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 261px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5383090927328612418" border="0" alt="" src="http://4.bp.blogspot.com/_cf56ZicoI6c/SrSUrXUM0EI/AAAAAAAAABU/xZq0GGfxefg/s320/outlook3.JPG" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4232921965425905928?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4232921965425905928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4232921965425905928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4232921965425905928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4232921965425905928'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/outlook-express-with-windows-live-email.html' title='outlook express with windows live email and o2 smtp settings'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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://4.bp.blogspot.com/_cf56ZicoI6c/SrSUTbrQd_I/AAAAAAAAABE/qsszSZvPExM/s72-c/outlook1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2892057958059909106</id><published>2009-09-09T11:03:00.001+01:00</published><updated>2009-09-09T11:04:09.953+01:00</updated><title type='text'>XML and XPATH editor : SketchPath</title><content type='html'>Free and open source&lt;br /&gt;&lt;a href="http://pgfearo.googlepages.com/"&gt;http://pgfearo.googlepages.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2892057958059909106?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2892057958059909106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2892057958059909106' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2892057958059909106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2892057958059909106'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/xml-and-xpath-editor-sketchpath.html' title='XML and XPATH editor : SketchPath'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3966592499777758220</id><published>2009-09-08T16:35:00.001+01:00</published><updated>2009-09-08T16:36:54.883+01:00</updated><title type='text'>Nice link with many tutorial videos on C\ and .NET</title><content type='html'>&lt;a href="http://www.blogger.com/www.questpond.com"&gt;www.questpond.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3966592499777758220?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3966592499777758220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3966592499777758220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3966592499777758220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3966592499777758220'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/nice-link-with-many-tutorial-videos-on.html' title='Nice link with many tutorial videos on C\ and .NET'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8142749643843319765</id><published>2009-09-07T10:26:00.003+01:00</published><updated>2011-10-21T23:58:47.832+01:00</updated><title type='text'>ForFiles command - windows server 2008</title><content type='html'>forfiles command is quite useful as it has the /d switch (date) which can be set to less than 30 days (-30) or more. The /m is a mask that you can set to the extension of files you wish to find to save you from doing a *.*. Then it will do the command in “ “ for each file that meets the criteria.&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;br /&gt;This deletes any files in c:\a:\test and its subdirectories that are older than 30 days:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;forfiles /p /m *.txt c:\a\test /s /c &lt;span class="str"&gt;"cmd /c del @file"&lt;/span&gt; /d -30&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8142749643843319765?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8142749643843319765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8142749643843319765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8142749643843319765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8142749643843319765'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/09/forfiles-command.html' title='ForFiles command - windows server 2008'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-9022790687871604889</id><published>2009-08-13T09:48:00.001+01:00</published><updated>2009-08-13T09:50:14.459+01:00</updated><title type='text'>TightVNC and UltraVNC</title><content type='html'>seems like ultra vnc &lt;a href="http://uvnc.com/"&gt;http://uvnc.com/&lt;/a&gt; is being more actively developed and has more features than tightvnc, but tightvnc has released a new version after a long time &lt;a href="http://www.tightvnc.com/"&gt;http://www.tightvnc.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-9022790687871604889?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/9022790687871604889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=9022790687871604889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9022790687871604889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9022790687871604889'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/08/tightvnc-and-ultravnc.html' title='TightVNC and UltraVNC'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1545050462400092781</id><published>2009-07-31T16:41:00.001+01:00</published><updated>2011-10-22T00:05:22.343+01:00</updated><title type='text'>read and write data</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; ReadData&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Form1 : Form&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; StringBuilder outData = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;readonly&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;double&lt;/span&gt;&amp;gt; a = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;double&lt;/span&gt;&amp;gt;(); &lt;span class="rem"&gt;// the 2 input TSs&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;readonly&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;double&lt;/span&gt;&amp;gt; b = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;double&lt;/span&gt;&amp;gt;();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Form1()&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            InitializeComponent();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; Form1_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            LoadData();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; totalFound = 0;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; lastDiff = 0;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;span class="kwrd"&gt;bool&lt;/span&gt; haveEntry = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; window = 100; &lt;span class="rem"&gt;// how many values we use to estimate mean and stdDev&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = window; i &amp;lt;= a.Count; i++)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            &lt;span class="rem"&gt;//for (int i = 144; i &amp;lt; 145; i++) // one sample only, for testing&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; meanA = GetMean(a, i - window, i);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; meanB = GetMean(b, i - window, i);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; stdA = GetStd(a, i - window, i, meanA);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; stdB = GetStd(b, i - window, i, meanB);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; aNorm = (a[i - 1] - meanA) / stdA;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; bNorm = (b[i - 1] - meanB) / stdB;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; diff = aNorm - bNorm;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                &lt;span class="kwrd"&gt;double&lt;/span&gt; absDiff = Math.Abs(diff);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (haveEntry &amp;amp;amp;&amp;amp;amp; ((lastDiff &amp;gt; 1 &amp;amp;amp;&amp;amp;amp; diff &amp;lt;&amp;gt; -1)))&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;                {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;                    Console.WriteLine(&lt;span class="str"&gt;"==== Exit index "&lt;/span&gt; + i);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;                    haveEntry = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;                }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;                &lt;span class="rem"&gt;//outData.AppendLine(i + ", " + diff); // for writing to file&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;                &lt;span class="rem"&gt;// outData.AppendLine(diff.ToString()); // for writing to file&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;                outData.AppendLine(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0:d4}"&lt;/span&gt;, i-window+1) + &lt;span class="str"&gt;" "&lt;/span&gt; + diff); &lt;span class="rem"&gt;// for writing to file&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (absDiff &amp;gt; 15)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;                    totalFound++;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;                    Console.WriteLine(&lt;span class="str"&gt;"Found at index "&lt;/span&gt; + i + &lt;span class="str"&gt;" diff "&lt;/span&gt; + diff);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (absDiff &amp;lt; Math.Abs(lastDiff) &amp;amp;amp;&amp;amp;amp; !haveEntry)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                        Console.WriteLine(&lt;span class="str"&gt;"==== Entry index "&lt;/span&gt; + i);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;                        haveEntry = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;                    }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;                }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;                lastDiff = diff;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;            Console.WriteLine(&lt;span class="str"&gt;"total found "&lt;/span&gt; + totalFound);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;            WriteData();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; WriteData()&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;            &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; fileout = &lt;span class="str"&gt;"out.csv"&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (File.Exists(fileout))&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;                File.Delete(fileout);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (StreamWriter sw = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamWriter(fileout))&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;                sw.Write(outData.ToString());&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt; GetStd(IList&amp;lt;&lt;span class="kwrd"&gt;double&lt;/span&gt;&amp;gt; array, &lt;span class="kwrd"&gt;int&lt;/span&gt; start, &lt;span class="kwrd"&gt;int&lt;/span&gt; limit, &lt;span class="kwrd"&gt;double&lt;/span&gt; mean)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; sum = 0;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = start; i &amp;lt; limit; i++)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;                sum += (array[i] - mean) * (array[i] - mean);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;            sum = Math.Sqrt(sum);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&gt;            sum /= (limit - start);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; sum;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  80:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  81:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt; GetMean(IList&amp;lt;&lt;span class="kwrd"&gt;double&lt;/span&gt;&amp;gt; array, &lt;span class="kwrd"&gt;int&lt;/span&gt; start, &lt;span class="kwrd"&gt;int&lt;/span&gt; limit)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  82:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  83:  &lt;/span&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; sum = 0;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  84:  &lt;/span&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = start; i &amp;lt; limit; i++)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  85:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  86:  &lt;/span&gt;                sum += array[i];&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  87:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  88:  &lt;/span&gt;            sum /= (limit - start);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  89:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; sum;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  90:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  91:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  92:  &lt;/span&gt;        &lt;span class="rem"&gt;/// Assume input file has 2 columns, one for each TS we want to track.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  93:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  94:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadData()&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  95:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  96:  &lt;/span&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (StreamReader sr = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(&lt;span class="str"&gt;"5m-db.csv"&lt;/span&gt;))&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  97:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  98:  &lt;/span&gt;                &lt;span class="kwrd"&gt;string&lt;/span&gt; newData;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  99:  &lt;/span&gt;                a.Clear();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 100:  &lt;/span&gt;                b.Clear();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 101:  &lt;/span&gt;                &lt;span class="kwrd"&gt;while&lt;/span&gt; (sr.Peek() != -1)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 102:  &lt;/span&gt;                {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 103:  &lt;/span&gt;                    newData = sr.ReadLine();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 104:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;string&lt;/span&gt;[] line = newData.Split(&lt;span class="str"&gt;','&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 105:  &lt;/span&gt;                    a.Add(&lt;span class="kwrd"&gt;double&lt;/span&gt;.Parse(line[0]));&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 106:  &lt;/span&gt;                    b.Add(&lt;span class="kwrd"&gt;double&lt;/span&gt;.Parse(line[1]));&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 107:  &lt;/span&gt;                }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 108:  &lt;/span&gt;                Console.WriteLine(&lt;span class="str"&gt;"Loaded "&lt;/span&gt; + a.Count + &lt;span class="str"&gt;" data points."&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 109:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 110:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 111:  &lt;/span&gt;    }&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1545050462400092781?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1545050462400092781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1545050462400092781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1545050462400092781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1545050462400092781'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/read-and-write-data.html' title='read and write data'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6176864802192075852</id><published>2009-07-31T08:47:00.001+01:00</published><updated>2009-07-31T08:47:54.593+01:00</updated><title type='text'>free drive</title><content type='html'>http://www.freedrive.com/folder/23026&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6176864802192075852?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6176864802192075852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6176864802192075852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6176864802192075852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6176864802192075852'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/free-drive.html' title='free drive'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1080192254221719451</id><published>2009-07-29T14:31:00.005+01:00</published><updated>2011-10-22T00:03:47.617+01:00</updated><title type='text'>R stuff for normal distribution fitting</title><content type='html'>Look at this site for more: &lt;a href="http://www.bigre.ulb.ac.be/Users/jvanheld/statistics_bioinformatics/practicals/microarray_fitting_solutions.html"&gt;http://www.bigre.ulb.ac.be/Users/jvanheld/statistics_bioinformatics/practicals/microarray_fitting_solutions.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;# data loading&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;filepath &amp;lt;- system.file(&lt;span class="str"&gt;"data"&lt;/span&gt;, &lt;span class="str"&gt;"morley.tab"&lt;/span&gt; , package=&lt;span class="str"&gt;"datasets"&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;mm &amp;lt;- read.table(filepath)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;m &amp;lt;- mm[,1]&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;hist(m)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;## install&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;library(fBasics)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;skewness(m)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;kurtosis(m)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;plot(density(m))&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;plot(ecdf(m))&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;qqnorm(m)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;abline(0,1)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;gal &amp;lt;- m&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;## Calculate estimators&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;m &amp;lt;- mean(gal,na.rm=T)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;s &amp;lt;- sd(gal,na.rm=T)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;## Draw the density histogram of the galactose microarray values&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;h &amp;lt;- hist(gal,breaks=100,col=&lt;span class="str"&gt;'#CCCCFF'&lt;/span&gt;,border=&lt;span class="str"&gt;'#CCCCFF'&lt;/span&gt;,freq=F)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;## On the histogram, draw vertical bars at the following values :&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;## mean, mean + 1*sd, mean -1*sd, mean +2*sd, mean -2*sd&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;abline(v=c(m,m-s,m-2*s,m+s,m+2*s),col=&lt;span class="str"&gt;"#000088"&lt;/span&gt;,lwd=1)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;## Superimpose the theoretical distribution&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;lines(h$mids,dnorm(h$mids,m,s), type=&lt;span class="str"&gt;"l"&lt;/span&gt;, lwd=2,col=&lt;span class="str"&gt;"red"&lt;/span&gt;)&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1080192254221719451?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1080192254221719451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1080192254221719451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1080192254221719451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1080192254221719451'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/r-stuff-for-normal-distribution-fitting.html' title='R stuff for normal distribution fitting'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-821119730098632438</id><published>2009-07-29T11:49:00.000+01:00</published><updated>2009-07-29T11:50:05.283+01:00</updated><title type='text'>FITTING DISTRIBUTIONS WITH R</title><content type='html'>&lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;q=r+normal+distribution+fit&amp;amp;meta"&gt;http://www.google.co.uk/search?hl=en&amp;amp;q=r+normal+distribution+fit&amp;amp;meta&lt;/a&gt;=&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-821119730098632438?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/821119730098632438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=821119730098632438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/821119730098632438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/821119730098632438'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/fitting-distributions-with-r.html' title='FITTING DISTRIBUTIONS WITH R'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-733614382171697126</id><published>2009-07-23T15:24:00.001+01:00</published><updated>2009-07-23T15:24:45.819+01:00</updated><title type='text'>Very nice SQL articles and some tools</title><content type='html'>&lt;a href="http://www.sommarskog.se/"&gt;http://www.sommarskog.se/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-733614382171697126?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/733614382171697126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=733614382171697126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/733614382171697126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/733614382171697126'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/very-nice-sql-articles-and-some-tools.html' title='Very nice SQL articles and some tools'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7536659138770643056</id><published>2009-07-23T12:15:00.002+01:00</published><updated>2011-10-22T00:02:49.675+01:00</updated><title type='text'>SQL List indexes in db with fragmentation &gt; 30 %</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    OBJECT_NAME(object_id) ObjectName,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    index_id,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    index_type_desc,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    avg_fragmentation_in_percent&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_db_index_physical_stats&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    (DB_ID(&lt;span class="str"&gt;'AdventureWorks'&lt;/span&gt;),&lt;span class="kwrd"&gt;NULL&lt;/span&gt;, &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, &lt;span class="str"&gt;'LIMITED'&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    avg_fragmentation_in_percent &amp;gt; 30&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    OBJECT_NAME(object_id)&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7536659138770643056?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7536659138770643056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7536659138770643056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7536659138770643056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7536659138770643056'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/sql-list-indexes-in-db-with.html' title='SQL List indexes in db with fragmentation &gt; 30 %'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-602111149710200070</id><published>2009-07-21T09:26:00.000+01:00</published><updated>2009-07-21T09:27:09.713+01:00</updated><title type='text'>ADO and MARS</title><content type='html'>Very good article of using MARS for asynchronous data access. There are also other nice posts in the same website&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.emoreau.com/Entries/Articles/2006/11/MARS-and-Asynchronous-ADONet.aspx"&gt;http://www.emoreau.com/Entries/Articles/2006/11/MARS-and-Asynchronous-ADONet.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-602111149710200070?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/602111149710200070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=602111149710200070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/602111149710200070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/602111149710200070'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/ado-and-mars.html' title='ADO and MARS'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5929547137700367208</id><published>2009-07-20T11:36:00.002+01:00</published><updated>2009-07-20T12:08:45.109+01:00</updated><title type='text'>WEKA machine learning applications</title><content type='html'>TClass -- A supervised learning algorithm for multivariate time series:&lt;br /&gt;&lt;a href="http://www.cse.unsw.edu.au/~waleed/tclass/"&gt;http://www.cse.unsw.edu.au/~waleed/tclass/&lt;/a&gt;&lt;br /&gt;Weka - Modified for Data Mining Course at WPI &lt;a href="http://davis.wpi.edu/~xmdv/weka/"&gt;http://davis.wpi.edu/~xmdv/weka/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5929547137700367208?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5929547137700367208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5929547137700367208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5929547137700367208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5929547137700367208'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/weka-machine-learning-applications.html' title='WEKA machine learning applications'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7606885494449003582</id><published>2009-07-17T17:09:00.001+01:00</published><updated>2009-07-17T17:09:25.699+01:00</updated><title type='text'>GPGPU -- very interesting</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/GPGPU"&gt;http://en.wikipedia.org/wiki/GPGPU&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7606885494449003582?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7606885494449003582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7606885494449003582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7606885494449003582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7606885494449003582'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/gpgpu-very-interesting.html' title='GPGPU -- very interesting'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4632051859652359037</id><published>2009-07-17T16:12:00.002+01:00</published><updated>2009-07-17T16:59:33.637+01:00</updated><title type='text'>Adaptive NNs</title><content type='html'>recurrent NNs &lt;a href="http://www.idsia.ch/~juergen/rnn.html"&gt;http://www.idsia.ch/~juergen/rnn.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nice NN book &lt;a href="http://www.amazon.com/Neural-Networks-Comprehensive-Foundation-2nd/dp/0132733501/ref=sr_1_6?ie=UTF8&amp;amp;s=books&amp;amp;qid=1234982901&amp;amp;sr=8-6"&gt;http://www.amazon.com/Neural-Networks-Comprehensive-Foundation-2nd/dp/0132733501/ref=sr_1_6?ie=UTF8&amp;amp;s=books&amp;amp;qid=1234982901&amp;amp;sr=8-6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Correlation code &lt;a href="http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/correlate/"&gt;http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/correlate/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4632051859652359037?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4632051859652359037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4632051859652359037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4632051859652359037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4632051859652359037'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/adaptive-nns.html' title='Adaptive NNs'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6193612472970851888</id><published>2009-07-15T11:22:00.000+01:00</published><updated>2009-07-15T11:23:04.150+01:00</updated><title type='text'>C# neural networks NN library</title><content type='html'>&lt;a href="http://www.codeproject.com/KB/recipes/aforge_neuro.aspx?fid=360112&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;fr=101&amp;amp;select=1789411"&gt;http://www.codeproject.com/KB/recipes/aforge_neuro.aspx?fid=360112&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;fr=101&amp;amp;select=1789411&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6193612472970851888?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6193612472970851888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6193612472970851888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6193612472970851888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6193612472970851888'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/c-neural-networks-nn-library.html' title='C# neural networks NN library'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-874863675062338227</id><published>2009-07-10T11:47:00.000+01:00</published><updated>2009-07-10T11:48:04.728+01:00</updated><title type='text'>Mobile UK directory - remove</title><content type='html'>You might want to send this on to your friends in the UKMaybe you have heard about this but early next week all UK mobiles will be on a directory which will mean that anyone will be able to access the numbers.  It is easy to unsubscribe but it must be done before the=0beginning of next week to make sure that you are ex directory.  You could be swamped by unsolicited messages and calls. Removal is recommended by the BBC - see link below.  &lt;a href="http://news.bbc.co.uk/1/hi/programmes/working_lunch/8091621.stm"&gt;http://news.bbc.co.uk/1/hi/programmes/working_lunch/8091621.stm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just done this myself. Double checked it wasn't a scam and it is actually on the bbc website recommending doing this.The Directory of Mobile Phone numbers goes live next week. Apparently, all numbers including those belonging to children will be open to cold calling and the general abuse that less scrupulous telesales people subject us too.To remove your number go here. (you need your mobile phone with you to do this, they text youa code)  &lt;a href="http://www.118800.co.uk/removeme/remove-me.html"&gt;http://www.118800.co.uk/removeme/remove-me.html&lt;/a&gt;               &lt;br /&gt;&lt;br /&gt;When on the site, click "Home" then "Ex-directory" this will remove you from the directory.You can remove your number from this list, and tell all your friends - especially those with children who have mobile phones. A mobile number is private and you should be able to choose who you give it to - none of us agreed to this when we signed our mobile phone contracts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-874863675062338227?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/874863675062338227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=874863675062338227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/874863675062338227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/874863675062338227'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/mobile-uk-directory-remove.html' title='Mobile UK directory - remove'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2871976490866871750</id><published>2009-07-09T15:38:00.002+01:00</published><updated>2009-07-09T15:46:36.073+01:00</updated><title type='text'>Audit SQL server</title><content type='html'>&lt;a href="http://www.mssqltips.com/tip.asp?tip=1071"&gt;http://www.mssqltips.com/tip.asp?tip=1071&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/articles/Security/auditingii/697/"&gt;http://www.sqlservercentral.com/articles/Security/auditingii/697/&lt;/a&gt; (requires free login)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2871976490866871750?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2871976490866871750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2871976490866871750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2871976490866871750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2871976490866871750'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/audit-sql-server.html' title='Audit SQL server'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4046944162469509776</id><published>2009-07-03T15:33:00.001+01:00</published><updated>2011-10-22T00:01:09.276+01:00</updated><title type='text'>SQL start end time timing</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @starttime datetime&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @starttime = getdate()&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;--&lt;span class="kwrd"&gt;SQL&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;print&lt;/span&gt; &lt;span class="str"&gt;' ... substring took '&lt;/span&gt; + &lt;span class="kwrd"&gt;cast&lt;/span&gt;(datediff(ms,@starttime,getdate()) &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;) + &lt;span class="str"&gt;'ms'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @starttime = getdate()&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4046944162469509776?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4046944162469509776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4046944162469509776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4046944162469509776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4046944162469509776'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/sql-start-end-time-timing.html' title='SQL start end time timing'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5113602713790903711</id><published>2009-07-02T09:08:00.002+01:00</published><updated>2009-07-02T09:08:42.374+01:00</updated><title type='text'>Excel data reader library in codeplex</title><content type='html'>&lt;a href="http://exceldatareader.codeplex.com/"&gt;http://exceldatareader.codeplex.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5113602713790903711?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5113602713790903711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5113602713790903711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5113602713790903711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5113602713790903711'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/excel-data-reader-in-codeplex.html' title='Excel data reader library in codeplex'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2834805295120698936</id><published>2009-07-01T09:50:00.004+01:00</published><updated>2011-10-22T00:00:26.144+01:00</updated><title type='text'>SQL output parameters in stored procedures</title><content type='html'>In C# add parameter of type output and obtain its value after cmd execution:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;cmd.Parameters.Add(&lt;span class="str"&gt;"@newId"&lt;/span&gt;, SqlDbType.Int);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;cmd.Parameters[&lt;span class="str"&gt;"@newId"&lt;/span&gt;].Direction = ParameterDirection.Output;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;cmd.ExecuteNonQuery();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;int&lt;/span&gt; result = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)cmd.Parameters[&lt;span class="str"&gt;"@newId"&lt;/span&gt;].Value;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;In sproc, declare the parameter as type output:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;Create&lt;/span&gt; &lt;span class="kwrd"&gt;procedure&lt;/span&gt;... (&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;@param1 &lt;span class="kwrd"&gt;int&lt;/span&gt;, etc&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;@newId &lt;span class="kwrd"&gt;int&lt;/span&gt; &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;begin&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;...&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @newId = 123&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;end&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2834805295120698936?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2834805295120698936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2834805295120698936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2834805295120698936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2834805295120698936'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/07/sql-output-parameters-in-stored.html' title='SQL output parameters in stored procedures'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2093048278711463570</id><published>2009-06-25T17:13:00.001+01:00</published><updated>2009-06-25T17:13:20.456+01:00</updated><title type='text'>XYNTService: start a program automatically</title><content type='html'>&lt;a href="http://www.codeproject.com/KB/cpp/XYNTServiceWrapper.aspx"&gt;http://www.codeproject.com/KB/cpp/XYNTServiceWrapper.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2093048278711463570?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2093048278711463570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2093048278711463570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2093048278711463570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2093048278711463570'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/xyntservice-start-program-automatically.html' title='XYNTService: start a program automatically'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7931701201958107163</id><published>2009-06-25T11:32:00.003+01:00</published><updated>2011-10-22T00:07:57.376+01:00</updated><title type='text'>Get database roles users principles</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;ON&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;--&lt;span class="kwrd"&gt;Execute&lt;/span&gt; two &lt;span class="kwrd"&gt;select&lt;/span&gt; statements.&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'IF NOT EXISTS (SELECT NULL FROM sys.sysusers WHERE [name] = '&lt;/span&gt; +&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;QUOTENAME(dp2.[name],&lt;span class="str"&gt;''&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt;) +  &lt;span class="str"&gt;') '&lt;/span&gt; + &lt;span class="kwrd"&gt;CHAR&lt;/span&gt;(13) + &lt;span class="str"&gt;'  CREATE USER '&lt;/span&gt; +&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;QUOTENAME(dp2.name) + &lt;span class="str"&gt;' FOR LOGIN '&lt;/span&gt; +&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;QUOTENAME(dp2.name)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.database_principals dp&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.database_role_members rm &lt;span class="kwrd"&gt;ON&lt;/span&gt; dp.principal_id = rm.role_principal_id&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.database_principals dp2 &lt;span class="kwrd"&gt;on&lt;/span&gt; dp2.principal_id = rm.member_principal_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; dp2.[name] != &lt;span class="str"&gt;'dbo'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; dp.[name] = &lt;span class="str"&gt;'GroupNameHere'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="str"&gt;'CREATE ROLE [GroupNameHere] AUTHORIZATION [dbo]'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;UNION&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;--&lt;span class="kwrd"&gt;Returns&lt;/span&gt; &lt;span class="kwrd"&gt;database&lt;/span&gt; &lt;span class="kwrd"&gt;role&lt;/span&gt; members.&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="str"&gt;'EXEC sp_addrolemember N'&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt; + dp.[name] + &lt;span class="str"&gt;''&lt;/span&gt;&lt;span class="str"&gt;', N'&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt; + dp2.[name] + &lt;span class="str"&gt;''&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.database_principals dp&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.database_role_members rm &lt;span class="kwrd"&gt;ON&lt;/span&gt; dp.principal_id = rm.role_principal_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.database_principals dp2 &lt;span class="kwrd"&gt;on&lt;/span&gt; dp2.principal_id = rm.member_principal_id&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.server_principals sp &lt;span class="kwrd"&gt;ON&lt;/span&gt; sp.sid = dp2.sid&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; dp2.[name] != &lt;span class="str"&gt;'dbo'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; dp.[name] = &lt;span class="str"&gt;'GroupNameHere'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7931701201958107163?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7931701201958107163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7931701201958107163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7931701201958107163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7931701201958107163'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/get-database-roles-users-principles.html' title='Get database roles users principles'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8443596888164756295</id><published>2009-06-24T15:09:00.002+01:00</published><updated>2011-10-22T00:07:23.520+01:00</updated><title type='text'>SQL return the insert row id</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;alter&lt;/span&gt; &lt;span class="kwrd"&gt;procedure&lt;/span&gt; [dbo].[usp_SomeName] (&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;@&lt;span class="kwrd"&gt;value&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;) &lt;span class="kwrd"&gt;as&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @id &lt;span class="kwrd"&gt;int&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;create&lt;/span&gt; &lt;span class="kwrd"&gt;table&lt;/span&gt; #&lt;span class="kwrd"&gt;out&lt;/span&gt;(id &lt;span class="kwrd"&gt;int&lt;/span&gt;, &lt;span class="kwrd"&gt;value&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100))&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;INSERT&lt;/span&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; test2&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;(&lt;span class="kwrd"&gt;value&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;output&lt;/span&gt; inserted.* &lt;span class="kwrd"&gt;into&lt;/span&gt; #&lt;span class="kwrd"&gt;out&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;VALUES&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;(@&lt;span class="kwrd"&gt;value&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; (&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;top&lt;/span&gt; 1 id &lt;span class="kwrd"&gt;from&lt;/span&gt; #&lt;span class="kwrd"&gt;out&lt;/span&gt;)&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8443596888164756295?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8443596888164756295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8443596888164756295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8443596888164756295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8443596888164756295'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/sql-return-insert-row-id.html' title='SQL return the insert row id'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2287716520923605768</id><published>2009-06-24T09:27:00.002+01:00</published><updated>2011-10-22T00:06:55.609+01:00</updated><title type='text'>SQL Error catching</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;begin&lt;/span&gt; catch&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;@ErrorMessage NVARCHAR(4000),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;@ErrorNumber &lt;span class="kwrd"&gt;INT&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;@ErrorSeverity &lt;span class="kwrd"&gt;INT&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;@ErrorState &lt;span class="kwrd"&gt;INT&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;@ErrorLine &lt;span class="kwrd"&gt;INT&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;@ErrorProcedure NVARCHAR(200);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="rem"&gt;-- Assign variables to error-handling functions that capture information for RAISERROR.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;@ErrorNumber = ERROR_NUMBER(),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;@ErrorSeverity = ERROR_SEVERITY(),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;@ErrorState = ERROR_STATE(),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;@ErrorLine = ERROR_LINE(),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), &lt;span class="str"&gt;'-'&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;span class="rem"&gt;-- Build the message string that will contain original error information.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @ErrorMessage = &lt;span class="str"&gt;'Error %d, Level %d, State %d, Procedure %s, Line %d, '&lt;/span&gt; + &lt;span class="str"&gt;'Message: '&lt;/span&gt;+ ERROR_MESSAGE();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="rem"&gt;-- Raise an error: msg_str parameter of RAISERROR will contain the original error information.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;RAISERROR&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;(&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;@ErrorMessage,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;@ErrorSeverity,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;1,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;@ErrorNumber, &lt;span class="rem"&gt;-- parameter: original error number.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;@ErrorSeverity, &lt;span class="rem"&gt;-- parameter: original error severity.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;@ErrorState, &lt;span class="rem"&gt;-- parameter: original error state.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;@ErrorProcedure, &lt;span class="rem"&gt;-- parameter: original error procedure name.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;@ErrorLine &lt;span class="rem"&gt;-- parameter: original error line number.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&lt;span class="kwrd"&gt;end&lt;/span&gt; catch&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2287716520923605768?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2287716520923605768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2287716520923605768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2287716520923605768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2287716520923605768'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/sql-error-catching.html' title='SQL Error catching'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1230385802813904729</id><published>2009-06-23T16:32:00.001+01:00</published><updated>2009-06-23T16:32:45.237+01:00</updated><title type='text'>VPS</title><content type='html'>UK based&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rapidhost.co.uk/Hosting/VPS"&gt;http://www.rapidhost.co.uk/Hosting/VPS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tagadab.com/virtual-private-servers"&gt;http://www.tagadab.com/virtual-private-servers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1230385802813904729?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1230385802813904729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1230385802813904729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1230385802813904729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1230385802813904729'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/vps.html' title='VPS'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1151746498381635430</id><published>2009-06-23T14:30:00.001+01:00</published><updated>2009-06-23T14:30:32.197+01:00</updated><title type='text'>instant SQL print error message</title><content type='html'>set @msg = convert(varchar,getdate(),108) + ' - ' + some message here ...'&lt;br /&gt;raiserror(@msg,0,1) with nowait&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1151746498381635430?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1151746498381635430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1151746498381635430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1151746498381635430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1151746498381635430'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/instant-sql-print-error-message.html' title='instant SQL print error message'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-870424888214671268</id><published>2009-06-18T09:33:00.001+01:00</published><updated>2009-06-18T09:33:37.946+01:00</updated><title type='text'>Free download manager</title><content type='html'>All I can say, WOW!!! &lt;a href="http://www.freedownloadmanager.org/"&gt;http://www.freedownloadmanager.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-870424888214671268?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/870424888214671268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=870424888214671268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/870424888214671268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/870424888214671268'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/free-download-manager.html' title='Free download manager'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2680413506331512157</id><published>2009-06-18T09:31:00.000+01:00</published><updated>2009-06-18T09:32:13.397+01:00</updated><title type='text'>ORM fluent hibernate</title><content type='html'>Nice ORM without XML&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.fluentnhibernate.org/show/HomePage"&gt;http://wiki.fluentnhibernate.org/show/HomePage&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2680413506331512157?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2680413506331512157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2680413506331512157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2680413506331512157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2680413506331512157'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/orm-fluent-hibernate.html' title='ORM fluent hibernate'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6965379313112823062</id><published>2009-06-17T09:22:00.001+01:00</published><updated>2011-10-22T00:06:06.707+01:00</updated><title type='text'>SQL search for object by name, for one database only</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; name, type_desc, modify_date&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.objects&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; OBJECT_DEFINITION(object_id) &lt;span class="kwrd"&gt;LIKE&lt;/span&gt; &lt;span class="str"&gt;'%somestring%'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6965379313112823062?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6965379313112823062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6965379313112823062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6965379313112823062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6965379313112823062'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/06/sql-search-for-object-by-name-for-one.html' title='SQL search for object by name, for one database only'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-151559574273687219</id><published>2009-05-11T17:29:00.000+01:00</published><updated>2009-05-11T17:30:24.755+01:00</updated><title type='text'>automated trading resources</title><content type='html'>This is a very nice link, has a lot of useful information&lt;br /&gt;&lt;br /&gt;&lt;a href="http://coreyhoffstein.com/?page_id=24"&gt;http://coreyhoffstein.com/?page_id=24&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-151559574273687219?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/151559574273687219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=151559574273687219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/151559574273687219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/151559574273687219'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/05/automated-trading-resources.html' title='automated trading resources'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5840899083076276934</id><published>2009-05-11T17:00:00.000+01:00</published><updated>2009-05-11T17:01:01.109+01:00</updated><title type='text'>Very nice SQL site with tutorials</title><content type='html'>&lt;a href="http://www.tek-tips.com/faq.cfm?pid=183"&gt;http://www.tek-tips.com/faq.cfm?pid=183&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5840899083076276934?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5840899083076276934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5840899083076276934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5840899083076276934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5840899083076276934'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/05/very-nice-sql-site-with-tutorials.html' title='Very nice SQL site with tutorials'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5271266259230453563</id><published>2009-04-23T15:59:00.002+01:00</published><updated>2009-04-23T16:02:39.240+01:00</updated><title type='text'>rounding errors between SQL and .NET - why helps to use decimal type instead of float</title><content type='html'>I came across a situation where when the database datatype is float, and we read the data into a .NET datatable, the automatic conversion is from float to double. For some reason when this happens there are occasionally cases of rounding errors. The way to overcome this (other than changing the float columns to decimal(18, 6) or some other decimal spec, is to access the float data using some CONVERT(decimal(18, 6) col_name_here) so that the .NET data table has decimal type in the column in question.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5271266259230453563?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5271266259230453563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5271266259230453563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5271266259230453563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5271266259230453563'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/04/rounding-errors-between-sql-and-net-why.html' title='rounding errors between SQL and .NET - why helps to use decimal type instead of float'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-113778526389116649</id><published>2009-04-22T13:10:00.003+01:00</published><updated>2009-04-22T13:12:36.698+01:00</updated><title type='text'>.NET Numeric Scientific Libraries</title><content type='html'>Overview article: &lt;a href="http://www.infoq.com/news/2009/04/Meta-Numerics"&gt;http://www.infoq.com/news/2009/04/Meta-Numerics&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Links to the 3 libraries mentioned in the article above:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.meta-numerics.net/"&gt;Meta Numerics&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ilnumerics.net/"&gt;IL Numerics&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/dnAnalytics"&gt;dnAnalytics&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-113778526389116649?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/113778526389116649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=113778526389116649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/113778526389116649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/113778526389116649'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/04/net-numeric-scientific-libraries.html' title='.NET Numeric Scientific Libraries'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3339000613019439573</id><published>2009-04-21T09:08:00.005+01:00</published><updated>2011-10-22T00:08:39.260+01:00</updated><title type='text'>cursor to fetch database views</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @fetchStatus &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @fetchStatus = 0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @str &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100), @views &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; tmp &lt;span class="kwrd"&gt;cursor&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt;    [name] &lt;span class="kwrd"&gt;from&lt;/span&gt;    sys.views&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;open&lt;/span&gt; tmp&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;while&lt;/span&gt; @fetchStatus = 0 &lt;span class="kwrd"&gt;begin&lt;/span&gt;   &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;fetch&lt;/span&gt; tmp &lt;span class="kwrd"&gt;into&lt;/span&gt; @views   &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @fetchStatus = &lt;span class="preproc"&gt;@@fetch_status&lt;/span&gt;   &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; @fetchStatus = 0 &lt;span class="kwrd"&gt;begin&lt;/span&gt;       &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;print&lt;/span&gt; @views       &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;set&lt;/span&gt; @str = &lt;span class="str"&gt;'select * from '&lt;/span&gt; + @views + &lt;span class="str"&gt;' where 0 = 1'&lt;/span&gt;       &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;exec&lt;/span&gt; (@str)   &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;span class="kwrd"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="kwrd"&gt;close&lt;/span&gt; tmp&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;deallocate&lt;/span&gt; tmp&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3339000613019439573?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3339000613019439573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3339000613019439573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3339000613019439573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3339000613019439573'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/04/cursor-to-fetch-database-views.html' title='cursor to fetch database views'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1304905538139203544</id><published>2009-04-17T16:28:00.005+01:00</published><updated>2009-04-17T16:47:10.021+01:00</updated><title type='text'>GUI design ideas / practices</title><content type='html'>&lt;a href="http://quince.infragistics.com/#/Main"&gt;http://quince.infragistics.com/#/Main&lt;/a&gt;&lt;br /&gt;&lt;a href="http://designinginterfaces.com/"&gt;http://designinginterfaces.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.uk/About-Face-Essentials-Interaction-Design/dp/0470084111/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1239983186&amp;amp;sr=8-1"&gt;About Face: The Essentials of User Interface Design (Paperback)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1304905538139203544?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1304905538139203544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1304905538139203544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1304905538139203544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1304905538139203544'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/04/gui-design-ideas-practices.html' title='GUI design ideas / practices'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6085683585748346523</id><published>2009-03-16T13:34:00.003Z</published><updated>2011-10-22T00:33:49.788+01:00</updated><title type='text'>Implement datetime (and other) sorting in ASP.NET gridview</title><content type='html'>We need some code to load data into the table, then we use the following functions (also add the gridView_Sorting function to handle the OnSorting event of the grid, in the gridview definition in the .aspx file (OnSorting="gridView_Sorting"), same for OnPageIndexChanging event: OnPageIndexChanging="gridView_PageIndexChanging").&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; SortDirection lastSortDirection = SortDirection.Ascending;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; DataTable roadmapTable;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ConvertSortDirectionToSql(SortDirection sortDirection)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;string&lt;/span&gt; m_SortDirection = String.Empty;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;switch&lt;/span&gt; (sortDirection)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="kwrd"&gt;case&lt;/span&gt; SortDirection.Ascending:&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        m_SortDirection = &lt;span class="str"&gt;"ASC"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;case&lt;/span&gt; SortDirection.Descending:&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        m_SortDirection = &lt;span class="str"&gt;"DESC"&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; m_SortDirection;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;}&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; gridView_PageIndexChanging(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewPageEventArgs e)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;    roadmapGridView.PageIndex = e.NewPageIndex;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    roadmapGridView.DataBind();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;}&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; gridView_Sorting(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewSortEventArgs e)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (roadmapTable == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;    }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;    lastSortDirection = lastSortDirection == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    DataView m_DataView = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataView(roadmapTable);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    m_DataView.Sort = e.SortExpression + &lt;span class="str"&gt;" "&lt;/span&gt; + ConvertSortDirectionToSql(lastSortDirection);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;    roadmapGridView.DataSource = m_DataView;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;    roadmapGridView.DataBind();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6085683585748346523?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6085683585748346523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6085683585748346523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6085683585748346523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6085683585748346523'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/03/implement-datetime-and-other-sorting-in.html' title='Implement datetime (and other) sorting in ASP.NET gridview'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8771268584774492516</id><published>2009-03-04T15:52:00.010Z</published><updated>2009-03-16T16:54:54.077Z</updated><title type='text'>Speed up internet explorer</title><content type='html'>&lt;h3&gt;&lt;span style="font-weight: normal;"&gt;0. Start IE without addons &lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;Go to Start &gt; All Programs &gt; Accessories &gt; System Tools &gt; Internet Explorer (No Add-ons)&lt;br /&gt;&lt;h3 style="font-weight: normal;"&gt;1. Disable the Phishing Filter&lt;/h3&gt; &lt;p&gt;The Phishing Filter in IE7 is another area for performance improvement. If you mainly visit sites you trust and have used a lot, you can consider disabling the Phishing Filter in IE7.&lt;/p&gt; &lt;ol&gt;&lt;li&gt;In the IE7 &lt;strong&gt;Tools &lt;/strong&gt;menu, select &lt;strong&gt;Phishing Filter&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;In the submenu select &lt;strong&gt;Turn Off Automatic Website Checking.&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;2. Disable sounds in webpages, under options - advanced - multimedia&lt;br /&gt;&lt;br /&gt;3. Disable RSS feed updates - under options - content - feeds&lt;br /&gt;&lt;br /&gt;4. Increase max simultaneous connections - I am experimenting with 32 [Edit: max possible is 16 decimal...)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start the &lt;strong&gt;Registry Editor&lt;/strong&gt;. From the &lt;strong&gt;Windows Start&lt;/strong&gt; menu, select &lt;strong&gt;Run&lt;/strong&gt;. In the &lt;strong&gt;Run&lt;/strong&gt; box, type &lt;strong&gt;regedit&lt;/strong&gt; and click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;Registry Editor&lt;/strong&gt;, locate the following key:&lt;br /&gt;&lt;strong&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Internet Settings&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;With the key selected, open the &lt;strong&gt;Edit&lt;/strong&gt; menu, click &lt;strong&gt;New&lt;/strong&gt; and then select &lt;strong&gt;DWORD Value&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;In the name field for the new value, type &lt;strong&gt;MaxConnectionsPer1_0Server&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Create another new &lt;strong&gt;DWORD Value&lt;/strong&gt; and name it &lt;strong&gt;MaxConnectionsPerServer&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Now right-click the new entries one-by-one, and select &lt;strong&gt;Modify&lt;/strong&gt; in the popup menu.&lt;/li&gt;&lt;li&gt;Enter the value for the maximum number of connections. By default &lt;strong&gt;Hexadecimal&lt;/strong&gt; entry is selected, so if you type a value of &lt;strong&gt;10&lt;/strong&gt; for these new DWORD values you will have a maximum of &lt;strong&gt;16&lt;/strong&gt; downloads at the same time.&lt;/li&gt;&lt;li&gt;Close the &lt;strong&gt;Registry Editor&lt;/strong&gt;. Select &lt;strong&gt;Exit&lt;/strong&gt; from the &lt;strong&gt;File&lt;/strong&gt; menu.&lt;/li&gt;&lt;li&gt;Finally reboot your computer and you’re ready to maximize your internet bandwidth usage by downloading multiple files at a time!&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;5. Limit reserved bandwidth to 0&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open the &lt;strong&gt;Run&lt;/strong&gt; option in the &lt;strong&gt;Start&lt;/strong&gt; menu.&lt;/li&gt;&lt;li&gt;Type &lt;strong&gt;gpedit.msc&lt;/strong&gt; and click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Open the tree as shown in the image (&lt;strong&gt;Computer Configuration&lt;/strong&gt;-&gt;&lt;strong&gt;Administrative Templates&lt;/strong&gt;-&gt;&lt;strong&gt;Network&lt;/strong&gt;-&gt;&lt;strong&gt;QoS Packet Scheduler&lt;/strong&gt;).&lt;/li&gt;&lt;li&gt;In the right-hand panel, double-click the &lt;strong&gt;Limit reservable bandwidth&lt;/strong&gt; option.&lt;/li&gt;&lt;li&gt;Next, change the option from &lt;strong&gt;Not Configured&lt;/strong&gt; to &lt;strong&gt;Enabled&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;in&gt;&lt;strong&gt;the Bandwidth Limit (%)&lt;/strong&gt; value, enter zero (0).&lt;/in&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;OK&lt;/strong&gt; button.&lt;/li&gt;&lt;/ol&gt;6. force IE7's menu bar to the Top&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser]&lt;br /&gt;"ITBar7Position"=dword:00000001&lt;br /&gt;&lt;br /&gt;undo the change:&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser]&lt;br /&gt;"ITBar7Position"=-&lt;br /&gt;&lt;br /&gt;7. Hide IE search box&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\InfoDelivery\Restrictions]&lt;br /&gt;"NoSearchBox"=dword:00000001&lt;br /&gt;&lt;br /&gt;and undo this&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\InfoDelivery\Restrictions]&lt;br /&gt;"NoSearchBox"=dword:00000000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8. TCP IP Buffers&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]"ForwardBufferMemory"=dword:00024a00&lt;br /&gt;"NumForwardPackets"=dword:0000024a&lt;br /&gt;"MaxForwardBufferMemory"=dword:00024a00&lt;br /&gt;"MaxNumForwardPackets"=dword:0000024a&lt;br /&gt;&lt;br /&gt;from &lt;a href="http://www.msfn.org/board/lofiversion/index.php/t90257.html"&gt;http://www.msfn.org/board/lofiversion/index.php/t90257.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8771268584774492516?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8771268584774492516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8771268584774492516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8771268584774492516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8771268584774492516'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/03/speed-up-internet-explorer.html' title='Speed up internet explorer'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7001704213235071847</id><published>2009-02-25T14:21:00.001Z</published><updated>2009-02-25T14:23:34.272Z</updated><title type='text'>PC Cooling Silent</title><content type='html'>Good site for advice on cooling your pc while keep noise levels to near silent J&lt;br /&gt;&lt;a href="http://www.silentpcreview.com/"&gt;http://www.silentpcreview.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7001704213235071847?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7001704213235071847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7001704213235071847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7001704213235071847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7001704213235071847'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/pc-cooling-silent.html' title='PC Cooling Silent'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2169454007941507208</id><published>2009-02-17T16:13:00.003Z</published><updated>2011-10-22T00:21:54.802+01:00</updated><title type='text'>SQL replace cursor with while loop</title><content type='html'>The key here is to get all the item categories which fit our WHERE clause into a memory table and use the Primary Key of this table to pick up each successive item category.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;--&lt;span class="kwrd"&gt;Declare&lt;/span&gt; variables&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @item_category_id &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @order_id &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @purchase_order_id &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;--&lt;span class="kwrd"&gt;Declare&lt;/span&gt; a memory &lt;span class="kwrd"&gt;table&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @item_table &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; (primary_key &lt;span class="kwrd"&gt;INT&lt;/span&gt; &lt;span class="kwrd"&gt;IDENTITY&lt;/span&gt;(1,1) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, --THE &lt;span class="kwrd"&gt;IDENTITY&lt;/span&gt; &lt;span class="kwrd"&gt;STATEMENT&lt;/span&gt; &lt;span class="kwrd"&gt;IS&lt;/span&gt; IMPORTANT!&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;item_category_id &lt;span class="kwrd"&gt;INT&lt;/span&gt;,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;order_id &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;--now populate this &lt;span class="kwrd"&gt;table&lt;/span&gt; &lt;span class="kwrd"&gt;with&lt;/span&gt; the required item category &lt;span class="kwrd"&gt;values&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;INSERT&lt;/span&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; @item_table&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;  &lt;span class="rem"&gt;-- Same SELECT statement as that for the CURSOR&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;it.item_category_id&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;,ord.order_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; dbo.item_categories it&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; dbo.orders ord&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; ord.item_category_id = it.item_category_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; ord.order_date &amp;gt;= &lt;span class="str"&gt;'1-sep-05'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;and&lt;/span&gt; it.isSuspended != 1                     &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @item_category_counter &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @loop_counter &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @loop_counter = ISNULL(&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(*) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; @item_table),0) &lt;span class="rem"&gt;-- Set the @loop_counter to the total number of rows in the&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&lt;span class="rem"&gt;-- memory table&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @item_category_counter = 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHILE&lt;/span&gt; @loop_counter &amp;gt; 0 &lt;span class="kwrd"&gt;AND&lt;/span&gt; @item_category_counter &amp;lt;= @loop_counter&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @item_category_id = item_category_id&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;,@order_id = order_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; @item_table&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; primary_key = @item_category_counter&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;--Now pass the item-category_id &lt;span class="kwrd"&gt;and&lt;/span&gt; order_id &lt;span class="kwrd"&gt;to&lt;/span&gt; the &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt; stored &lt;span class="kwrd"&gt;procedure&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;&lt;span class="kwrd"&gt;EXEC&lt;/span&gt; dbo.usp_generate_purchase_order @item_category_id, @order_id, @purchase_order_id &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;/*&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;&lt;span class="kwrd"&gt;Call&lt;/span&gt; other code here &lt;span class="kwrd"&gt;to&lt;/span&gt; process your pruchase &lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt; this item&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;*/&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @item_category_counter = @item_category_counter + 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;END&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2169454007941507208?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2169454007941507208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2169454007941507208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2169454007941507208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2169454007941507208'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/sql-replace-cursor-with-while-loop.html' title='SQL replace cursor with while loop'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4231607224984345707</id><published>2009-02-13T16:37:00.001Z</published><updated>2009-02-13T16:38:34.330Z</updated><title type='text'>SQL Statistics information</title><content type='html'>from an amazing blog post here &lt;a href="http://www.mssqltips.com/tip.asp?tip=1550"&gt;http://www.mssqltips.com/tip.asp?tip=1550&lt;/a&gt; : (recommended to read)&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;code style="font-size: 12px;"&gt;&lt;span style="color: blue;"&gt;ALTER PROCEDURE &lt;/span&gt;&lt;span style="color: black;"&gt;[dbo].[usp_Detail_Index_Stats] &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@table_name &lt;/span&gt;&lt;span style="color: black;"&gt;sysname &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------&lt;br /&gt;-- ******VARIABLE DECLARATIONS******&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@IndexTable &lt;/span&gt;&lt;span style="color: blue;"&gt;TABLE&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: gray;"&gt;( &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: black;"&gt;[Database] sysname&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Table] sysname&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Index Name] sysname &lt;/span&gt;&lt;span style="color: gray;"&gt;NULL, &lt;/span&gt;&lt;span style="color: black;"&gt;index_id smallint&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: black;"&gt;[object_id] &lt;/span&gt;&lt;span style="color: blue;"&gt;INT&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Index Type] &lt;/span&gt;&lt;span style="color: blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;20&lt;/span&gt;&lt;span style="color: gray;"&gt;), &lt;/span&gt;&lt;span style="color: black;"&gt;[Alloc Unit Type] &lt;/span&gt;&lt;span style="color: blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;20&lt;/span&gt;&lt;span style="color: gray;"&gt;), &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: black;"&gt;[Avg Frag %] decimal&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;5&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: gray;"&gt;), &lt;/span&gt;&lt;span style="color: black;"&gt;[Row Ct] bigint&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Stats Update Dt] datetime &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: gray;"&gt;) &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@dbid &lt;/span&gt;&lt;span style="color: black;"&gt;smallint &lt;/span&gt;&lt;span style="color: green;"&gt;--Database id for current database&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@objectid &lt;/span&gt;&lt;span style="color: blue;"&gt;INT    &lt;/span&gt;&lt;span style="color: green;"&gt;--Object id for table being analyzed&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@indexid &lt;/span&gt;&lt;span style="color: blue;"&gt;INT     &lt;/span&gt;&lt;span style="color: green;"&gt;--Index id for the target index for the STATS_DATE() function&lt;br /&gt;&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;-- ******VARIABLE ASSIGNMENTS******&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@dbid &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: magenta;"&gt;DB_ID&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;DB_NAME&lt;/span&gt;&lt;span style="color: gray;"&gt;()) &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@objectid &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: magenta;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@table_name&lt;/span&gt;&lt;span style="color: gray;"&gt;) &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------&lt;br /&gt;-- ******Load @IndexTable with Index Metadata******&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@IndexTable &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: black;"&gt;[Database]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Table]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Index Name]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;index_id&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[object_id]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: black;"&gt;[Index Type]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Alloc Unit Type]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Avg Frag %]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;[Row Ct]&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: magenta;"&gt;DB_NAME&lt;/span&gt;&lt;span style="color: gray;"&gt;() &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;"Database" &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@table_name &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;"Table" &lt;br /&gt;   SI.NAME &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;"Index Name" &lt;br /&gt;   IPS.index_id&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.&lt;/span&gt;&lt;span style="color: magenta;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray;"&gt;,     &lt;/span&gt;&lt;span style="color: green;"&gt;--These fields included for joins only&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.index_type_desc&lt;/span&gt;&lt;span style="color: gray;"&gt;,                &lt;/span&gt;&lt;span style="color: green;"&gt;--Heap, Non-clustered, or Clustered&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.alloc_unit_type_desc&lt;/span&gt;&lt;span style="color: gray;"&gt;,       &lt;/span&gt;&lt;span style="color: green;"&gt;--In-row data or BLOB data&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;IPS.avg_fragmentation_in_percent &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;decimal&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;5&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;2&lt;/span&gt;&lt;span style="color: gray;"&gt;)), &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.record_count &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;sys.dm_db_index_physical_stats &lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@dbid&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@objectid&lt;/span&gt;&lt;span style="color: gray;"&gt;, NULL, NULL, &lt;/span&gt;&lt;span style="color: red;"&gt;'sampled'&lt;/span&gt;&lt;span style="color: gray;"&gt;) &lt;/span&gt;&lt;span style="color: black;"&gt;IPS &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: magenta;"&gt;LEFT &lt;/span&gt;&lt;span style="color: blue;"&gt;JOIN &lt;/span&gt;&lt;span style="color: black;"&gt;sys.sysindexes SI &lt;/span&gt;&lt;span style="color: blue;"&gt;ON &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.&lt;/span&gt;&lt;span style="color: magenta;"&gt;OBJECT_ID &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;SI.id &lt;/span&gt;&lt;span style="color: gray;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.index_id &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;SI.indid &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;IPS.index_id &lt;/span&gt;&lt;span style="color: gray;"&gt;&lt;&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;0 &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------&lt;br /&gt;-- ******ADD STATISTICS INFORMATION******&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DECLARE &lt;/span&gt;&lt;span style="color: black;"&gt;curIndex_ID &lt;/span&gt;&lt;span style="color: blue;"&gt;CURSOR FOR &lt;br /&gt;   SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;I.index_id &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@IndexTable &lt;/span&gt;&lt;span style="color: black;"&gt;I &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER BY &lt;/span&gt;&lt;span style="color: black;"&gt;I.index_id &lt;br /&gt;   &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;OPEN &lt;/span&gt;&lt;span style="color: black;"&gt;curIndex_ID &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: blue;"&gt;FETCH &lt;/span&gt;&lt;span style="color: black;"&gt;NEXT &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;curIndex_ID &lt;/span&gt;&lt;span style="color: blue;"&gt;INTO &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@indexid &lt;br /&gt;   &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: blue;"&gt;WHILE &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@@FETCH_STATUS &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: black;"&gt;0 &lt;br /&gt;       &lt;/span&gt;&lt;span style="color: blue;"&gt;BEGIN &lt;br /&gt;           UPDATE &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@IndexTable &lt;br /&gt;           &lt;/span&gt;&lt;span style="color: blue;"&gt;SET &lt;/span&gt;&lt;span style="color: black;"&gt;[Stats Update Dt] &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: magenta;"&gt;STATS_DATE&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@objectid&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@indexid&lt;/span&gt;&lt;span style="color: gray;"&gt;) &lt;br /&gt;           &lt;/span&gt;&lt;span style="color: blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color: black;"&gt;[object_id] &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@objectid &lt;/span&gt;&lt;span style="color: gray;"&gt;AND &lt;/span&gt;&lt;span style="color: black;"&gt;[index_id] &lt;/span&gt;&lt;span style="color: blue;"&gt;= &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@indexid &lt;br /&gt;           &lt;br /&gt;           &lt;/span&gt;&lt;span style="color: blue;"&gt;FETCH &lt;/span&gt;&lt;span style="color: black;"&gt;NEXT &lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: black;"&gt;curIndex_ID &lt;/span&gt;&lt;span style="color: blue;"&gt;INTO &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@indexid &lt;br /&gt;       &lt;/span&gt;&lt;span style="color: blue;"&gt;END &lt;br /&gt;   &lt;br /&gt;CLOSE &lt;/span&gt;&lt;span style="color: black;"&gt;curIndex_ID &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;DEALLOCATE &lt;/span&gt;&lt;span style="color: black;"&gt;curIndex_ID &lt;br /&gt;   &lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;----------------------------------------------------------------------------------&lt;br /&gt;-- ******RETURN RESULTS******&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Database]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Table]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Index Name]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;"Index Type"&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: magenta;"&gt;CASE &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Index Type]&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: red;"&gt;'NONCLUSTERED INDEX' &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'NCLUST'&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color: red;"&gt;'CLUSTERED INDEX' &lt;/span&gt;&lt;span style="color: blue;"&gt;THEN &lt;/span&gt;&lt;span style="color: red;"&gt;'CLUST'&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color: red;"&gt;'HEAP'&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Avg Frag %]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Row Ct]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;br /&gt;   &lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Stats Update Dt]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;110&lt;/span&gt;&lt;span style="color: gray;"&gt;) &lt;/span&gt;&lt;span style="color: blue;"&gt;AS &lt;/span&gt;&lt;span style="color: black;"&gt;"Stats Dt"&lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;FROM &lt;/span&gt;&lt;span style="color: rgb(67, 67, 67);"&gt;@IndexTable &lt;/span&gt;&lt;span style="color: black;"&gt;I &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;ORDER BY &lt;/span&gt;&lt;span style="color: black;"&gt;I.[Index Type]&lt;/span&gt;&lt;span style="color: gray;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;I.[index_id]&lt;/span&gt;&lt;/code&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4231607224984345707?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4231607224984345707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4231607224984345707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4231607224984345707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4231607224984345707'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/sql-statistics-information.html' title='SQL Statistics information'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-9080228672796001727</id><published>2009-02-13T14:52:00.009Z</published><updated>2011-10-22T00:13:47.602+01:00</updated><title type='text'>More on SQL indexes</title><content type='html'>the command to show index statistics:&lt;br /&gt;&lt;br /&gt;dbcc show_statistics (tablename, indexname)&lt;br /&gt;&lt;br /&gt;The lower the "All density" value the better, means the index is highly selective.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;How to view index fragmentation (replace database and table names)&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; str(s.index_id,3,0) &lt;span class="kwrd"&gt;as&lt;/span&gt; indid,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;left&lt;/span&gt;(i.name, 20) &lt;span class="kwrd"&gt;as&lt;/span&gt; index_name,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;left&lt;/span&gt;(index_type_desc, 20) &lt;span class="kwrd"&gt;as&lt;/span&gt; index_type_desc,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;index_depth &lt;span class="kwrd"&gt;as&lt;/span&gt; idx_depth,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;index_level &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;level&lt;/span&gt;,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;str(avg_fragmentation_in_percent, 5,2) &lt;span class="kwrd"&gt;as&lt;/span&gt; avg_frgmnt_pct,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;str(page_count, 10,0) &lt;span class="kwrd"&gt;as&lt;/span&gt; pg_cnt&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_db_index_physical_stats&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;(db_id(&lt;span class="str"&gt;'_DBNAME_&amp;lt;dbname&amp;gt;'&lt;/span&gt;), object_id(&lt;span class="str"&gt;'&amp;lt;tablename&amp;gt;_TABLENAME_'&lt;/span&gt;),1, 0, &lt;span class="str"&gt;'DETAILED'&lt;/span&gt;) s&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;join&lt;/span&gt; sys.indexes i &lt;span class="kwrd"&gt;on&lt;/span&gt; s.object_id = i.object_id &lt;span class="kwrd"&gt;and&lt;/span&gt; s.index_id = i.index_id&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;How to reorganise an index (online operation) - only affects the leaf nodes.&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;INDEX&lt;/span&gt; &amp;lt;indexname&amp;gt; _INDEXNAME_ &lt;span class="kwrd"&gt;on&lt;/span&gt; _TABLENAME_ &amp;lt;tablename&amp;gt; REORGANIZE&lt;/pre&gt;&lt;/div&gt;To rebuild the index without taking the database offline you need the enterprise edition of MSSQL 2005.&lt;br /&gt;&lt;br /&gt;&lt;/tablename&gt;&lt;/indexname&gt;&lt;/tablename&gt;&lt;/dbname&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;INDEX&lt;/span&gt;  _INDEXNAME_ &lt;span class="kwrd"&gt;on&lt;/span&gt; _TABLENAME_  REBUILD&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If space is an issue it is better to disable a nonclustered index before rebuilding it, then we only need about 20% of the index size as free space to do the rebuild.&lt;br /&gt;&lt;br /&gt;Also the Fill Factor can be adjusted based on how we expect the data to be used. This specifies how full the data pages or leaf level index pages will be. Lower fill factor is better when there are many data updates and inserts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-9080228672796001727?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/9080228672796001727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=9080228672796001727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9080228672796001727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9080228672796001727'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/more-on-sql-indexes.html' title='More on SQL indexes'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7230972533524131731</id><published>2009-02-12T15:53:00.014Z</published><updated>2011-10-22T00:11:19.020+01:00</updated><title type='text'>Clustered and non-clustered indexes in MSSQL server</title><content type='html'>Columns to include in clustered index&lt;br /&gt;&lt;br /&gt;. Those that are often accessed sequentially&lt;br /&gt;. Those that contain a large number of distinct values&lt;br /&gt;. Those that are used in range queries that use operators such as BETWEEN, &gt;&lt;br /&gt;&lt;= in the WHERE clause . Those that are frequently used by queries to join or group the result setWhen to use non-clustered index  . Queries that do not return large result sets . Columns that are frequently used in the WHERE clause that return exact match . Columns that have many distinct values (that is, high cardinality) . All columns referenced in a critical query (A special nonclustered index called a covering index that eliminates the need to go to the underlying data pages.) (based on the book SQL Server 2005 Unleashed, Sams 2006). Note: if there are columns usually required in the results but not in the query conditions, we can add them as "included columns" (for non-clustered index), which means they will exist in the leaf nodes of the index for faster retrieval. This is similar to a covering index (same?)To improve index performance, we can "REBUILD" them (drop and recreate) or just "REORGANIZE" them (like defrag, without drop). When we reorganise we have the option to compact large objects.  Index can be disabled, in this case if we rebuild it we don't need to have extra temp space.  Index can be applied on a view, but there are several conditions that must be met before this can be done. See online documentation. A composite index will only be used optimally (i.e. index seek instead of index scan) if its first column is part of the search argument or join clause.  When deciding on an index another parameter to consider is the selectivity of the index i.e. the number of distinct rows returned on the index keys / number of rows in the table. The higher this number the better. e.g.&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;count&lt;/span&gt;(&lt;span class="kwrd"&gt;distinct&lt;/span&gt; surname) &lt;span class="kwrd"&gt;from&lt;/span&gt; sometable / &lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;count&lt;/span&gt;(*) &lt;span class="kwrd"&gt;from&lt;/span&gt; sometable &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;as a rule of thumb we require this to be &gt; 0.85&lt;br /&gt;&lt;br /&gt;Example sql code to determine the statistical distribution of values for a specific column &lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;state&lt;/span&gt;, &lt;span class="kwrd"&gt;count&lt;/span&gt;(*) &lt;span class="kwrd"&gt;as&lt;/span&gt; numrows, &lt;span class="kwrd"&gt;count&lt;/span&gt;(*)/b.totalrows * 100 &lt;span class="kwrd"&gt;as&lt;/span&gt; percentage &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;from&lt;/span&gt; authors a, (&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;convert&lt;/span&gt;(&lt;span class="kwrd"&gt;numeric&lt;/span&gt;(6,2), &lt;span class="kwrd"&gt;count&lt;/span&gt;(*)) &lt;span class="kwrd"&gt;as&lt;/span&gt; totalrows &lt;span class="kwrd"&gt;from&lt;/span&gt;  authors) &lt;span class="kwrd"&gt;as&lt;/span&gt; b &lt;span class="kwrd"&gt;group&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; &lt;span class="kwrd"&gt;state&lt;/span&gt;, b.totalrows &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;having&lt;/span&gt; &lt;span class="kwrd"&gt;count&lt;/span&gt;(*) &amp;gt; 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; 2 &lt;span class="kwrd"&gt;desc&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;go&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7230972533524131731?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7230972533524131731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7230972533524131731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7230972533524131731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7230972533524131731'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/columns-to-include-in-clustered-index.html' title='Clustered and non-clustered indexes in MSSQL server'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3491036427211905701</id><published>2009-02-06T14:01:00.002Z</published><updated>2011-10-22T00:09:14.773+01:00</updated><title type='text'>SQL datetime as string representation</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;CONVERT&lt;/span&gt;(&lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(10), [StartDate], 103)&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Also experiment with different values instead of 10, to get only the days/month part of date for example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3491036427211905701?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3491036427211905701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3491036427211905701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3491036427211905701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3491036427211905701'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/sql-datetime-as-string-representation.html' title='SQL datetime as string representation'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6425333140845216274</id><published>2009-02-05T16:37:00.005Z</published><updated>2009-02-05T16:51:04.641Z</updated><title type='text'>GreyBox popup window with C# ASP.NET DataBound GridView application</title><content type='html'>GreyBox is a nice free animated popup window: &lt;a href="http://orangoo.com/labs/GreyBox/"&gt;http://orangoo.com/labs/GreyBox/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In order to get it to work dynamically with a databound GridView in ASP.NET in C# I had to make the following change in the .aspx page:&lt;br /&gt;&lt;br /&gt;in the &lt;columns&gt; part of the gridview definition, added another template field:&lt;br /&gt;&lt;br /&gt;&lt;/columns&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cf56ZicoI6c/SYsYfpvRprI/AAAAAAAAAA8/HExcu56RdG4/s1600-h/LinkPopup.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 86px;" src="http://1.bp.blogspot.com/_cf56ZicoI6c/SYsYfpvRprI/AAAAAAAAAA8/HExcu56RdG4/s400/LinkPopup.JPG" alt="" id="BLOGGER_PHOTO_ID_5299356318590674610" border="0" /&gt;&lt;/a&gt;&lt;columns&gt;and of course include the greybox folder in the website, and the correct entries in the header section. I hope this helps someone, it took me some time to figure out.&lt;br /&gt;&lt;/columns&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6425333140845216274?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6425333140845216274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6425333140845216274' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6425333140845216274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6425333140845216274'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/02/greybox-popu-window-with-c-aspnet.html' title='GreyBox popup window with C# ASP.NET DataBound GridView application'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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/_cf56ZicoI6c/SYsYfpvRprI/AAAAAAAAAA8/HExcu56RdG4/s72-c/LinkPopup.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8662650099680278769</id><published>2009-01-30T11:36:00.001Z</published><updated>2011-10-22T00:23:51.165+01:00</updated><title type='text'>get database views based on system table - uses cursor</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @fetchStatus &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;; &lt;span class="kwrd"&gt;set&lt;/span&gt; @fetchStatus = 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; @str &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100), @views &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;declare&lt;/span&gt; tmp &lt;span class="kwrd"&gt;cursor&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; [name] &lt;span class="kwrd"&gt;from&lt;/span&gt; sys.views&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;open&lt;/span&gt; tmp&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;while&lt;/span&gt; @fetchStatus = 0 &lt;span class="kwrd"&gt;begin&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="kwrd"&gt;fetch&lt;/span&gt; tmp &lt;span class="kwrd"&gt;into&lt;/span&gt; @views&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;set&lt;/span&gt; @fetchStatus = &lt;span class="preproc"&gt;@@fetch_status&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; @fetchStatus = 0 &lt;span class="kwrd"&gt;begin&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;print&lt;/span&gt; @views&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;set&lt;/span&gt; @str = &lt;span class="str"&gt;'select * from '&lt;/span&gt; + @views + &lt;span class="str"&gt;' where 0 = 1'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;exec&lt;/span&gt; (@str)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="kwrd"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;close&lt;/span&gt; tmp&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;deallocate&lt;/span&gt; tmp&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8662650099680278769?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8662650099680278769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8662650099680278769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8662650099680278769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8662650099680278769'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/01/get-database-views-based-on-system.html' title='get database views based on system table - uses cursor'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1253859431942855565</id><published>2009-01-12T09:38:00.003Z</published><updated>2011-10-22T00:26:11.567+01:00</updated><title type='text'>MSSQL catch block to raiseerror using ErrorMessage, ErrorSeverity and ErrorState</title><content type='html'>&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; CATCH&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @ErrorMessage        NVARCHAR(4000)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @ErrorSeverity        &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @ErrorState            &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;@ErrorMessage = ERROR_MESSAGE(),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;@ErrorSeverity = ERROR_SEVERITY(),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;@ErrorState = ERROR_STATE();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;RAISERROR&lt;/span&gt; (@ErrorMessage, &lt;span class="rem"&gt;-- Message text.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;@ErrorSeverity, &lt;span class="rem"&gt;-- Severity.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;@ErrorState &lt;span class="rem"&gt;-- State.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt; CATCH&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1253859431942855565?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1253859431942855565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1253859431942855565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1253859431942855565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1253859431942855565'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2009/01/mssql-catch-block-to-raiseerror-using.html' title='MSSQL catch block to raiseerror using ErrorMessage, ErrorSeverity and ErrorState'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6500870430801907638</id><published>2008-12-16T17:21:00.001Z</published><updated>2008-12-16T17:21:33.053Z</updated><title type='text'>Nice GUI article</title><content type='html'>&lt;a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/"&gt;http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6500870430801907638?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6500870430801907638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6500870430801907638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6500870430801907638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6500870430801907638'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/nice-gui-article.html' title='Nice GUI article'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-214842380035096060</id><published>2008-12-12T14:06:00.003Z</published><updated>2011-10-22T00:24:37.245+01:00</updated><title type='text'>Configuring Kerberos Authentication</title><content type='html'>Configuring Kerberos Authentication (requires registration) but a very good article&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/articles/Security/65169/#"&gt;http://www.sqlservercentral.com/articles/Security/65169/#&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The query to check connections on SQL server (including their authentication type) is&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;s.session_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;, c.connect_time&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;, s.login_time&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;, s.login_name&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;, c.protocol_type&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;, c.auth_scheme&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;, s.HOST_NAME&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;, s.program_name&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_exec_sessions s&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.dm_exec_connections c&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; s.session_id = c.session_id&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Kerberos is configured usually using an Active Directory admin account and the utility SETSPN to set the service principle names required for proper operation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-214842380035096060?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/214842380035096060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=214842380035096060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/214842380035096060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/214842380035096060'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/configuring-kerberos-authentication.html' title='Configuring Kerberos Authentication'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3561769769538386040</id><published>2008-12-11T13:50:00.000Z</published><updated>2008-12-11T13:51:20.559Z</updated><title type='text'>Additional security: Secunia Personal Software Inspector</title><content type='html'>Secunia Personal Software Inspector&lt;br /&gt;&lt;br /&gt;&lt;a href="http://secunia.com/vulnerability_scanning/personal/"&gt;http://secunia.com/vulnerability_scanning/personal/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3561769769538386040?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3561769769538386040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3561769769538386040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3561769769538386040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3561769769538386040'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/additional-security-secunia-personal.html' title='Additional security: Secunia Personal Software Inspector'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2599997318650269097</id><published>2008-12-09T10:28:00.001Z</published><updated>2008-12-09T10:28:45.562Z</updated><title type='text'>Microsoft Application Verifier</title><content type='html'>&lt;span&gt;"Application Verifier is a runtime verification tool for unmanaged code that assists in quickly finding subtle programming errors that can be extremely difficult to identify with normal application testing.&lt;br /&gt;&lt;br /&gt;Application Verifier is designed specifically to detect and help debug memory corruptions and critical security vulnerabilities. It makes it easier to create reliable applications by monitoring an application's interaction with the Windows operating system, profiling its use of objects, the registry, the file system, and Win32 APIs (including heaps, handles, locks, and more). It also includes checks to predict how well the application will perform under Least-privileged User Account operation, compatibility tests to be used in logoing, and print tests to verify your usage of the print subsystem.&lt;br /&gt;&lt;br /&gt;Running Application Verifier is easy; simply turn on the tool then run your project and go through your normal testing scenarios with a debugger attached. When your tests are completed, view the Application Verifier logs for any errors that may have been detected."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=D2DD7EE0-AAA2-402A-821D-43795D6CF139&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=D2DD7EE0-AAA2-402A-821D-43795D6CF139&amp;amp;displaylang=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2599997318650269097?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2599997318650269097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2599997318650269097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2599997318650269097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2599997318650269097'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/microsoft-application-verifier.html' title='Microsoft Application Verifier'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1908973182140174001</id><published>2008-12-09T10:24:00.000Z</published><updated>2008-12-09T10:25:18.401Z</updated><title type='text'>MDAC Utility: Component Checker</title><content type='html'>&lt;span&gt;"The Component Checker tool is designed to help you determine installed  version information and diagnose installation issues with the Microsoft Data  Access Components (MDAC). MDAC is installed with numerous Microsoft products and  can also be redistributed using the redistribution program (mdac_typ.exe) that  you can download from the &lt;a href="http://msdn.microsoft.com/data"&gt;MSDN Data  Access and Storage Developer Center&lt;/a&gt;. Windows XP SP2 or later versions of  Windows also installs MDAC as an ‘out of box’ system component of the Windows  operating system. Since MDAC in Windows XP SP2 or later is newer than the  version (MDAC 2.8 SP1) in the last MDAC redistribution program, mdac_typ.exe no  longer installs MDAC on Windows XP SP2 and later version. For more information  about MDAC history and supportability please visit &lt;a href="http://msdn.microsoft.com/en-us/library/ms810810.aspx"&gt;Data Access  Technologies Road Map&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Component Checker performs the following  tasks:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Identifies the current MDAC installation on a computer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creates a series of reports about the files identified for the current MDAC  installation."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8F0A8DF6-4A21-4B43-BF53-14332EF092C9&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=8F0A8DF6-4A21-4B43-BF53-14332EF092C9&amp;amp;displaylang=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1908973182140174001?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1908973182140174001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1908973182140174001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1908973182140174001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1908973182140174001'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/mdac-utility-component-checker.html' title='MDAC Utility: Component Checker'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1782291190858812890</id><published>2008-12-04T16:06:00.000Z</published><updated>2008-12-04T16:07:51.134Z</updated><title type='text'>free sql tools and other utilities</title><content type='html'>SQL tools:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://weblogs.sqlteam.com/mladenp/archive/2007/11/20/Free-SQL-Server-tools-that-might-make-your-life-a.aspx"&gt;http://weblogs.sqlteam.com/mladenp/archive/2007/11/20/Free-SQL-Server-tools-that-might-make-your-life-a.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other utilities (requires free registration to read the article)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/articles/Tools/64908/"&gt;http://www.sqlservercentral.com/articles/Tools/64908/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1782291190858812890?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1782291190858812890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1782291190858812890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1782291190858812890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1782291190858812890'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/free-sql-tools-and-other-utilities.html' title='free sql tools and other utilities'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8026784450370121134</id><published>2008-12-04T12:15:00.000Z</published><updated>2008-12-04T12:16:43.205Z</updated><title type='text'>Utilities (software) tools list</title><content type='html'>Not sure I agree on all but overall very good list&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hanselman.com/blog/ScottHanselmans2007UltimateDeveloperAndPowerUsersToolListForWindows.aspx"&gt;http://www.hanselman.com/blog/ScottHanselmans2007UltimateDeveloperAndPowerUsersToolListForWindows.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8026784450370121134?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8026784450370121134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8026784450370121134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8026784450370121134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8026784450370121134'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/utilities-software-tools-list.html' title='Utilities (software) tools list'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8626748359595266528</id><published>2008-12-02T15:29:00.008Z</published><updated>2008-12-03T10:23:48.432Z</updated><title type='text'>.NET books list</title><content type='html'>from a poster in amazon...&lt;br /&gt;&lt;br /&gt;My top recommended books:&lt;br /&gt;1. "&lt;a href="http://www.amazon.co.uk/Accelerated-C-2008-Trey-Nash/dp/1590598733/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1228231940&amp;amp;sr=8-1"&gt;Accelerated C#&lt;/a&gt;" by Trey Nash&lt;br /&gt;2. "&lt;a href="http://www.amazon.com/Programming-NET-Components-Juval-Lowy/dp/0596003471"&gt;Programming .NET Components&lt;/a&gt;" by Juval Lowy&lt;br /&gt;3. "&lt;a href="http://www.amazon.com/gp/product/0735619484/sr=1-1/qid=1156801743/ref=sr_1_1/104-6313703-3867159?ie=UTF8&amp;amp;s=books"&gt;Test Driven Development in Microsoft .NET&lt;/a&gt;"&lt;br /&gt;4. "Head First Design Patterns" [in Java but good]&lt;br /&gt;5. "&lt;a href="http://www.amazon.com/gp/product/0735621632/sr=1-1/qid=1156801743/ref=sr_1_1/104-6313703-3867159?ie=UTF8&amp;amp;s=books"&gt;CLR Via C#&lt;/a&gt;" by Jeffrey Richter&lt;br /&gt;6. "&lt;a href="http://www.amazon.com/gp/product/0735619670/sr=1-1/qid=1156801743/ref=sr_1_1/104-6313703-3867159?ie=UTF8&amp;amp;s=books"&gt;Code Complete&lt;/a&gt;" [Steve McConnell]&lt;br /&gt;7. "&lt;a href="http://www.amazon.co.uk/Pro-2008-NET-Platform-Fourth/dp/1590598849"&gt;Pro C# 2008 and the .NET 3.5 Platform&lt;/a&gt;" [Excellent]&lt;br /&gt;8. "&lt;a href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756"&gt;Framework Design Guidelines&lt;/a&gt;"&lt;br /&gt;9. "WCF" by Juvy Lowy [Advanced stuff, but excellent]&lt;br /&gt;10. "Pro LINQ Language Integrated Query in C# 2008"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8626748359595266528?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8626748359595266528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8626748359595266528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8626748359595266528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8626748359595266528'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/12/net-books.html' title='.NET books list'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6204317536331437969</id><published>2008-11-27T16:02:00.001Z</published><updated>2008-11-27T16:03:52.245Z</updated><title type='text'>Improve windows startup time</title><content type='html'>&lt;a href="http://lifehacker.com/5087101/the-complete-guide-to-speeding-up-your-pcs-startup"&gt;http://lifehacker.com/5087101/the-complete-guide-to-speeding-up-your-pcs-startup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also make sure you follow the link at the bottom to &lt;a href="http://lifehacker.com/5033518/debunking-common-windows-performance-tweaking-myths"&gt;debunking  Windows performance-tweaking myths&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6204317536331437969?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6204317536331437969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6204317536331437969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6204317536331437969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6204317536331437969'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/improve-windows-startup-time.html' title='Improve windows startup time'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3425563816943987525</id><published>2008-11-27T15:43:00.001Z</published><updated>2008-11-27T15:43:31.755Z</updated><title type='text'>.NET Cheatsheets</title><content type='html'>&lt;a href="http://john-sheehan.com/blog/index.php/net-cheat-sheets/"&gt;http://john-sheehan.com/blog/index.php/net-cheat-sheets/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3425563816943987525?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3425563816943987525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3425563816943987525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3425563816943987525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3425563816943987525'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/net-cheatsheets.html' title='.NET Cheatsheets'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4550170993860557846</id><published>2008-11-14T10:23:00.000Z</published><updated>2008-11-14T10:24:08.004Z</updated><title type='text'>For Mac Lovers ...</title><content type='html'>&lt;a href="http://www.flyakiteosx.com/screenshots/"&gt;http://www.flyakiteosx.com/screenshots/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4550170993860557846?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4550170993860557846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4550170993860557846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4550170993860557846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4550170993860557846'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/for-mac-lovers.html' title='For Mac Lovers ...'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5887024447455639645</id><published>2008-11-12T13:50:00.003Z</published><updated>2011-10-22T00:25:33.794+01:00</updated><title type='text'>SQL Index Defrag</title><content type='html'>Looks neat &lt;a href="http://sqlfool.com/2008/11/updated-index-defrag-script-2005-2008/"&gt;http://sqlfool.com/2008/11/updated-index-defrag-script-2005-2008/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the standard version of SQL server the script is: (all credits to the author in the link provided above):&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; &lt;span class="kwrd"&gt;EXISTS&lt;/span&gt;(&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; OBJECT_ID &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.tables&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; [name] = N&lt;span class="str"&gt;'dba_indexDefragLog'&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;DROP&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; dbo.dba_indexDefragLog;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;PRINT&lt;/span&gt; &lt;span class="str"&gt;'dba_indexDefragLog table dropped!'&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; dbo.dba_indexDefragLog&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;(&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;indexDefrag_id    &lt;span class="kwrd"&gt;INT&lt;/span&gt; &lt;span class="kwrd"&gt;IDENTITY&lt;/span&gt;(1,1)   &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;, objectID          &lt;span class="kwrd"&gt;INT&lt;/span&gt;                 &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;, objectName        NVARCHAR(130)       &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;, indexID           &lt;span class="kwrd"&gt;INT&lt;/span&gt;                 &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;, indexName         NVARCHAR(130)       &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;, fragmentation     &lt;span class="kwrd"&gt;FLOAT&lt;/span&gt;               &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;, page_count        &lt;span class="kwrd"&gt;INT&lt;/span&gt;                 &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;, dateTimeStart     DATETIME            &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;, durationSeconds   &lt;span class="kwrd"&gt;INT&lt;/span&gt;                 &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; PK_indexDefragLog&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt; &lt;span class="kwrd"&gt;KEY&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; (indexDefrag_id)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&lt;span class="kwrd"&gt;PRINT&lt;/span&gt; &lt;span class="str"&gt;'dba_indexDefragLog Table Created'&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; OBJECTPROPERTY(OBJECT_ID(&lt;span class="str"&gt;'dbo.dba_indexDefragStandard_sp'&lt;/span&gt;),&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;N&lt;span class="str"&gt;'IsProcedure'&lt;/span&gt;) &lt;span class="kwrd"&gt;IS&lt;/span&gt; &lt;span class="kwrd"&gt;Null&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&lt;span class="kwrd"&gt;EXECUTE&lt;/span&gt; (&lt;span class="str"&gt;'Create Procedure dbo.dba_indexDefragStandard_sp&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;As Print '&lt;/span&gt;&lt;span class="str"&gt;'Hello World!'&lt;/span&gt;&lt;span class="str"&gt;''&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&lt;span class="kwrd"&gt;RAISERROR&lt;/span&gt;(&lt;span class="str"&gt;'Procedure dba_indexDefragStandard_sp created.'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;, 10, 1);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;&lt;span class="kwrd"&gt;Go&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; ANSI_Nulls &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; Ansi_Padding &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; Ansi_Warnings &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; ArithAbort &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; Concat_Null_Yields_Null &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; Numeric_RoundAbort &lt;span class="kwrd"&gt;OFF&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; Quoted_Identifier &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;&lt;span class="kwrd"&gt;Go&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;PROCEDURE&lt;/span&gt; dbo.dba_indexDefragStandard_sp&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Parameters&lt;/span&gt; */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;@minFragmentation     &lt;span class="kwrd"&gt;FLOAT&lt;/span&gt;           = 10.0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;percent&lt;/span&gt;, will &lt;span class="kwrd"&gt;not&lt;/span&gt; defrag &lt;span class="kwrd"&gt;if&lt;/span&gt; fragmentation&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;&lt;span class="kwrd"&gt;less&lt;/span&gt; &lt;span class="kwrd"&gt;than&lt;/span&gt; specified */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;, @rebuildThreshold     &lt;span class="kwrd"&gt;FLOAT&lt;/span&gt;           = 30.0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;percent&lt;/span&gt;, greater &lt;span class="kwrd"&gt;than&lt;/span&gt; @rebuildThreshold&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;will &lt;span class="kwrd"&gt;result&lt;/span&gt; &lt;span class="kwrd"&gt;in&lt;/span&gt; rebuild instead &lt;span class="kwrd"&gt;of&lt;/span&gt; reorg */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;, @executeSQL           &lt;span class="kwrd"&gt;BIT&lt;/span&gt;             = 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;/* 1 = &lt;span class="kwrd"&gt;execute&lt;/span&gt;; 0 = &lt;span class="kwrd"&gt;print&lt;/span&gt; command &lt;span class="kwrd"&gt;only&lt;/span&gt; */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;, @tableName            &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(4000)   = &lt;span class="kwrd"&gt;Null&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Option&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; specify a &lt;span class="kwrd"&gt;table&lt;/span&gt; name */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;, @printCommands        &lt;span class="kwrd"&gt;BIT&lt;/span&gt;             = 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;/* 1 = &lt;span class="kwrd"&gt;print&lt;/span&gt; commands; 0 = do &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;print&lt;/span&gt; commands */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;, @printFragmentation   &lt;span class="kwrd"&gt;BIT&lt;/span&gt;             = 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;/* 1 = &lt;span class="kwrd"&gt;print&lt;/span&gt; fragmentation &lt;span class="kwrd"&gt;prior&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; defrag;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;0 = do &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;print&lt;/span&gt; */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;, @defragDelay          &lt;span class="kwrd"&gt;CHAR&lt;/span&gt;(8)         = &lt;span class="str"&gt;'00:00:05'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;time&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; wait &lt;span class="kwrd"&gt;between&lt;/span&gt; defrag commands */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;/********************************************************************&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;Name:       dba_indexDefragStandard_sp&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;Author:     Michelle F. Ufford&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;Purpose:    Defrags &lt;span class="kwrd"&gt;all&lt;/span&gt; indexes &lt;span class="kwrd"&gt;for&lt;/span&gt; the &lt;span class="kwrd"&gt;current&lt;/span&gt; &lt;span class="kwrd"&gt;database&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt;Notes:      This script was designed &lt;span class="kwrd"&gt;for&lt;/span&gt; &lt;span class="kwrd"&gt;SQL&lt;/span&gt; Server 2005&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;Standard edition.&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&gt;CAUTION: Monitor &lt;span class="kwrd"&gt;transaction&lt;/span&gt; log &lt;span class="kwrd"&gt;if&lt;/span&gt; executing &lt;span class="kwrd"&gt;for&lt;/span&gt; the &lt;span class="kwrd"&gt;first&lt;/span&gt; &lt;span class="kwrd"&gt;time&lt;/span&gt;!&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  80:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  81:  &lt;/span&gt;@minFragmentation     defaulted &lt;span class="kwrd"&gt;to&lt;/span&gt; 10%, will &lt;span class="kwrd"&gt;not&lt;/span&gt; defrag &lt;span class="kwrd"&gt;if&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  82:  &lt;/span&gt;fragmentation &lt;span class="kwrd"&gt;if&lt;/span&gt; &lt;span class="kwrd"&gt;less&lt;/span&gt; &lt;span class="kwrd"&gt;than&lt;/span&gt; specified.&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  83:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  84:  &lt;/span&gt;@rebuildThreshold     defaulted &lt;span class="kwrd"&gt;to&lt;/span&gt; 30% &lt;span class="kwrd"&gt;as&lt;/span&gt; recommended &lt;span class="kwrd"&gt;by&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  85:  &lt;/span&gt;Microsoft &lt;span class="kwrd"&gt;in&lt;/span&gt; BOL;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  86:  &lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;than&lt;/span&gt; 30% will &lt;span class="kwrd"&gt;result&lt;/span&gt; &lt;span class="kwrd"&gt;in&lt;/span&gt; rebuild instead&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  87:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  88:  &lt;/span&gt;@executeSQL           1 = &lt;span class="kwrd"&gt;execute&lt;/span&gt; the &lt;span class="kwrd"&gt;SQL&lt;/span&gt; generated &lt;span class="kwrd"&gt;by&lt;/span&gt; this &lt;span class="kwrd"&gt;proc&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  89:  &lt;/span&gt;0 = &lt;span class="kwrd"&gt;print&lt;/span&gt; command &lt;span class="kwrd"&gt;only&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  90:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  91:  &lt;/span&gt;@tableName            Specify &lt;span class="kwrd"&gt;if&lt;/span&gt; you &lt;span class="kwrd"&gt;only&lt;/span&gt; want &lt;span class="kwrd"&gt;to&lt;/span&gt; defrag indexes&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  92:  &lt;/span&gt;&lt;span class="kwrd"&gt;for&lt;/span&gt; a &lt;span class="kwrd"&gt;specific&lt;/span&gt; &lt;span class="kwrd"&gt;table&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  93:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  94:  &lt;/span&gt;@printCommands        1 = &lt;span class="kwrd"&gt;print&lt;/span&gt; commands &lt;span class="kwrd"&gt;to&lt;/span&gt; screen;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  95:  &lt;/span&gt;0 = do &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;print&lt;/span&gt; commands&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  96:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  97:  &lt;/span&gt;@printFragmentation   1 = &lt;span class="kwrd"&gt;print&lt;/span&gt; fragmentation &lt;span class="kwrd"&gt;to&lt;/span&gt; screen;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  98:  &lt;/span&gt;0 = do &lt;span class="kwrd"&gt;not&lt;/span&gt; &lt;span class="kwrd"&gt;print&lt;/span&gt; fragmentation&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  99:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 100:  &lt;/span&gt;@defragDelay          &lt;span class="kwrd"&gt;time&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; wait &lt;span class="kwrd"&gt;between&lt;/span&gt; defrag commands;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 101:  &lt;/span&gt;gives the server &lt;span class="kwrd"&gt;some&lt;/span&gt; &lt;span class="kwrd"&gt;time&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; catch up&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 102:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 103:  &lt;/span&gt;Called &lt;span class="kwrd"&gt;by&lt;/span&gt;:  &lt;span class="kwrd"&gt;SQL&lt;/span&gt; Agent Job &lt;span class="kwrd"&gt;or&lt;/span&gt; DBA&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 104:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 105:  &lt;/span&gt;&lt;span class="kwrd"&gt;Date&lt;/span&gt;        Initials  Description&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 106:  &lt;/span&gt;--------------------------------------------------------------&lt;span class="rem"&gt;--&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 107:  &lt;/span&gt;2008-10-27  MFU       Initial Release&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 108:  &lt;/span&gt;2008-11-17  MFU       Added page_count &lt;span class="kwrd"&gt;to&lt;/span&gt; log &lt;span class="kwrd"&gt;table&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 109:  &lt;/span&gt;, added @printFragmentation &lt;span class="kwrd"&gt;option&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 110:  &lt;/span&gt;********************************************************************&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 111:  &lt;/span&gt;&lt;span class="kwrd"&gt;Exec&lt;/span&gt; dbo.dba_indexDefragStandard_sp&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 112:  &lt;/span&gt;@executeSQL         = 1&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 113:  &lt;/span&gt;, @printCommands      = 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 114:  &lt;/span&gt;, @minFragmentation   = 0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 115:  &lt;/span&gt;, @printFragmentation = 1;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 116:  &lt;/span&gt;********************************************************************/&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 117:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 118:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 119:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; XACT_Abort &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 120:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 121:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 122:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 123:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Declare&lt;/span&gt; our variables */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 124:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt;   @objectID         &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 125:  &lt;/span&gt;, @indexID          &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 126:  &lt;/span&gt;, @schemaName       NVARCHAR(130)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 127:  &lt;/span&gt;, @objectName       NVARCHAR(130)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 128:  &lt;/span&gt;, @indexName        NVARCHAR(130)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 129:  &lt;/span&gt;, @fragmentation    &lt;span class="kwrd"&gt;FLOAT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 130:  &lt;/span&gt;, @pageCount        &lt;span class="kwrd"&gt;INT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 131:  &lt;/span&gt;, @sqlCommand       NVARCHAR(4000)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 132:  &lt;/span&gt;, @rebuildCommand   NVARCHAR(200)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 133:  &lt;/span&gt;, @dateTimeStart    DATETIME&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 134:  &lt;/span&gt;, @dateTimeEnd      DATETIME&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 135:  &lt;/span&gt;, @containsLOB      &lt;span class="kwrd"&gt;BIT&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 136:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 137:  &lt;/span&gt;/* Just a little validation... */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 138:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @minFragmentation &lt;span class="kwrd"&gt;Not&lt;/span&gt; &lt;span class="kwrd"&gt;Between&lt;/span&gt; 0.00 &lt;span class="kwrd"&gt;And&lt;/span&gt; 100.0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 139:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @minFragmentation = 10.0;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 140:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 141:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @rebuildThreshold &lt;span class="kwrd"&gt;Not&lt;/span&gt; &lt;span class="kwrd"&gt;Between&lt;/span&gt; 0.00 &lt;span class="kwrd"&gt;And&lt;/span&gt; 100.0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 142:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @rebuildThreshold = 30.0;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 143:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 144:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @defragDelay &lt;span class="kwrd"&gt;Not&lt;/span&gt; &lt;span class="kwrd"&gt;Like&lt;/span&gt; &lt;span class="str"&gt;'00:[0-5][0-9]:[0-5][0-9]'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 145:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @defragDelay = &lt;span class="str"&gt;'00:00:05'&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 146:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 147:  &lt;/span&gt;/* Determine which indexes &lt;span class="kwrd"&gt;to&lt;/span&gt; defrag &lt;span class="kwrd"&gt;using&lt;/span&gt; our&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 148:  &lt;/span&gt;&lt;span class="kwrd"&gt;user&lt;/span&gt;-defined &lt;span class="kwrd"&gt;parameters&lt;/span&gt; */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 149:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 150:  &lt;/span&gt;OBJECT_ID &lt;span class="kwrd"&gt;AS&lt;/span&gt; objectID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 151:  &lt;/span&gt;, index_id &lt;span class="kwrd"&gt;AS&lt;/span&gt; indexID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 152:  &lt;/span&gt;, avg_fragmentation_in_percent &lt;span class="kwrd"&gt;AS&lt;/span&gt; fragmentation&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 153:  &lt;/span&gt;, page_count&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 154:  &lt;/span&gt;, 0 &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'defragStatus'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 155:  &lt;/span&gt;/* 0 = unprocessed, 1 = processed */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 156:  &lt;/span&gt;&lt;span class="kwrd"&gt;INTO&lt;/span&gt; #indexDefragList&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 157:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_db_index_physical_stats&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 158:  &lt;/span&gt;(DB_ID(), OBJECT_ID(@tableName), &lt;span class="kwrd"&gt;NULL&lt;/span&gt; , &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, N&lt;span class="str"&gt;'Limited'&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 159:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; avg_fragmentation_in_percent &amp;gt; @minFragmentation&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 160:  &lt;/span&gt;&lt;span class="kwrd"&gt;And&lt;/span&gt; index_id &amp;gt; 0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 161:  &lt;/span&gt;&lt;span class="kwrd"&gt;OPTION&lt;/span&gt; (MaxDop 1);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 162:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 163:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Create&lt;/span&gt; a &lt;span class="kwrd"&gt;clustered&lt;/span&gt; &lt;span class="kwrd"&gt;index&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; boost performance a little */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 164:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; &lt;span class="kwrd"&gt;INDEX&lt;/span&gt; CIX_temp_indexDefragList&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 165:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; #indexDefragList(objectID, indexID);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 166:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 167:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Begin&lt;/span&gt; our loop &lt;span class="kwrd"&gt;for&lt;/span&gt; defragging */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 168:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHILE&lt;/span&gt; (&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(*) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; #indexDefragList&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 169:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; defragStatus = 0) &amp;gt; 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 170:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 171:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 172:  &lt;/span&gt;/* Grab the most fragmented &lt;span class="kwrd"&gt;index&lt;/span&gt; &lt;span class="kwrd"&gt;first&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; defrag */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 173:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;TOP&lt;/span&gt; 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 174:  &lt;/span&gt;@objectID         = objectID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 175:  &lt;/span&gt;, @fragmentation    = fragmentation&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 176:  &lt;/span&gt;, @indexID          = indexID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 177:  &lt;/span&gt;, @pageCount        = page_count&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 178:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; #indexDefragList&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 179:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; defragStatus = 0&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 180:  &lt;/span&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; fragmentation &lt;span class="kwrd"&gt;DESC&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 181:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 182:  &lt;/span&gt;/* Look up &lt;span class="kwrd"&gt;index&lt;/span&gt; information */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 183:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @objectName = QUOTENAME(o.name)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 184:  &lt;/span&gt;, @schemaName = QUOTENAME(s.name)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 185:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.objects &lt;span class="kwrd"&gt;AS&lt;/span&gt; o&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 186:  &lt;/span&gt;&lt;span class="kwrd"&gt;Inner&lt;/span&gt; &lt;span class="kwrd"&gt;Join&lt;/span&gt; sys.schemas &lt;span class="kwrd"&gt;AS&lt;/span&gt; s&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 187:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; s.schema_id = o.schema_id&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 188:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; o.OBJECT_ID = @objectID;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 189:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 190:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; @indexName = QUOTENAME(name)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 191:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.indexes&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 192:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; OBJECT_ID = @objectID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 193:  &lt;/span&gt;&lt;span class="kwrd"&gt;And&lt;/span&gt; index_id = @indexID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 194:  &lt;/span&gt;&lt;span class="kwrd"&gt;And&lt;/span&gt; type &amp;gt; 0;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 195:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 196:  &lt;/span&gt;/* Look &lt;span class="kwrd"&gt;for&lt;/span&gt; LOBs */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 197:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;TOP&lt;/span&gt; 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 198:  &lt;/span&gt;@containsLOB = column_id&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 199:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.columns &lt;span class="kwrd"&gt;WITH&lt;/span&gt; (NOLOCK)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 200:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 201:  &lt;/span&gt;[OBJECT_ID] = @objectID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 202:  &lt;/span&gt;&lt;span class="kwrd"&gt;And&lt;/span&gt; (system_type_id &lt;span class="kwrd"&gt;In&lt;/span&gt; (34, 35, 99)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 203:  &lt;/span&gt;&lt;span class="rem"&gt;-- 34 = image, 35 = text, 99 = ntext&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 204:  &lt;/span&gt;&lt;span class="kwrd"&gt;Or&lt;/span&gt; max_length = -1);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 205:  &lt;/span&gt;&lt;span class="rem"&gt;-- varbinary(max), varchar(max), nvarchar(max), xml&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 206:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 207:  &lt;/span&gt;/* See &lt;span class="kwrd"&gt;if&lt;/span&gt; we should rebuild &lt;span class="kwrd"&gt;or&lt;/span&gt; reorganize; handle thusly */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 208:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @fragmentation &amp;lt; @rebuildThreshold             &lt;span class="kwrd"&gt;Or&lt;/span&gt; IsNull(@containsLOB, 0) &amp;gt; 0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 209:  &lt;/span&gt;&lt;span class="rem"&gt;-- Cannot rebuild if the table has one or more LOB&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 210:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @sqlCommand = N&lt;span class="str"&gt;'Alter Index '&lt;/span&gt; + @indexName + N&lt;span class="str"&gt;' On '&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 211:  &lt;/span&gt;+ @schemaName + N&lt;span class="str"&gt;'.'&lt;/span&gt; + @objectName + N&lt;span class="str"&gt;' ReOrganize;'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 212:  &lt;/span&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 213:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @sqlCommand = N&lt;span class="str"&gt;'Alter Index '&lt;/span&gt; + @indexName + N&lt;span class="str"&gt;' On '&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 214:  &lt;/span&gt;+ @schemaName + N&lt;span class="str"&gt;'.'&lt;/span&gt; + @objectName +  &lt;span class="str"&gt;' Rebuild '&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 215:  &lt;/span&gt;+ &lt;span class="str"&gt;'With (MaxDop = 1)'&lt;/span&gt;; &lt;span class="rem"&gt;-- minimize impact on server&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 216:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 217:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Are&lt;/span&gt; we executing the &lt;span class="kwrd"&gt;SQL&lt;/span&gt;?  &lt;span class="kwrd"&gt;If&lt;/span&gt; so, do it */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 218:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @executeSQL = 1&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 219:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 220:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 221:  &lt;/span&gt;/* Grab the &lt;span class="kwrd"&gt;time&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt; logging purposes */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 222:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @dateTimeStart  = GETDATE();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 223:  &lt;/span&gt;&lt;span class="kwrd"&gt;EXECUTE&lt;/span&gt; (@sqlCommand);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 224:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; @dateTimeEnd  = GETDATE();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 225:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 226:  &lt;/span&gt;/* Log our actions */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 227:  &lt;/span&gt;&lt;span class="kwrd"&gt;INSERT&lt;/span&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; dbo.dba_indexDefragLog&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 228:  &lt;/span&gt;(&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 229:  &lt;/span&gt;objectID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 230:  &lt;/span&gt;, objectName&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 231:  &lt;/span&gt;, indexID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 232:  &lt;/span&gt;, indexName&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 233:  &lt;/span&gt;, fragmentation&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 234:  &lt;/span&gt;, page_count&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 235:  &lt;/span&gt;, dateTimeStart&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 236:  &lt;/span&gt;, durationSeconds&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 237:  &lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 238:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 239:  &lt;/span&gt;@objectID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 240:  &lt;/span&gt;, @objectName&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 241:  &lt;/span&gt;, @indexID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 242:  &lt;/span&gt;, @indexName&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 243:  &lt;/span&gt;, @fragmentation&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 244:  &lt;/span&gt;, @pageCount&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 245:  &lt;/span&gt;, @dateTimeStart&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 246:  &lt;/span&gt;, DATEDIFF(&lt;span class="kwrd"&gt;SECOND&lt;/span&gt;, @dateTimeStart, @dateTimeEnd);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 247:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 248:  &lt;/span&gt;/* Just a little breather &lt;span class="kwrd"&gt;for&lt;/span&gt; the server */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 249:  &lt;/span&gt;&lt;span class="kwrd"&gt;WAITFOR&lt;/span&gt; Delay @defragDelay;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 250:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 251:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;Print&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; specified &lt;span class="kwrd"&gt;to&lt;/span&gt; do so */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 252:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @printCommands = 1&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 253:  &lt;/span&gt;&lt;span class="kwrd"&gt;PRINT&lt;/span&gt; N&lt;span class="str"&gt;'Executed: '&lt;/span&gt; + @sqlCommand;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 254:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 255:  &lt;/span&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 256:  &lt;/span&gt;/* Looks &lt;span class="kwrd"&gt;like&lt;/span&gt; we&lt;span class="str"&gt;'re not executing, just print&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 257:  &lt;/span&gt;the commands */&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 258:  &lt;/span&gt;BEGIN&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 259:  &lt;/span&gt;IF @printCommands = 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 260:  &lt;/span&gt;PRINT @sqlCommand;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 261:  &lt;/span&gt;END&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 262:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 263:  &lt;/span&gt;/* Update our index defrag list when we'&lt;/span&gt;ve&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 264:  &lt;/span&gt;finished &lt;span class="kwrd"&gt;with&lt;/span&gt; that &lt;span class="kwrd"&gt;index&lt;/span&gt; */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 265:  &lt;/span&gt;&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; #indexDefragList&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 266:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; defragStatus = 1&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 267:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; objectID  = @objectID&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 268:  &lt;/span&gt;&lt;span class="kwrd"&gt;And&lt;/span&gt; indexID   = @indexID;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 269:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 270:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 271:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 272:  &lt;/span&gt;/* Do we want &lt;span class="kwrd"&gt;to&lt;/span&gt; &lt;span class="kwrd"&gt;output&lt;/span&gt; our fragmentation results? */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 273:  &lt;/span&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; @printFragmentation = 1&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 274:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; idl.objectID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 275:  &lt;/span&gt;, o.name &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'tableName'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 276:  &lt;/span&gt;, idl.indexID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 277:  &lt;/span&gt;, i.name &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="str"&gt;'indexName'&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 278:  &lt;/span&gt;, idl.fragmentation&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 279:  &lt;/span&gt;, idl.page_count&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 280:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; #indexDefragList &lt;span class="kwrd"&gt;AS&lt;/span&gt; idl&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 281:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.objects &lt;span class="kwrd"&gt;AS&lt;/span&gt; o&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 282:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; idl.objectID = o.OBJECT_ID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 283:  &lt;/span&gt;&lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.indexes &lt;span class="kwrd"&gt;AS&lt;/span&gt; i&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 284:  &lt;/span&gt;&lt;span class="kwrd"&gt;ON&lt;/span&gt; idl.objectID = i.OBJECT_ID&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 285:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; idl.indexID = i.index_id;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 286:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 287:  &lt;/span&gt;/* &lt;span class="kwrd"&gt;When&lt;/span&gt; everything &lt;span class="kwrd"&gt;is&lt;/span&gt; done, make sure &lt;span class="kwrd"&gt;to&lt;/span&gt; &lt;span class="kwrd"&gt;get&lt;/span&gt; rid &lt;span class="kwrd"&gt;of&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 288:  &lt;/span&gt;our temp &lt;span class="kwrd"&gt;table&lt;/span&gt; */&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 289:  &lt;/span&gt;&lt;span class="kwrd"&gt;DROP&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; #indexDefragList;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 290:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 291:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;OFF&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 292:  &lt;/span&gt;&lt;span class="kwrd"&gt;RETURN&lt;/span&gt; 0&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt; 293:  &lt;/span&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt; 294:  &lt;/span&gt;Go&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5887024447455639645?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5887024447455639645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5887024447455639645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5887024447455639645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5887024447455639645'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/sql-index-defrag.html' title='SQL Index Defrag'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7799347375539513044</id><published>2008-11-11T16:40:00.000Z</published><updated>2008-11-11T16:41:15.365Z</updated><title type='text'>SQL Server Best Practices</title><content type='html'>by Microsoft technet: &lt;a href="http://technet.microsoft.com/en-gb/sqlserver/bb671430.aspx"&gt;http://technet.microsoft.com/en-gb/sqlserver/bb671430.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7799347375539513044?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7799347375539513044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7799347375539513044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7799347375539513044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7799347375539513044'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/sql-server-best-practices.html' title='SQL Server Best Practices'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2460275711850393681</id><published>2008-11-11T11:43:00.001Z</published><updated>2008-11-11T11:43:38.347Z</updated><title type='text'>windows server 2008 workstation</title><content type='html'>interesting approach between vista and XP &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoworld.com/article/08/03/17/12TC-windows-workstation-2008_1.html"&gt;http://www.infoworld.com/article/08/03/17/12TC-windows-workstation-2008_1.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2460275711850393681?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2460275711850393681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2460275711850393681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2460275711850393681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2460275711850393681'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/windows-server-2008-workstation.html' title='windows server 2008 workstation'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8843541244339505433</id><published>2008-11-04T15:09:00.004Z</published><updated>2008-11-05T17:36:20.375Z</updated><title type='text'>Google visualization API</title><content type='html'>Released, blogged here: &lt;a href="http://google-code-updates.blogspot.com/2008/11/introducing-powerful-visualizations-for.html"&gt;http://google-code-updates.blogspot.com/2008/11/introducing-powerful-visualizations-for.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nice example here: &lt;a href="http://jpbi.blogspot.com/2008/03/motion-chart-provided-by-google.html#"&gt;http://jpbi.blogspot.com/2008/03/motion-chart-provided-by-google.html#&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Home here: &lt;a href="http://code.google.com/apis/visualization/"&gt;http://code.google.com/apis/visualization/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also on a related note: &lt;a href="http://www.gapminder.org/"&gt;http://www.gapminder.org/&lt;/a&gt; (check the links section too)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8843541244339505433?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8843541244339505433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8843541244339505433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8843541244339505433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8843541244339505433'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/11/google-visualization-api.html' title='Google visualization API'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8939590174079318972</id><published>2008-10-30T09:53:00.012Z</published><updated>2011-10-22T00:28:56.103+01:00</updated><title type='text'>SQL Server Language Settings</title><content type='html'>This is to solve the problem where we want to be using British English in SQL but it insists in using US English.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;PRINT&lt;/span&gt; &lt;span class="preproc"&gt;@@LANGUAGE&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Will show you current default server language (should be British).&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;sp_defaultlanguage &lt;span class="str"&gt;'your-domain\your-username'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;will make your username take on the default of the server. (of course replace username with the one you want to change). If the logins are done via groups and not individual users, you will need to change the group's default language (by using the group instead of the specific user as parameter to sp_defaultlanguage).&lt;br /&gt;&lt;br /&gt;also read for more information:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sp_defaultlanguage&lt;/span&gt; doc:&lt;br /&gt;&lt;a href="http://doc.ddart.net/mssql/sql70/sp_da-di_7.htm"&gt;http://doc.ddart.net/mssql/sql70/sp_da-di_7.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;default language options&lt;/span&gt;:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa196707%28SQL.80%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa196707(SQL.80).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sp_configure&lt;/span&gt; doc:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa259616%28SQL.80%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa259616(SQL.80).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If all fails you can use SET DATEFORMAT eg&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; DATEFORMAT dmy&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;for European, inside the stored procedure you are executing, but I prefer the first solution based on user settings. On the other hand the SET DATEFORMAT command in the stored procedure makes it more robust, its up to you.&lt;br /&gt;&lt;br /&gt;Failing all can use:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; LOGIN user1 &lt;span class="kwrd"&gt;WITH&lt;/span&gt; DEFAULT_LANGUAGE = British&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8939590174079318972?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8939590174079318972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8939590174079318972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8939590174079318972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8939590174079318972'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/print-language-will-show-you-current.html' title='SQL Server Language Settings'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-9101929456957074687</id><published>2008-10-24T09:47:00.004+01:00</published><updated>2011-10-22T00:34:40.401+01:00</updated><title type='text'>Programmatically select DataGridView row</title><content type='html'>This can be useful if we are updating a row in a DataGridView and we want to refresh the DataSource, still the selected row to remain the same. &lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (selectedIndex &amp;gt; -1 &amp;amp;&amp;amp; dataGridView1.Rows.Count &amp;gt; selectedIndex)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    dataGridView1.Rows[selectedIndex].Selected = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    dataGridView1.FirstDisplayedScrollingRowIndex = selectedIndex;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-9101929456957074687?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/9101929456957074687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=9101929456957074687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9101929456957074687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/9101929456957074687'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/programmatically-select-datagridview.html' title='Programmatically select DataGridView row'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8419970036910576146</id><published>2008-10-20T14:13:00.003+01:00</published><updated>2008-10-30T10:12:32.657Z</updated><title type='text'>Recycling</title><content type='html'>Freecycle (&lt;a href="www.freecycle.org"&gt;www.freecycle.org&lt;/a&gt;) is a place to pass along no longer needed items and possibly find something you need - better passed along than in a landfill.  A LaserJet III probably won't be your first choice for a business proposal or resume, but it's OK for a draft copy of anything or printing a program listing.  It's a great deal if it's free and toner cartridges are still plentiful and cheap.&lt;br /&gt;&lt;br /&gt;Craig's List (&lt;a href="www.craigslist.org"&gt;www.craigslist.org&lt;/a&gt;) has free, for sale, and wanted sections.  You can find lawn and garden, furniture, computers, entertainment gear, kids' stuff and lots more.  That 18 year old truck was sold via Craig's list and I had cash-in-hand in 24 hours from the time the ad was posted - there's no charge to post or sell on Craig's List.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8419970036910576146?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8419970036910576146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8419970036910576146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8419970036910576146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8419970036910576146'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/freecycle-www.html' title='Recycling'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6145270655719804727</id><published>2008-10-20T11:28:00.003+01:00</published><updated>2008-10-20T11:36:35.640+01:00</updated><title type='text'>Portable database VistaDB</title><content type='html'>This is an alternative to sqlite, &lt;a href="http://vistadb.net/vistadb3/features.aspx"&gt;http://vistadb.net/vistadb3/features.aspx&lt;/a&gt;. Although it is commercial, they also offer a free version. The database is written in .NET and seems to have all the basic features you would want. Worth considering for projects requiring a small database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6145270655719804727?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6145270655719804727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6145270655719804727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6145270655719804727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6145270655719804727'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/portable-database.html' title='Portable database VistaDB'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1224629124389967139</id><published>2008-10-17T09:27:00.002+01:00</published><updated>2008-10-20T11:30:45.643+01:00</updated><title type='text'>ASP.NET MVC framework beta</title><content type='html'>Nice article explaining the features of ASP.NET MVC framework in its beta state&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx&lt;/a&gt;. Looks quite neat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1224629124389967139?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1224629124389967139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1224629124389967139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1224629124389967139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1224629124389967139'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/nice-article-explaining-features-of-asp.html' title='ASP.NET MVC framework beta'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2289126218515550854</id><published>2008-10-14T15:05:00.015+01:00</published><updated>2011-10-21T23:17:20.401+01:00</updated><title type='text'>Active directory group and member properties, DirectorySearcher PropertiesToLoad possible values</title><content type='html'>Normally you would use code like this, to retrieve values for specific properties of an Active Directory group (specified in string groupName): &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;DirectorySearcher search = &lt;span class="kwrd"&gt;new&lt;/span&gt; DirectorySearcher {Filter = String.Format(&lt;span class="str"&gt;"(cn={0})"&lt;/span&gt;, groupName)};&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;search.PropertiesToLoad.Add(&lt;span class="str"&gt;"member"&lt;/span&gt;); &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; userNames = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (result != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;   &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; counter = 0; counter &amp;lt; result.Properties[&lt;span class="str"&gt;"member"&lt;/span&gt;].Count; counter++)  &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;   {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;      &lt;span class="kwrd"&gt;string&lt;/span&gt; user = (&lt;span class="kwrd"&gt;string&lt;/span&gt;)result.Properties[&lt;span class="str"&gt;"member"&lt;/span&gt;][counter];&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;      userNames.Add(user + Environment.NewLine);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;   }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;}&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; userNames;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;but what are the possible values of properties you can use in PropertiesToLoad.Add()? I couldnt find this information anywhere so I wrote a little snippet to retrieve them, here is the result (29 properties) &lt;br /&gt;&lt;br /&gt;textencodedoraddress&lt;br /&gt;distinguishedname&lt;br /&gt;dscorepropagationdata&lt;br /&gt;grouptype&lt;br /&gt;objectsid&lt;br /&gt;whencreated&lt;br /&gt;msexchalobjectversion&lt;br /&gt;mailnickname&lt;br /&gt;name&lt;br /&gt;usnchanged&lt;br /&gt;objectcategory&lt;br /&gt;samaccounttype&lt;br /&gt;instancetype&lt;br /&gt;reporttooriginator&lt;br /&gt;cn&lt;br /&gt;proxyaddresses&lt;br /&gt;showinaddressbook&lt;br /&gt;objectclass&lt;br /&gt;mail&lt;br /&gt;usncreated&lt;br /&gt;member&lt;br /&gt;objectguid&lt;br /&gt;adspath&lt;br /&gt;displayname&lt;br /&gt;legacyexchangedn&lt;br /&gt;samaccountname&lt;br /&gt;whenchanged&lt;br /&gt;memberof&lt;br /&gt;msexchpoliciesincluded&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2289126218515550854?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2289126218515550854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2289126218515550854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2289126218515550854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2289126218515550854'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/active-directory-group-and-member.html' title='Active directory group and member properties, DirectorySearcher PropertiesToLoad possible values'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4020288895748676007</id><published>2008-10-14T09:47:00.001+01:00</published><updated>2008-10-14T09:47:31.972+01:00</updated><title type='text'>The best programming fonts list... ever</title><content type='html'>&lt;a href="http://www.codeproject.com/KB/work/FontSurvey.aspx"&gt;http://www.codeproject.com/KB/work/FontSurvey.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4020288895748676007?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4020288895748676007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4020288895748676007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4020288895748676007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4020288895748676007'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/best-programming-fonts-list-ever.html' title='The best programming fonts list... ever'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3411153095710228224</id><published>2008-10-09T10:44:00.002+01:00</published><updated>2008-10-09T10:46:15.751+01:00</updated><title type='text'>XML command line manipulation open source utility</title><content type='html'>This might be handy if you have to do a lot of work with XML, or even to quickly query large XML files that you want to search for specific information, although I don't know how well it can deal with large files: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://xmlstar.sourceforge.net/"&gt;http://xmlstar.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3411153095710228224?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3411153095710228224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3411153095710228224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3411153095710228224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3411153095710228224'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/xml-command-line-manipulation-open.html' title='XML command line manipulation open source utility'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-576459939538311775</id><published>2008-10-07T13:29:00.003+01:00</published><updated>2008-10-07T13:30:49.997+01:00</updated><title type='text'>Database search methods</title><content type='html'>This one is based more on database interaction: &lt;a href="http://www.sqlservercentral.com/articles/Full-Text+Search+(2008)/64248/"&gt;http://www.sqlservercentral.com/articles/Full-Text+Search+(2008)/64248/&lt;/a&gt; (requires free registration). &lt;br /&gt;&lt;br /&gt;This one uses the open source lucene framework: &lt;a href="http://www.codeproject.com/KB/library/IntroducingLucene.aspx"&gt;http://www.codeproject.com/KB/library/IntroducingLucene.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-576459939538311775?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/576459939538311775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=576459939538311775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/576459939538311775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/576459939538311775'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/database-search-methods.html' title='Database search methods'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5085431543636598680</id><published>2008-10-07T09:11:00.001+01:00</published><updated>2008-10-07T09:11:33.660+01:00</updated><title type='text'>Online book resources</title><content type='html'>&lt;a href="http://www.makeuseof.com/tag/the-best-6-sites-to-get-free-ebooks/"&gt;http://www.makeuseof.com/tag/the-best-6-sites-to-get-free-ebooks/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5085431543636598680?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5085431543636598680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5085431543636598680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5085431543636598680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5085431543636598680'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/online-book-resources.html' title='Online book resources'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4158789021533536272</id><published>2008-10-07T09:09:00.003+01:00</published><updated>2008-10-07T13:31:24.299+01:00</updated><title type='text'>Microsoft light web platform</title><content type='html'>The equivalent of LAMP from Microsoft... &lt;a href="http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx"&gt;http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx&lt;/a&gt; plus an IDE to boot. Package includes including IIS7, Visual Web Developer 2008 Express Edition, SQL Server 2008 Express Edition and the .NET Framework, based on a single installer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4158789021533536272?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4158789021533536272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4158789021533536272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4158789021533536272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4158789021533536272'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/equivalent-of-lamp-from-microsoft.html' title='Microsoft light web platform'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7351221173161474148</id><published>2008-10-07T09:06:00.003+01:00</published><updated>2008-10-07T09:07:58.621+01:00</updated><title type='text'>Compress image size by yahoo</title><content type='html'>New tool available from yahoo. Seems to suggest the optimum compressed size that doesn't affect the quality much. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://smushit.com/"&gt;http://smushit.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7351221173161474148?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7351221173161474148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7351221173161474148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7351221173161474148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7351221173161474148'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/10/compress-image-size.html' title='Compress image size by yahoo'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8829471925386787208</id><published>2008-09-29T10:05:00.002+01:00</published><updated>2008-09-29T10:06:28.143+01:00</updated><title type='text'>Improving .NET Application Performance and Scalability</title><content type='html'>This is a PDF book from Microsoft, seems quite well written at first glance&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8A2E454D-F30E-4E72-B531-75384A0F1C47&amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=8A2E454D-F30E-4E72-B531-75384A0F1C47&amp;displaylang=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8829471925386787208?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8829471925386787208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8829471925386787208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8829471925386787208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8829471925386787208'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/improving-net-application-performance.html' title='Improving .NET Application Performance and Scalability'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2103552857020494254</id><published>2008-09-26T09:28:00.002+01:00</published><updated>2008-09-26T09:29:24.243+01:00</updated><title type='text'>Linked server double hop</title><content type='html'>This is the best article I've found regarding the proper setup of servers for double hop in MS SQL 2005: &lt;a href="http://blogs.msdn.com/sql_protocols/archive/2006/08/10/694657.aspx"&gt;http://blogs.msdn.com/sql_protocols/archive/2006/08/10/694657.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is the best overview and most complete and yet simple explanation of the problem and the solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2103552857020494254?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2103552857020494254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2103552857020494254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2103552857020494254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2103552857020494254'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/linked-server-double-hop.html' title='Linked server double hop'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7406143192157398624</id><published>2008-09-25T09:20:00.002+01:00</published><updated>2008-10-30T10:15:32.027Z</updated><title type='text'>PC maintenance and optimisation</title><content type='html'>PC maintenance and optimisation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cio.com/article/print/450652"&gt;http://www.cio.com/article/print/450652&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7406143192157398624?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7406143192157398624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7406143192157398624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7406143192157398624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7406143192157398624'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/pc-maintenance-and-optimisation-httpwww.html' title='PC maintenance and optimisation'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-312126923746917525</id><published>2008-09-24T10:32:00.008+01:00</published><updated>2011-10-22T00:35:38.189+01:00</updated><title type='text'>How to make objects available as datasources for databound controls</title><content type='html'>This attribute goes to the class: &lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// makes objects of this class suitable for binding to controls&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;[System.ComponentModel.DataObject] &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;And this goes to the method:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// this attribute is so that the method will show up in the &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;// ObjectDataSource wizard&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;[System.ComponentModel.DataObjectMethodAttribute(&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;System.ComponentModel.DataObjectMethodType.Select, &lt;span class="kwrd"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-312126923746917525?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/312126923746917525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=312126923746917525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/312126923746917525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/312126923746917525'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/how-to-make-objects-available-as.html' title='How to make objects available as datasources for databound controls'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-334362801021766784</id><published>2008-09-19T14:52:00.002+01:00</published><updated>2008-09-19T14:52:43.377+01:00</updated><title type='text'>Open source version control</title><content type='html'>Nice list and good comparison of 7 open source version control systems:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/"&gt;http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-334362801021766784?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/334362801021766784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=334362801021766784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/334362801021766784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/334362801021766784'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/open-source-version-control.html' title='Open source version control'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2997786015325278466</id><published>2008-09-19T14:13:00.001+01:00</published><updated>2008-09-19T14:14:36.238+01:00</updated><title type='text'>Stanford free online courses</title><content type='html'>This looks really cool, now to find some time...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.deviceguru.com/2008/09/17/stanford-frees-cs-robotics-courses/"&gt;http://www.deviceguru.com/2008/09/17/stanford-frees-cs-robotics-courses/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2997786015325278466?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2997786015325278466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2997786015325278466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2997786015325278466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2997786015325278466'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/stanford-free-online-courses.html' title='Stanford free online courses'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-7198712622665605619</id><published>2008-09-17T14:41:00.001+01:00</published><updated>2008-09-17T14:42:15.016+01:00</updated><title type='text'>ADO.NET Entity Framework Tutorial</title><content type='html'>Looks nice and well written, I will post more details when I actually try it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/csharp/.net/net_general/netframeworkclasses/article.php/c15489/"&gt;http://www.codeguru.com/csharp/.net/net_general/netframeworkclasses/article.php/c15489/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-7198712622665605619?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/7198712622665605619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=7198712622665605619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7198712622665605619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/7198712622665605619'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/adonet-entity-framework-tutorial.html' title='ADO.NET Entity Framework Tutorial'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4107613846269795199</id><published>2008-09-17T12:08:00.002+01:00</published><updated>2008-09-17T12:08:58.337+01:00</updated><title type='text'>Nice online dictionary with audio</title><content type='html'>It has the pronunciation, this is cool!!!&lt;br /&gt;&lt;a href="http://www.merriam-webster.com/dictionary/"&gt;http://www.merriam-webster.com/dictionary/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4107613846269795199?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4107613846269795199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4107613846269795199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4107613846269795199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4107613846269795199'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/nice-online-dictionary-with-audio.html' title='Nice online dictionary with audio'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-6961897414927285804</id><published>2008-09-16T09:37:00.003+01:00</published><updated>2008-09-16T10:18:47.220+01:00</updated><title type='text'>Finally CodePlex supports svn!!!</title><content type='html'>Now I don't know yet how good this support is, but you can read all about it here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/codeplex/archive/2008/09/14/codeplex-launches-support-for-tortoisesvn.aspx"&gt;http://blogs.msdn.com/codeplex/archive/2008/09/14/codeplex-launches-support-for-tortoisesvn.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;They used to support svn in the past but it required a local installation of SvnBridge. Now it is integrated into their repository.&lt;br /&gt;&lt;br /&gt;Typical URL format is &lt;span style="font-size:100%;color:#0000ff;"&gt;https://&lt;i&gt;projectname&lt;/i&gt;.svn.codeplex.com/svn&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-6961897414927285804?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/6961897414927285804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=6961897414927285804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6961897414927285804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/6961897414927285804'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/finally-codeplex-supports-svn.html' title='Finally CodePlex supports svn!!!'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-2437237007097045381</id><published>2008-09-02T11:25:00.000+01:00</published><updated>2008-09-02T11:27:01.162+01:00</updated><title type='text'>20 tech habits to improve your life</title><content type='html'>Very good read, with some useful tips: &lt;a href="http://www.computerworld.com/action/article.do?command=printArticleBasic&amp;amp;taxonomyName=Management&amp;amp;articleId=9113860&amp;amp;taxonomyId=14"&gt;20 tech habits to improve your life&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-2437237007097045381?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/2437237007097045381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=2437237007097045381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2437237007097045381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/2437237007097045381'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/20-tech-habits-to-improve-your-life.html' title='20 tech habits to improve your life'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-5623848684932371039</id><published>2008-09-02T11:24:00.004+01:00</published><updated>2008-10-30T10:47:11.458Z</updated><title type='text'>The .NET source code</title><content type='html'>Official site for the .NET source code, including instructions (although out of date in VS 2008 last time I checked, they were for VS 2005...)&lt;br /&gt;&lt;a href="http://referencesource.microsoft.com/serversetup.aspx"&gt;http://referencesource.microsoft.com/serversetup.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For VS 2008 SP1 there is another option which is not included in the Microsoft website at this moment:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cf56ZicoI6c/SQmQXkbktgI/AAAAAAAAAAk/Ri8R7_FU3D0/s1600-h/dot+net+source+code+stepping.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 480px; height: 285px;" src="http://2.bp.blogspot.com/_cf56ZicoI6c/SQmQXkbktgI/AAAAAAAAAAk/Ri8R7_FU3D0/s320/dot+net+source+code+stepping.JPG" alt="" id="BLOGGER_PHOTO_ID_5262896374149854722" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-5623848684932371039?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/5623848684932371039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=5623848684932371039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5623848684932371039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/5623848684932371039'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/net-source-code.html' title='The .NET source code'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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/_cf56ZicoI6c/SQmQXkbktgI/AAAAAAAAAAk/Ri8R7_FU3D0/s72-c/dot+net+source+code+stepping.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1771473149207251530</id><published>2008-09-02T11:20:00.002+01:00</published><updated>2008-09-02T11:23:40.839+01:00</updated><title type='text'>Wizard implementation in C#</title><content type='html'>Very nice article explaining the implementation of a wizard in C#. The article skips over some details of the implementation (i.e. it is unclear at some points) but this is not a problem because clarification can be obtained by looking at the source code which is provided. On the other hand, the article has a comprehensive coverage of various events and it is definitely a worthwhile read. No doubt Microsoft will come up with some wizard component in the future, but until they do, this is a good alternative, and it any case a very educational resource.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.differentpla.net/content/2005/02/wizard-csharp1"&gt;Part 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.differentpla.net/content/2005/02/wizard-csharp2"&gt;Part 2 &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1771473149207251530?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1771473149207251530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1771473149207251530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1771473149207251530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1771473149207251530'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/09/wizard-implementation-in-c.html' title='Wizard implementation in C#'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-1200127985871721778</id><published>2008-08-28T10:28:00.000+01:00</published><updated>2008-08-28T10:29:41.041+01:00</updated><title type='text'>Visual Studio 2008 code clone detective</title><content type='html'>Nice tool for improving code quality (removing redundancy). Free VS addon and it actually works, it’s quite cool. Currently available for C# only.&lt;br /&gt;&lt;br /&gt;It works by identifying potential code duplication. Sadly it does not do anything resolving the issue at this stage, but it still helps to point out areas where code quality could be improved.&lt;br /&gt;&lt;br /&gt;Article: &lt;a href="http://www.infoworld.com/archives/emailPrint.jsp?R=printThis&amp;amp;A=/article/08/08/27/Cloned-code-finder-offered-for-Visual-Studio_1.html"&gt;http://www.infoworld.com/archives/emailPrint.jsp?R=printThis&amp;amp;A=/article/08/08/27/Cloned-code-finder-offered-for-Visual-Studio_1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Project : &lt;a href="http://www.codeplex.com/CloneDetectiveVS"&gt;http://www.codeplex.com/CloneDetectiveVS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-1200127985871721778?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/1200127985871721778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=1200127985871721778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1200127985871721778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/1200127985871721778'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/08/visual-studio-2008-code-clone-detective.html' title='Visual Studio 2008 code clone detective'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-8038271480752321080</id><published>2008-08-18T17:27:00.004+01:00</published><updated>2008-08-19T10:08:06.254+01:00</updated><title type='text'>Nice paging stored procedure in MS SQL T-SQL</title><content type='html'>&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;&lt;p style="color: rgb(0, 0, 0);" align="left"&gt;&lt;span style="font-size:85%;"&gt;This also demonstrates the use of the WITH heyword.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;CREATE&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;PROCEDURE&lt;/span&gt;&lt;span style="font-size:85%;"&gt; [dbo]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;[Employee_Paged] &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;( &lt;/span&gt;&lt;span style="font-size:85%;"&gt;@maximumRows &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;int&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;=&lt;/span&gt;&lt;span style="font-size:85%;"&gt; 10&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;, &lt;/span&gt;&lt;span style="font-size:85%;"&gt;@startRowIndex &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;int&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;=&lt;/span&gt;&lt;span style="font-size:85%;"&gt; 1 &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;AS&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;BEGIN&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt; &lt;/p&gt; &lt;p align="left"&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;    SET&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;NOCOUNT&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;ON&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt; &lt;/p&gt; &lt;p align="left"&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;    WITH&lt;/span&gt;&lt;span style="font-size:85%;"&gt; [EmployeeByPage] &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;AS&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    &lt;/span&gt;(&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;        SELECT&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 255);"&gt;            &lt;/span&gt;row_number&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;()&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;OVER&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;ORDER&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;BY&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Employee.Id&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;ASC&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;)&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;AS&lt;/span&gt;&lt;span style="font-size:85%;"&gt; rowid&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;,&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;            &lt;/span&gt;Employee&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Id&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;,&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;            &lt;/span&gt;Employee&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Name&lt;/span&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;        FROM&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;            &lt;/span&gt;Employee&lt;/p&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    &lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt; &lt;/p&gt; &lt;p align="left"&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;    SELECT&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;        &lt;/span&gt;Paged&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Id&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;,&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;        &lt;/span&gt;Paged&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Name&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;    FROM&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;        &lt;/span&gt;[EmployeeByPage] &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;AS&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Paged&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;    WHERE&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;        &lt;/span&gt;Paged&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;rowid &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;BETWEEN&lt;/span&gt;&lt;span style="font-size:85%;"&gt; @startRowIndex &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;AND&lt;/span&gt;&lt;span style="font-size:85%;"&gt; @startRowIndex &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);font-size:85%;" &gt;+&lt;/span&gt;&lt;span style="font-size:85%;"&gt; @maximumRows&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt; &lt;p&gt; &lt;/p&gt; &lt;p align="left"&gt;END&lt;/p&gt;&lt;p align="left"&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Source:&lt;/span&gt; &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3263486&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3263486&amp;amp;SiteID=1&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;    &lt;/span&gt;                                                                                         &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-8038271480752321080?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/8038271480752321080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=8038271480752321080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8038271480752321080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/8038271480752321080'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/08/nice-paging-stored-procedure-in-ms-sql.html' title='Nice paging stored procedure in MS SQL T-SQL'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-4796220045116199701</id><published>2008-08-18T09:17:00.004+01:00</published><updated>2008-08-19T10:12:59.885+01:00</updated><title type='text'>And some irrelevant links...</title><content type='html'>interesting reads:&lt;br /&gt;&lt;br /&gt;&lt;a title="http://www.codeproject.com/News.aspx?nwid=7310" href="http://www.codeproject.com/News.aspx?nwid=7310"&gt;8 ways to make money  online&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ycombinator.com/ideas.html"&gt;Startup Ideas &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-4796220045116199701?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/4796220045116199701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=4796220045116199701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4796220045116199701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/4796220045116199701'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/08/and-some-irrelevant-links.html' title='And some irrelevant links...'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-544662513143985826</id><published>2008-08-13T12:18:00.007+01:00</published><updated>2008-12-12T09:57:32.511Z</updated><title type='text'>Best freeware software lists</title><content type='html'>Some links which have lists of (mainly) free software:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techsupportalert.com/"&gt;http://www.techsupportalert.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.portablefreeware.com/"&gt;&lt;br /&gt;http://www.portablefreeware.com&lt;/a&gt;/&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digitaldarknet.net/thelist/"&gt;http://www.digitaldarknet.net/thelist/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freebyte.com/programming/database/"&gt;&lt;br /&gt;http://www.freebyte.com/programming/database/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.makeuseof.com/tag/enhance-or-replace-integrated-windows-applications-with-these-great-alternatives/"&gt;http://www.makeuseof.com/tag/enhance-or-replace-integrated-windows-applications-with-these-great-alternatives/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tech.msn.com/products/articlepcw.aspx?cp-documentid=6729042"&gt;http://tech.msn.com/products/articlepcw.aspx?cp-documentid=6729042&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webworkerdaily.com/2008/12/10/in-search-of-free-open-source-apps/"&gt;http://webworkerdaily.com/2008/12/10/in-search-of-free-open-source-apps/&lt;/a&gt;&lt;br /&gt;has links to:&lt;br /&gt;&lt;a href="http://opendesktop.org/"&gt;http://opendesktop.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ostatic.com/"&gt;http://ostatic.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mashable.com/2007/09/23/open-source/"&gt;http://mashable.com/2007/09/23/open-source/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-544662513143985826?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/544662513143985826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=544662513143985826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/544662513143985826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/544662513143985826'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/08/best-freeware-products-lists.html' title='Best freeware software lists'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry><entry><id>tag:blogger.com,1999:blog-4460935810467623413.post-3491483937773672451</id><published>2008-08-08T09:30:00.003+01:00</published><updated>2008-08-08T09:33:45.243+01:00</updated><title type='text'>Call .NET dll from MS SQL server - analyse query plan</title><content type='html'>This is a very well presented article which explains how we can obtain the query plan - estimated execution time for a query in SQL Server. It is also very useful because we can see in detail the process of registering and calling a .NET assembly from within SQL Server. Applies to: Microsoft SQL Server 2005 and Microsoft Visual C# .NET, but most likely will be possible to use a similar or even the same process in SQL Server 2008 and later.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms345130.aspx"&gt;http://technet.microsoft.com/en-us/library/ms345130.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4460935810467623413-3491483937773672451?l=csharplog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://csharplog.blogspot.com/feeds/3491483937773672451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4460935810467623413&amp;postID=3491483937773672451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3491483937773672451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4460935810467623413/posts/default/3491483937773672451'/><link rel='alternate' type='text/html' href='http://csharplog.blogspot.com/2008/08/call-net-dll-from-ms-sql-server-analyse.html' title='Call .NET dll from MS SQL server - analyse query plan'/><author><name>cslogger</name><uri>http://www.blogger.com/profile/02035016342062185570</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></entry></feed>
