<?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-2969851545858895816</id><updated>2011-10-07T11:49:50.214-07:00</updated><category term='VBScript'/><category term='Authoring Tool'/><category term='IIS 7'/><category term='MOSS 2007'/><category term='SQL 2008'/><category term='Powershell'/><category term='seminars'/><category term='MSXML'/><category term='AJAX'/><category term='Windows Server 2008'/><category term='SQL 2005'/><category term='PowerPivot'/><category term='webcasts'/><category term='software transactional memory'/><category term='Cliq'/><category term='library'/><category term='SELECT CASE'/><category term='SQL PASS'/><category term='Computer'/><category term='Cliq XT'/><category term='Code'/><category term='MS Events'/><category term='SCSM'/><category term='Windows Server 2008 R2'/><category term='Office Communicator 2007 R2'/><category term='InfoPath 2007'/><category term='CMD'/><category term='SQL BI'/><category term='Android'/><category term='SSIS'/><category term='Communicator 2007 R2'/><category term='64 bit'/><category term='Windows 7'/><category term='snippets'/><category term='.Net 4.0'/><category term='Scott Guthrie'/><category term='STM'/><category term='Excel 2007'/><category term='controls'/><category term='MOSS 2010'/><category term='Monitors'/><category term='OLE DB'/><category term='SharePoint'/><category term='ScottGu'/><category term='VB6'/><category term='BIDS 2005'/><category term='SharePoint 2010'/><category term='VB'/><category term='WSS 2.0'/><category term='IIS'/><category term='Application Pool'/><category term='Office 2010'/><category term='Team Foundation Server 2008'/><category term='PASS'/><category term='USB'/><category term='C#'/><category term='SQL CASE'/><category term='Active Directory'/><category term='databinding'/><category term='SSRS'/><category term='Hardware'/><category term='SQL 2008 T-SQL'/><category term='ODBC'/><category term='Exchange 2010'/><category term='ASP.Net'/><category term='T-SQL'/><category term='Communicator 2007'/><category term='WPF'/><category term='AD'/><category term='Silverlight'/><category term='InfoPath'/><title type='text'>The Nullable Type</title><subtitle type='html'>A weblog about coding, developer events, and other stuff I thought was cool.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2972908456184631269</id><published>2011-04-07T07:37:00.000-07:00</published><updated>2011-04-07T07:45:24.311-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Authoring Tool'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>SCSM Authoring Tool won't install</title><content type='html'>I've been tasked with designing the end-user side of SCSM at our company, including building the web page users will use to submit helpdesk tickets and build the workflows behind the scenes.  So I went to install the SCSM Authoring Tool on my Windows 7 box, and every time it would break in the same spot, telling me "VS Shell 2008 SP1 is not installed".  I followed the prerequisite list exactly and in order, yet it still told me this, even after rebooting.  The solution? Thanks to &lt;a href="http://social.technet.microsoft.com/Forums/en-US/setup/thread/d10b07ff-952d-42b1-8638-baa8f3aebc2a/" target="_blank"&gt;HuguesDePayns&lt;/a&gt;'s posting on TechNet, it finally worked.  Here's what had to be done:&lt;br /&gt;&lt;br /&gt;First, run the VS Shell 2008 SP1 installer found in SCSM_AuthoringTool_2010_SP1\CDImage\Prerequisites\VS2K8Shell\en\vs_shell_isolated.exe&lt;br /&gt;&lt;br /&gt;When that's finished, open a command prompt (as administrator) and enter the following command:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;msiexec /i "&lt;path to the folder&gt;\CDImage\Setup\AuthoringTool.msi"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It runs quietly, showing the status as it goes, then suddenly it will stop.  If there are no error messages, it's installed, and you'll see it in your Program Files under Microsoft System Center.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2972908456184631269?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2972908456184631269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2011/04/scsm-authoring-tool-wont-install.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2972908456184631269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2972908456184631269'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2011/04/scsm-authoring-tool-wont-install.html' title='SCSM Authoring Tool won&apos;t install'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-5884074541156922758</id><published>2011-03-08T12:18:00.000-08:00</published><updated>2011-04-06T09:58:08.563-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS Events'/><category scheme='http://www.blogger.com/atom/ns#' term='ScottGu'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Guthrie'/><title type='text'>Scott Guthrie returns to Arizona!</title><content type='html'>Just got the message, &lt;a href="http://twitter.com/scottgu" target="_blank"&gt;@ScottGu&lt;/a&gt; is returning to Arizona &lt;b&gt;Friday, April 22nd&lt;/b&gt;.  Details to follow, but save the date!&lt;br /&gt;&lt;br /&gt;UPDATE: Registration form is to the right!  Sign up today!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-5884074541156922758?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/5884074541156922758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2011/03/scott-guthrie-returns-to-arizona.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5884074541156922758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5884074541156922758'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2011/03/scott-guthrie-returns-to-arizona.html' title='Scott Guthrie returns to Arizona!'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-7924165273984343197</id><published>2011-03-01T12:26:00.000-08:00</published><updated>2011-03-01T12:31:59.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008 T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL BI'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>24 Hours of PASS registration open</title><content type='html'>Registration is open for 24 hours of &lt;a href="http://twitter.com/@sqlpass" target="_blank"&gt;PASS&lt;/a&gt; in March!  Go to &lt;a href=http://bit.ly/fMzarY" target="_blank"&gt;http://bit.ly/fMzarY&lt;/a&gt; to register.&lt;br /&gt;&lt;br /&gt;This one is "Celebrating Women in Technology" and has some great sessions lined up, including discussions on T-SQL, SSRS, SSIS, performance, MDX, even Twitterdata in Azure!  You don't want to miss this!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-7924165273984343197?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/7924165273984343197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2011/03/24-hours-of-pass-registration-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7924165273984343197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7924165273984343197'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2011/03/24-hours-of-pass-registration-open.html' title='24 Hours of PASS registration open'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-7040268618602599423</id><published>2011-01-18T12:08:00.000-08:00</published><updated>2011-01-18T12:13:31.569-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL BI'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerPivot'/><title type='text'>24 Hours of PASS - March 15-16 2011</title><content type='html'>The 24 Hours of &lt;a href="http://sqlpass.org" target="_blank"&gt;PASS&lt;/a&gt; is returning March 15th-16th 2011, and they're looking for feedback on which sessions to include!  If you'd like to participate, the link to the survey can be found &lt;a href="http://goo.gl/BZTCG" target="_blank"&gt;here&lt;/a&gt;.  I chose the ones I'd like to see, be sure to stop by and make your selections for your favorites!  I'm looking forward to another great set of informative sessions! If you haven't done the 24 Hours of PASS yet, it's definitely worth attending!  If you forward this link, be sure to include the tags #24HOP, #PASS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-7040268618602599423?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/7040268618602599423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2011/01/24-hours-of-pass-march-15-16-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7040268618602599423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7040268618602599423'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2011/01/24-hours-of-pass-march-15-16-2011.html' title='24 Hours of PASS - March 15-16 2011'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-7865329611681780564</id><published>2011-01-04T12:47:00.000-08:00</published><updated>2011-01-04T12:55:02.257-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office Communicator 2007 R2'/><category scheme='http://www.blogger.com/atom/ns#' term='Communicator 2007 R2'/><category scheme='http://www.blogger.com/atom/ns#' term='Communicator 2007'/><title type='text'>Office Communicator custom presence in R2</title><content type='html'>I upgraded my Office Communicator 2007 to R2 last week, and my custom presence stopped working.  Turns out R2 will assume default security for transport, which is set to High, and then requires your custom presence XML file to be an HTTPS URL.  Even if you set your registry entry to be an https path it still won't work.  The link to the articles that &lt;b&gt;did&lt;/b&gt; help can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.markwilson.co.uk/blog/2009/07/defining-custom-presence-states-for-office-communicator-2007-r2.htm" target="_blank"&gt;Defining custom presence states for Office Communicator 2007 R2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/b/toml/archive/2009/04/08/communicator-r2-custom-presence-not-working.aspx" target="_blank"&gt;Communicator R2 custom presence not working?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, you just need to create a .reg file and load it with this:&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]&lt;br /&gt;@=""&lt;br /&gt;"CustomStateURL"="C:\Program Files\Microsoft Office Communicator\Presence.xml"&lt;br /&gt;"EnableSIPHighSecurityMode"=dword:00000000&lt;br /&gt;&lt;br /&gt;Just replace the path in CustomStateURL with the path to your local XML file with custom presence info, run the .reg file and restart Communicator.  Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-7865329611681780564?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/7865329611681780564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2011/01/office-communicator-custom-presence-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7865329611681780564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7865329611681780564'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2011/01/office-communicator-custom-presence-in.html' title='Office Communicator custom presence in R2'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-284238926588964858</id><published>2011-01-03T16:38:00.000-08:00</published><updated>2011-01-03T16:46:17.887-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='USB'/><title type='text'>USB to 5VDC wiring diagram</title><content type='html'>I can never remember what the pinout is to get 5VDC from a male USB-A connector, and being color-blind having a true wiring diagram helps a lot.  Sure I could Google and Wikipedia search it, and combine the results, but hey, why not use my blog as a repository of stuff I've learned, right?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.azpcc.net/USB%20to%205VDC%20pinout.pdf" target="_blank"&gt;Here is a link&lt;/a&gt; to a PDF document including pictures and data polarity/voltages.  Basically, you want pins 1 and 4.  Looking at the male connector head-on, pin 1 is the far right, and pin 4 is far left.  Pin 1 is your 5VDC (VCC) and the associated wire should be red, and pin 4 is GND and the associated wire should be black.  &lt;br /&gt;&lt;br /&gt;Now, gonna go make my girlfriend a USB-power cable for her new digital picture frame (it can only be powered by 5VDC power supply, no battery or USB...you believe that?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-284238926588964858?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/284238926588964858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2011/01/usb-to-5vdc-wiring-diagram.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/284238926588964858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/284238926588964858'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2011/01/usb-to-5vdc-wiring-diagram.html' title='USB to 5VDC wiring diagram'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-7372812244741543010</id><published>2010-12-30T11:53:00.000-08:00</published><updated>2010-12-31T08:29:37.216-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cliq XT'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Cliq'/><title type='text'>Upgrading a Cliq XT...when Motorola won't</title><content type='html'>Like many Cliq XT owners (TMO), I got tired of everyone in the world getting a newer OS except me...even the Cliq owners got 2.1 this past month, but Cliq XT didn't.  Yeah, well, enough of that crap.  Here's how I rooted and upgraded my Cliq XT:&lt;br /&gt;&lt;br /&gt;1. Root the phone - &lt;a href="http://modmymobile.com/forums/561-motorola-cliq-xt-general/555756-root-cliq-xt.html" target="_blank"&gt;instructions here&lt;/a&gt;&lt;br /&gt;2. Install Recovery image - &lt;a href="http://modmymobile.com/forums/559-motorola-cliq-xt-roms/555799-recovery-j_r0dd-mb501-v1-8-1-final-12-13-10-a.html" target="_blank"&gt;instructions here&lt;/a&gt;&lt;br /&gt;3. Download ROM zip file (leave as ZIP file!) and copy to root of SD card - &lt;a href="http://modmymobile.com/forums/559-motorola-cliq-xt-roms/558573-rom-motoblur-2-1-54-cliqxt-quench-11-20-2010-a.html" target="_blank"&gt;instructions here&lt;/a&gt;&lt;br /&gt;4. Boot the phone into recovery mode (power button + camera button)&lt;br /&gt;5. Backup your current ROM - &lt;a href="http://theunlockr.com/2010/02/06/how-to-backup-and-restore-your-android-phone/" target="_blank"&gt;instructions here&lt;/a&gt;&lt;br /&gt;6. Choose *** WIPE ALL *** (very important, this step must be done before the new ROM is loaded or it will continually try to restart itself.&lt;br /&gt;7. Choose Install Zip option and choose the ROM you installed in the sdcard root&lt;br /&gt;8. Choose Reboot system&lt;br /&gt;&lt;br /&gt;After restart, was prompted to set up MotoBlur.  Chose existing account, entered creds, and it said there was a problem with the clock, to contact customer support.&lt;br /&gt;&lt;br /&gt;Restored backed up ROM and tried again, making sure to *** WIPE ALL ***, and it worked!  There are many Cliq XT ROMs available, and not all work the same.  I tried the Froyo build and it wouldn't load properly.  I reloaded the 2.1 build and it worked fine, so I'm sticking with that one for now.&lt;br /&gt;&lt;br /&gt;If you have a better way or have questions please add comments!&lt;br /&gt;&lt;br /&gt;UPDATE 12/31/2010: If you use the Adlx 2.1 ROM, there's a known issue with the need to toggle the speakerphone on incoming calls.  This is fixed by applying the patch found &lt;a href="http://www.4shared.com/get/TnT3eZrQ/AdlxMod2154-SpeakerFIX.html;jsessionid=42D25B2362B63D3BBA98B0AF6E4152F2.dc283" target="_blank"&gt;here&lt;/a&gt;.  Follow these instructions to apply the patch:&lt;br /&gt;1. Copy the AdlxMod2.1.54-SpeakerFIX.zip file to your /sdcard root.&lt;br /&gt;2. Boot the phone in recovery mode&lt;br /&gt;3. Backup your current ROM&lt;br /&gt;4. Install the AdlxMod2.1.54-SpeakerFIX.zip file (DO NOT WIPE!)&lt;br /&gt;5. Reboot the phone when it's finished.&lt;br /&gt;&lt;br /&gt;I did this this morning and the speakerphone was successfully fixed.  Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-7372812244741543010?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/7372812244741543010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/12/upgrading-cliq-xtwhen-motorola-wont.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7372812244741543010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7372812244741543010'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/12/upgrading-cliq-xtwhen-motorola-wont.html' title='Upgrading a Cliq XT...when Motorola won&apos;t'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-279514981232338357</id><published>2010-12-10T12:21:00.000-08:00</published><updated>2010-12-10T12:41:27.160-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008 T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL CASE'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SELECT CASE'/><title type='text'>Case expressions may only be nested to level 10</title><content type='html'>I was working on a rather lengthy query that used a typical CASE WHEN THEN ELSE END sequence, but it kept telling me "Case expressions may only be nested to level 10", even though I wasn't nesting or doing something unique with them, just like this:&lt;br /&gt;&lt;br /&gt;case &lt;br /&gt;    when field1 = 'data' then 'data1'&lt;br /&gt;    when field1 = 'datax' then 'data2'&lt;br /&gt;    when field1 = 'datay' then 'data3'&lt;br /&gt;    when field1 = 'dataz' then 'data4'&lt;br /&gt;    when field1 = 'dataa' then 'data5'&lt;br /&gt;    when field1 = 'datab' then 'data6'&lt;br /&gt;    when field1 = 'datab' then 'data7'&lt;br /&gt;    when field1 = 'datad' then 'data8'&lt;br /&gt;    when field1 = 'datae' then 'data9'&lt;br /&gt;    when field1 = 'dataf' then 'data0'&lt;br /&gt;    when field1 = 'datag' then 'data00'&lt;br /&gt;    when field1 = 'datah' then 'data000'&lt;br /&gt;    else 'aaa'&lt;br /&gt;end as new_field&lt;br /&gt;&lt;br /&gt;But it still would give me the error.  After reading around and thinking about the query as a whole, it turns out the reason why it barks about a maximum of 10 statements is because there was a primary call to a linked server.  Normally, you can put as many WHEN THEN statements in a CASE, but apparently when there's a linked server involved, the max is 10.  In this one, this CASE statement was one of the selection criteria and the table.field it was looking at was on the same database, but the main FROM DATABASE.TABLE of the query was the linked server, which is what was causing all the problem.  Looks like I'll have to either create a temp table and read from that, or add that table to my SSIS packages each day!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-279514981232338357?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/279514981232338357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/12/case-expressions-may-only-be-nested-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/279514981232338357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/279514981232338357'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/12/case-expressions-may-only-be-nested-to.html' title='Case expressions may only be nested to level 10'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-6274566584570812958</id><published>2010-12-08T09:40:00.000-08:00</published><updated>2010-12-08T09:45:03.233-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Reveal most useful settings in Windows 7</title><content type='html'>Most useful here is subjective, but here is a quick way to create your own quick listing of common Windows 7 settings, including shortcuts, links to Control Panel items, etc.  It's definitely not an all-inclusive list, but it works, and it's pretty cool.&lt;br /&gt;&lt;br /&gt;Create a folder somewhere (desktop preferably until you see what it does).  Right-click and rename the folder &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;name of your choice&amp;gt;.{ED7BA470-8E54-465E-825C-99712043E01C}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Note the period between &lt;name of your choice&gt; and the unique identifier - very important!  "Name of your choice" can be anything you want.  Hit enter and voila!  If anyone can explain this further feel free, but to me it just looks like a shortcut to a grouped list view of common settings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-6274566584570812958?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/6274566584570812958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/12/reveal-most-useful-settings-in-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/6274566584570812958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/6274566584570812958'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/12/reveal-most-useful-settings-in-windows.html' title='Reveal most useful settings in Windows 7'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-1928724071303499822</id><published>2010-11-09T13:47:00.001-08:00</published><updated>2010-11-09T13:51:11.603-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Event ID 6050 error in SharePoint 2010 with AD User Profile Import</title><content type='html'>Here I was, banging my head into the proverbial wall over why in MOSS 2007 I was able to use a service account with read permissions to Active Directory, but when setting up SharePoint 2010's User Profile Import to AD it kept breaking.  Then I stumbled across &lt;a href ="http://social.technet.microsoft.com/Forums/en-US/identitylifecyclemanager/thread/2ea8a1e9-c2a9-4105-964c-239412b6716b&lt;br /&gt;" target="_blank"&gt;this article&lt;/a&gt;.  So I contacted out Network guys, who created a service account with permissions as indicated in this KB article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/303972" target="_blank"&gt;http://support.microsoft.com/kb/303972&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And lo and behold, all problems are solved!  SharePoint 2010 now imports user profiles from Active Directory without issues!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-1928724071303499822?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/1928724071303499822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/11/event-id-6050-error-in-sharepoint-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1928724071303499822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1928724071303499822'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/11/event-id-6050-error-in-sharepoint-2010.html' title='Event ID 6050 error in SharePoint 2010 with AD User Profile Import'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-3462541906494455879</id><published>2010-11-04T09:26:00.001-07:00</published><updated>2010-11-04T09:30:26.369-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS 7'/><title type='text'>SharePoint 2010 Warmup Script</title><content type='html'>Those of us from MOSS 2007 remember the warmup script - an essential part of MOSS to eliminate the initial page load time as a result of JIT compiling.  It would hit the page for you to build the JIT, which would allow all subsequent visits to the site(s) to load quickly as expected.  Well, that doesn't work in SharePoint 2010....but this does!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.idocs.info/index.php/2010/09/warm-up-sharepoint-2010-on-w2k8r2-using-iis-7-5-app-warm-up-module/" target="_blank"&gt;SP 2010 Warmup Script&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For me, I didn't see a huge improvement like I did when I ran the warmup script in MOSS 2007, but a 30 second wait is better than a 2 minute wait in SP 2010.  Give it a try and see if it works better for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-3462541906494455879?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/3462541906494455879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/11/sharepoint-2010-warmup-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3462541906494455879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3462541906494455879'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/11/sharepoint-2010-warmup-script.html' title='SharePoint 2010 Warmup Script'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-5976980204416434150</id><published>2010-10-12T09:44:00.000-07:00</published><updated>2010-10-12T09:54:15.726-07:00</updated><title type='text'>7 Free .Net Development and Architecture e-Books!</title><content type='html'>Thank you to MSDN for re-distributing Anoop's blog post on these seven FREE .Net development e-Books!  The last group are Scribd from DZone, and you have to have a DZone account and be logged in to download, but the rest are freely downloadable from the websites.  Here's the title and link to each:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://codebetter.com/media/p/179694.aspx" target="_blank"&gt;Foundations of Programming&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ce40e4e1-9838-4c89-a197-a373b2a60df2&amp;displaylang=en" target="_blank"&gt;Microsoft Application Architecture Guide, 2nd Ed.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csharpcourse.com/" target="_blank"&gt;Rob Miles C# YellowBook 2010&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.albahari.com/threading/" target="_blank"&gt;Threading in C#&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8A2E454D-F30E-4E72-B531-75384A0F1C47" target="_blank"&gt;Improving .Net Application Performance and Stability&lt;/a&gt;&lt;br /&gt;&lt;a href="http://amazedsaint.blogspot.com/2009/06/software-design-patterns-for-everyone.html" target="_blank"&gt;Applying Design Patterns&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;DZone Reference Cards&lt;br /&gt;&lt;a href="http://refcardz.dzone.com/refcardz/getting-started-windows-0" target="_blank"&gt;Getting Started With WCF 4.0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://refcardz.dzone.com/refcardz/getting-started-silverlight" target="_blank"&gt;Getting Started with Silverlight + Expression Blend&lt;/a&gt;&lt;br /&gt;&lt;a href="http://refcardz.dzone.com/refcardz/essential-f" target="_blank"&gt;Essential F#&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy the freebies!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-5976980204416434150?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/5976980204416434150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/10/7-free-net-development-and-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5976980204416434150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5976980204416434150'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/10/7-free-net-development-and-architecture.html' title='7 Free .Net Development and Architecture e-Books!'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-7775690778331064000</id><published>2010-10-07T09:17:00.000-07:00</published><updated>2011-04-04T19:30:14.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Getting local IP address programmatically in Windows 7</title><content type='html'>I created a small client app for my company that required the local IP address (assigned by DHCP) to determine what site it was on.  It reads the second octet value, which is consistent with each of our buildings in our enterprise.  From here, I can determine what content to load so no matter where the PC is placed, it automatically grabs content only specific to that location.&lt;br /&gt;&lt;br /&gt;Anyway, when testing this application on Windows 7 it doesn't load any content.  Initial troubleshooting indicates the IP address is not resolving as it would on a Windows XP machine.  I dug into the code today and noticed when run on Windows 7 the IP Address was coming up something like this:&lt;br /&gt;&lt;br /&gt;fe80::a0b4:2c9d:2542:6b73%11&lt;br /&gt;&lt;br /&gt;This was achieved by using System.Net and the following C# code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;string hostname = Dns.GetHostName();&lt;br /&gt;IPHostEntry ipEntry = Dns.GetHostEntry(hostname);&lt;br /&gt;IPAddress[] ip = ipEntry.AddressList;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then &lt;span style="font-style:italic;"&gt;ip[0].ToString()&lt;/span&gt; will give you the IP Address, or in Windows 7 case, the IPv6 address you see above.  Let me show you what worked for me:&lt;br /&gt;&lt;br /&gt;First, make sure you're referencing the System.Linq namespace in addition to System.Net.  No, I'm not a Linq user or a fan, but it works, so I used it.&lt;br /&gt;&lt;br /&gt;Next, replace the above code with the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;string hostname = Dns.GetHostName();&lt;br /&gt;IPHostEntry ipEntry = Dns.GetHostByName(hostname);&lt;br /&gt;string ip = ipEntry.AddressList.FirstOrDefault().ToString();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that Dns.GetHostByName is obsolete, and eventually will be replaced.  However, the recommended "GetHostEntry" failed to return the IPv4 address I needed, but instead returned the IPv6 address mentioned above.  I welcome feedback on what I might be doing wrong or how to improve on this process, but for now this solves my Windows 7 IP Address issue.  Hope this helps someone else.&lt;br /&gt;&lt;br /&gt;UPDATE: Thanks to the anonymous comment left that clarified my unfamiliarity with IPv6 address syntax.  Corrections were made accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-7775690778331064000?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/7775690778331064000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/10/getting-local-ip-address.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7775690778331064000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7775690778331064000'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/10/getting-local-ip-address.html' title='Getting local IP address programmatically in Windows 7'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2519818480570983128</id><published>2010-08-19T09:22:00.001-07:00</published><updated>2010-08-19T09:26:23.879-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Monitors'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>A new look at multiple monitors</title><content type='html'>I was always one of those guys who felt the more monitors the better.  Following the CRT-era I preferred two monitors (and yes, I did dual monitors with CRTs...I'm that much of a geek), or even more.  However, I read an article today that changed my way of thinking.  You may or may not agree, it's up to you.  Take a look and see what you think - &lt;a href="http://infovegan.com/2010/08/18/manage-pixels-not-monitors" target="_blank"&gt;Manage Pixels Not Monitors&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2519818480570983128?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2519818480570983128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/08/new-look-at-multiple-monitors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2519818480570983128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2519818480570983128'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/08/new-look-at-multiple-monitors.html' title='A new look at multiple monitors'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-350344940869850884</id><published>2010-08-17T13:33:00.000-07:00</published><updated>2010-08-17T13:42:56.538-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>24 Hours of PASS...again!</title><content type='html'>To some it may seem like I post about 24 hours of &lt;a href="http://twitter.com/sqlpass" target="_blank"&gt;@PASS&lt;/a&gt; regularly, but is it a bad thing?  Free web-based SQL information and training from industry professionals?  You won't hear me complaining!&lt;br /&gt;&lt;br /&gt;This set seems like it's a little better than before, the link to the event is &lt;a href="http://www.sqlpass.org/24hours/fall2010/" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The sessions I will be attending are:&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;WHY DATA WAREHOUSING PROJECTS FAIL (AND WHAT YOU CAN DO ABOUT IT).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt; &lt;/span&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;IDENTIFYING COSTLY QUERIES&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;SQLBI METHODOLOGY&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;T-SQL BRUSH-UP: THE BEST THINGS YOU FORGOT YOU KNEW&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;RELATIONAL DATABASE DESIGN FOR UTTER NEWBIES (I like hearing best practices for folks like me who've been doing this stuff forever)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;ZERO TO CUBE: FAST TRACK TO ANALYSIS SERVICES DEVELOPMENT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;&lt;span style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language: EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"&gt;TOP 10 DESIGN MISTAKES&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Yeah, I know, I can only find 7 out of the 24 meetings to attend?  I'm personally looking for areas that either peak my interest or I can immediately apply to my job or improve my work.  Not to say the other meetings aren't worthwhile!  Take a look and sign up for ones that work for you.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-350344940869850884?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/350344940869850884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/08/24-hours-of-passagain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/350344940869850884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/350344940869850884'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/08/24-hours-of-passagain.html' title='24 Hours of PASS...again!'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-8600948341157297258</id><published>2010-08-03T15:17:00.001-07:00</published><updated>2010-08-03T15:25:20.127-07:00</updated><title type='text'>Microsoft Visual Studio LightSwitch</title><content type='html'>Microsoft introduced a new stand-alone product today called LightSwitch, that is intended to facilitate client application development for the business user who may not necessarily be a professional developer.  The UI looks slick, very much .Net 4, WPF/WCF, and the demo appeared to present the product as extremely easy to use.  I haven't had a chance to use it yet, and although I typically applaud new developer stuff Microsoft puts out, this one concerns me.&lt;br /&gt;&lt;br /&gt;One person commented on &lt;a href="http://twitter.com/jlzander" target="_blank"&gt;Jason Zander&lt;/a&gt;'s (@jlzander) blog how he feels this will give management the impression that application development is easy all-around, and when they create a 5 minute app and insist on changes that are outside of LightSwitch's scope they'll grumble about why it takes us so long to do it when it took them 5 minutes.  Agreed, and explaining the reason to the business users or management is not that easy.  I think we've all experienced this before, a lead, supervisor, manager, director, or other business user who works in a technical capacity but is not as skilled in development wants to hear you but tunes you out as soon as you start talking shop.  I share this concern...but it's still cool!&lt;br /&gt;&lt;br /&gt;Here's the link: &lt;a href="http://blogs.msdn.com/b/jasonz/archive/2010/08/03/introducing-microsoft-visual-studio-lightswitch.aspx" target="_blank"&gt;http://blogs.msdn.com/b/jasonz/archive/2010/08/03/introducing-microsoft-visual-studio-lightswitch.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-8600948341157297258?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/8600948341157297258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/08/microsoft-visual-studio-lightswitch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/8600948341157297258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/8600948341157297258'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/08/microsoft-visual-studio-lightswitch.html' title='Microsoft Visual Studio LightSwitch'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-1139978221212982288</id><published>2010-07-20T08:13:00.001-07:00</published><updated>2010-07-20T08:38:57.258-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Devices and Printers not populating in Windows 7</title><content type='html'>I discovered something interesting today...which I'm sure most of you figured out by now, but it's new news to me.  My laptop with Windows 7 Ultimate was taking forever to load the printers and devices screen, and eventually after what seemed like 30+ minutes, it would show nothing, but Windows 7 wouldn't throw an error or message.  It was in fact proud to display nothing, even though I know damn well there are printers loaded!  What was the cause of this?  If you can believe it, the &lt;b&gt;Bluetooth Support Service&lt;/b&gt;.  I'm a fairly logical person, and for some reason a bluetooth support service managing printers is a little unusual, but who am I to judge?  I had the service manually disabled as part of my service trimming following a clean install.  Right click, choose properties and enable the service, then start it and reload your Devices and Printers screen to see and control your printers.  Unfortunately, this is one service that has to stay enabled and running in order to manage your printers.  Hope this helps someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-1139978221212982288?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/1139978221212982288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/07/devices-and-printers-not-populating-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1139978221212982288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1139978221212982288'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/07/devices-and-printers-not-populating-in.html' title='Devices and Printers not populating in Windows 7'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-3766790637962810831</id><published>2010-07-06T15:58:00.000-07:00</published><updated>2010-07-07T08:21:48.393-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008'/><title type='text'>Enabling ADUC on Windows 7</title><content type='html'>I'm unable to locate a working plug-in/snap-in for Active Directory Users and Computers that works on Windows 7.  Fortunately, there's a workaround that allows administration of ADUC in Windows 7 with a little modification.&lt;br /&gt;&lt;br /&gt;First, you'll need to download and install RSAT for Windows 7.  It's found &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d" target="_blank"&gt;here&lt;/a&gt;.  You'll need this before you can do anything else.  Once this is installed, on your Windows 7 box, open Programs and Features and click the &lt;span style="font-weight:bold;"&gt;Turn Windows Features On or Off&lt;/span&gt; option.  In the Windows Features box, locate &lt;span style="font-weight:bold;"&gt;Remote Server Administration Tools&lt;/span&gt; and expand the item.  Expand &lt;span style="font-weight:bold;"&gt;Role Administration Tools&lt;/span&gt;, then expand the &lt;span style="font-weight:bold;"&gt;AD DS and AD LDS Tools&lt;/span&gt; item, then the &lt;span style="font-weight:bold;"&gt;AD DS Tools&lt;/span&gt; item.  Check the box for &lt;span style="font-weight:bold;"&gt;AD DS Snap-ins and Command-line Tools&lt;/span&gt;.  Click Ok and those features will be enabled.&lt;br /&gt;&lt;br /&gt;The ADUC shortcut will be placed in your Administrative Tools under Control Panel just like it used to be.&lt;br /&gt;&lt;br /&gt;Also note, this is for the 32 bit versions only.  This hasn't been tested on 64 bit, and others have complained that they couldn't get this working on 64 bit.&lt;br /&gt;&lt;br /&gt;If anyone else has a better method of administering ADUC on Windows 7 Pro please feel free to post a comment.  Until then, hope this helps someone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-3766790637962810831?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/3766790637962810831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/07/enabling-aduc-on-windows-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3766790637962810831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3766790637962810831'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/07/enabling-aduc-on-windows-7.html' title='Enabling ADUC on Windows 7'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-6134467344951603650</id><published>2010-06-18T08:58:00.000-07:00</published><updated>2010-06-18T09:11:27.640-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Error when removing InfoPath Form Template from MOSS 2007</title><content type='html'>You may or may not have seen the following error message when trying to remove an InfoPath Form Template in Central Administration-Application Management-InfoPath Forms Services / Manage Form Templates:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"The timer job for the operation has been created. However, it cannot be run because the administrative service for this server is not enabled..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In my case, this is due to Network restrictions.  Although I'm a site collection admin and a Farm Admin, AND a local admin on the server (and it's a dev server on top of that), I'm not a Domain Admin and neither is the service account for SharePoint, which causes a whole host of other problems.  For those in that situation (and so I don't forget how I did it so I can fix it again later) this is the solution to that issue.&lt;br /&gt;&lt;br /&gt;The timer job may show up as "Failed", but the event is still lingering in the database.  It can be kicked off using the STSADM command as follows:&lt;br /&gt;&lt;br /&gt;From the command line on the affected server, navigate to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin and use the following command:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;stsadm.exe -o execadmsvcjobs&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;This will launch all outstanding events the timer job tried to kick off but couldn't, in the order they were received.  In my case, I even discovered a few things that tried to launch on their own but couldn't, like Anti-Virus updates and patches.  Interesting.  Hope this helps someone someday.  It'll at least help me again when I forget how I got it to work that one time.  ; )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-6134467344951603650?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/6134467344951603650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/06/error-when-removing-infopath-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/6134467344951603650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/6134467344951603650'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/06/error-when-removing-infopath-form.html' title='Error when removing InfoPath Form Template from MOSS 2007'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-985572601975616990</id><published>2010-04-07T11:05:00.000-07:00</published><updated>2010-04-07T11:18:11.569-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>24 Hours of PASS is back!</title><content type='html'>SQL PASS (&lt;a href="http://twitter.com/sqlpass" target="_blank"&gt;@sqlpass&lt;/a&gt;) is having it's FREE 24 Hours of PASS event again, May 19th and 20th.  For 24 hours, industry professionals such as Brian Knight, Donald Farmer, Thomas Grohser, and Brad McGehee will be presenting topics on SQL Server 2008 R2, including database design, SSRS, SSIS, BI, data warehousing, dashboards, server performance and much more.  The link to register is &lt;a href="http://www.sqlpass.org/24hours/2010/" target="_blank"&gt;here&lt;/a&gt;.  I did the last one back in October 2009 and it was fantastic.  A little difficult to stay awake for some presentations, because keep in mind, this is a 24 hour event, so presentations are taking place every hour around the clock based on GMT 00:00 (UTC), but the presentations themselves are without question top notch.  Don't miss this one!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-985572601975616990?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/985572601975616990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/04/24-hours-of-pass-is-back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/985572601975616990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/985572601975616990'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/04/24-hours-of-pass-is-back.html' title='24 Hours of PASS is back!'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-5228042060673431932</id><published>2010-03-25T09:09:00.000-07:00</published><updated>2010-03-25T09:14:08.910-07:00</updated><title type='text'>Scott Guthrie is returning to Phoenix!</title><content type='html'>Mark the calendar, Microsoft's own Scott Guthrie is returning to Phoenix on May 10th at the Scottsdale Resort and Conference Center.  From 8am-6pm, we'll get to enjoy the wisdom and insight of one of the industry's top professionals, along with great speakers such as Scott Hanselman and Jeffrey Palermo!  There's a link on the side along with a countdown, courtesy of &lt;a href="http://twitter.com/scottcate" target="_blank"&gt;@ScottCate&lt;/a&gt;.  Seats are filling up quickly!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-5228042060673431932?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/5228042060673431932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/03/scott-guthrie-is-returning-to-phoenix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5228042060673431932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5228042060673431932'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/03/scott-guthrie-is-returning-to-phoenix.html' title='Scott Guthrie is returning to Phoenix!'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-3508253976818993933</id><published>2010-01-27T13:07:00.000-08:00</published><updated>2010-06-23T11:15:09.006-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Long SQL query time and account permissions</title><content type='html'>My good friend &lt;a href="http://www.twitter.com/michaelperillo" target="_blank"&gt;@MichaelPerillo&lt;/a&gt; and I were recently discussing the possible cause for a SQL query to take an excessively long time, even though proper measures had been taken to ensure performance tuning had taken place.  He made a suggestion that I believe is noteworthy, so I'm putting it here, also so I can reference it later.&lt;br /&gt;&lt;br /&gt;A transactional SQL database performs each transaction in a queue, assigning each transaction a queue request.  Queue requests are prioritized not only by how they come in, (traditional queue behavior) but also based on the account permissions of the originator of the query.  Accounts with Read/Write permissions are not given as high of a priority as accounts with read only permissions.  In my case, the account that was performing the query had DBO rights on the database.  Meanwhile, service accounts with datareader access were blazing past it, while the account with DBO rights was still plugging along. &lt;br /&gt;&lt;br /&gt;Now, I'm not saying my ability to write top-notch queries far surpasses all others, I'm sure there's plenty I could be doing that would improve performance.  But outside of the typical performance-tuning techniques and best practices, there is a difference in performance based on account permissions, where accounts without write access will be given higher priority in the queue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-3508253976818993933?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/3508253976818993933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2010/01/long-sql-query-time-and-account.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3508253976818993933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3508253976818993933'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2010/01/long-sql-query-time-and-account.html' title='Long SQL query time and account permissions'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-1027394715686988577</id><published>2009-12-16T11:32:00.000-08:00</published><updated>2009-12-16T11:39:31.476-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Query AD using T-SQL</title><content type='html'>So I'm working on a small interface that needs to check certain computers in our enterprise for file changes, and fortunately these specific computers are kept in a group nested inside our AD structure.  My thought was, if I can use a SQL query to go get that list of machines, put the results in a table, then have the interface read from that table it would always have a current list of these machines, with no maintenance required for adding and removing these PCs.  Here's what I came up with:&lt;br /&gt;&lt;br /&gt;First, the database needs to have ad hoc queries enabled.  This is done in the Surface Area Configuration for Features section of Surface Area Configuration on the affected DB server.  You'll need this in order to use commands such as OPENROWSET and OPENDATASOURCE.  In this case, we're going to use OPENROWSET.  Set this first, then use the following query:&lt;br /&gt;&lt;br /&gt;SELECT distinguishedName&lt;br /&gt;FROM &lt;br /&gt;OPENROWSET('ADsDSOObject','adsdatasource'; 'DOMAIN\username';'password',&lt;br /&gt;'SELECT  distinguishedName&lt;br /&gt;    FROM ''LDAP://server''&lt;br /&gt;    WHERE memberOf=''cn=groupname,ou=OU_Container_Group_Lives_In,dc=server,dc=com''&lt;br /&gt;    AND objectCategory=''computer''')&lt;br /&gt;&lt;br /&gt;Obviously you'll want to substitute the DOMAIN\username and password, as well as the LDAP://server and the memberOf sections for your network's info, but this structure will work.  Feel free to substitute distinguishedName for another property if you want different results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-1027394715686988577?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/1027394715686988577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/12/query-ad-using-t-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1027394715686988577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1027394715686988577'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/12/query-ad-using-t-sql.html' title='Query AD using T-SQL'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2407943544369659088</id><published>2009-11-20T06:12:00.000-08:00</published><updated>2009-11-20T06:40:18.335-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008 R2'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>No-Cost training on Channel 9</title><content type='html'>MSDN's Channel 9 is offering no cost training from their learning center.  Learn at your own pace with these on-demand videos.  Here are a few links to some of their content:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862427&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Microsoft Office 2010 Workshop&lt;/a&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862428&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Windows Server 2008 R2 Developer Training&lt;/a&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862429&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;SharePoint 2010 Developer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862430&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Visual Studio 2010 and .Net Framework 4 Training Course&lt;/a&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862431&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Windows 7 Developer Training&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, here are a few links to some no-cost Exchange Server 2010 E-Learning courses:&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862423&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Clinic 6899: Exploring Features of Exchange Server 2010 (2 hours)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862424&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Clinic 6900: Introduction to Exchange Server 2010 (one hour)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://co1piltwb.partners.extranet.microsoft.com/mcoeredir/mcoeredirect.aspx?linkId=12862425&amp;s1=ed57b6c2-ab75-ed3e-5f5e-2adbfd130b52" target="_blank"&gt;Clinic 6901: Exchange Server 2010 in an Enterprise (one hour)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2407943544369659088?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2407943544369659088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/11/no-cost-training-on-channel-9.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2407943544369659088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2407943544369659088'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/11/no-cost-training-on-channel-9.html' title='No-Cost training on Channel 9'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-4617276126327141799</id><published>2009-11-11T12:04:00.000-08:00</published><updated>2009-11-11T12:08:38.263-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AD'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Excellent article on getting AD info using C#</title><content type='html'>I'm always getting, updating, and validating against AD info at my company, and today I needed to pull several different schema attributes in one method, and kept running into more and more trouble.  Code got bigger and bigger, and I thought there had to be a way to simplify this.  I then ran across a CodeProject article definitely worth mentioning.  The author, Rajasekhara Sambangi does an excellent job of demonstrating a simplified way of pulling just about anything from AD by passing in the SearchResult object and the property name you're searching for into a basic method, and the result is the value of the key!  The link to the article is &lt;a href="http://www.codeproject.com/KB/system/getuserfrmactdircsharp.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-4617276126327141799?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/4617276126327141799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/11/excellent-article-on-getting-ad-info.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/4617276126327141799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/4617276126327141799'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/11/excellent-article-on-getting-ad-info.html' title='Excellent article on getting AD info using C#'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-4341674679191428439</id><published>2009-10-21T11:04:00.000-07:00</published><updated>2009-10-21T11:17:23.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Returning the Nth weekday in SQL...and in InfoPath</title><content type='html'>Ok, after much research I found a forum that had a posting that demonstrated how to get the Nth chosen weekday of a month using T-SQL.  Here's the code:&lt;br /&gt;&lt;br /&gt;DECLARE @date datetime&lt;br /&gt;DECLARE @weekday int&lt;br /&gt;DECLARE @day datetime&lt;br /&gt;DECLARE @number int&lt;br /&gt;DECLARE @WhichOne int&lt;br /&gt;&lt;br /&gt;SELECT @WhichOne = 2 -- Set this to the week you want to grab&lt;br /&gt;SELECT @number = 1&lt;br /&gt;SELECT @weekday = 0&lt;br /&gt;SELECT @date = getDate() -- Change to dateadd(month, 1, getDate()) for next month, etc.&lt;br /&gt;&lt;br /&gt;WHILE @weekday &lt;&gt; 4 -- Change this value to be the day of the week you're looking for&lt;br /&gt;BEGIN&lt;br /&gt;    SELECT @day = (CAST(STR(MONTH(@date)) + '/' + STR(@number) + '/'+ STR(YEAR(@date)) AS DATETIME))&lt;br /&gt;    SELECT @weekday = DATEPART(weekday, @day)&lt;br /&gt;    SELECT @number = @number + 1&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;SELECT DATEADD(d, (@WhichOne - 1) * 7, @day)&lt;br /&gt;&lt;br /&gt;Many MANY thanks to Tara for this posting!  The link to the forum post is &lt;a href="http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=28209" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, how did I get InfoPath to see this?  In the InfoPath form, I added a DatePicker control.  Next I had to create a Data Source, point to a server and database on our network somewhere (doesn't matter where).  Click "Edit SQL" and add this code to that box.  Click through the wizard and right click on the control, choosing Properties.  Click the Function design button next to Default Value, Click Insert Field or Group, and under Data Source, choose your newly created data source.  Expand out the tree until you see your result set field and choose it.  Don't forget to export your data connection to a Data Connection library on your SharePoint server and site, or the form won't work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-4341674679191428439?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/4341674679191428439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/10/returning-nth-weekday-in-sqland-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/4341674679191428439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/4341674679191428439'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/10/returning-nth-weekday-in-sqland-in.html' title='Returning the Nth weekday in SQL...and in InfoPath'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2818940035077014259</id><published>2009-10-21T08:48:00.000-07:00</published><updated>2009-10-21T09:11:36.488-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><title type='text'>Calculating Nth weekday of next month in Excel</title><content type='html'>I won't normally post Excel stuff on here, but while researching an XSLT/Javascript function I was determined to get it right in Excel first, so I understood it better, and definitely wanted to document it so I could pull it back up later!&lt;br /&gt;&lt;br /&gt;In this example, I need to know the second Wednesday of next month, because that's when server maintenance is every month.  But what day is it?  Here's the Excel formula:&lt;br /&gt;&lt;br /&gt;=DATE(YEAR(TODAY()),MONTH(TODAY())+1,1+7*2)-WEEKDAY(DATE(YEAR(TODAY(),MONTH(TODAY())+1,8-4))&lt;br /&gt;&lt;br /&gt;Notice the DAY argument of the first DATE function in the formula says "1+7*2".  The "2" represents the week of the month, so if you wanted the third week change it to "3", etc.&lt;br /&gt;&lt;br /&gt;Next, notice the DAY argument of the second DATE function in the formula says "8-4".  The "4" represents the day of the week, where 1 is Sunday, 2 is Monday, etc.  So if you wanted Fridays only, change it to 6.&lt;br /&gt;&lt;br /&gt;This worked in Excel, now to figure out how to do this in JavaScript and/or XSLT.  Ultimately I need it in XSLT for InfoPath, and the generic formula functions in InfoPath don't come close to this.  Once I figure it out I'll post it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2818940035077014259?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2818940035077014259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/10/calculating-nth-weekday-of-next-month.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2818940035077014259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2818940035077014259'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/10/calculating-nth-weekday-of-next-month.html' title='Calculating Nth weekday of next month in Excel'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2300831158431630831</id><published>2009-10-21T07:11:00.000-07:00</published><updated>2009-10-21T07:42:14.642-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>InfoPath data validation using regular expressions</title><content type='html'>I found it interesting yesterday, while building an InfoPath template for SharePoint 2007, that you can use regular expression code to perform data validation the same way it's used in an ASP.Net form, and the same way it's done in C#.  Here's an example:&lt;br /&gt;&lt;br /&gt;In my form, I wanted to make sure the data entered conformed to a specific email address format.  Normally, an email address pattern looks like this:&lt;br /&gt;&lt;br /&gt;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&lt;br /&gt;&lt;br /&gt;This won't work in InfoPath, there are too many unrecognizable characters.  However, very similarly you can force a pattern match in InfoPath by doing something like this:&lt;br /&gt;&lt;br /&gt;\p{L}+@\p{L}+\.\p{L}+&lt;br /&gt;&lt;br /&gt;Unlike C# and ASP.Net, InfoPath data validation has some explanation of the code behind their form of regular expression validation.  C# regular expression code is all over the internet, a Google search will provide a wealth of help on it, and I've blogged about it before.  But I found it interesting that you can use regular expression for data input validation, not to mention to promote security, preventing SQL injection and launching of unsafe code.  If you're well versed in InfoPath you already knew this.  If not, give it a try by right-clicking on the TextBox control, for example, and choose Data Validation.  Under the "If condition is true" section, the third drop down will say "Select a Pattern".  Choose this, and in the Data Entry Pattern window, under Standard Patterns choose Custom Pattern.  Then use the Insert Special Character drop down below to help you build your expression.  Like regular expressions, you can force specific words, too.  So something like:&lt;br /&gt;&lt;br /&gt;\p{L}+@gmail.com&lt;br /&gt;&lt;br /&gt;Would be the same as saying "allow any word before @gmail.com".  The \p{L} allows any letter, the "+" immediately after that says "multiple".  As you can see, there's a lot of possibilities with the way to construct expressions.  Give it a try the next time you're in InfoPath!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2300831158431630831?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2300831158431630831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/10/infopath-data-validation-using-regular.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2300831158431630831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2300831158431630831'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/10/infopath-data-validation-using-regular.html' title='InfoPath data validation using regular expressions'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-8162377264991488422</id><published>2009-10-07T12:38:00.000-07:00</published><updated>2009-10-07T16:38:29.525-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team Foundation Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Complete TFS 2008 Install Guide</title><content type='html'>I wanted to use Team Foundation Server 2008 as our development solution for our company, and I had never used it before, so I thought I'd give it a whirl on a VM dev box and see how it goes.  I tried opening the Installation Guide, and it didn't work.  I tried opening the one online, and it forced me to download a copy that also didn't work.  So, flying blind I gave it my best shot.  After over a week of trial and error, I managed to get a good install.  Here is my step by step guide for installing and troubleshooting an install of TFS 2008, assuming a MOSS 2007 farm exists and using a local instance of SQL 2005:&lt;br /&gt;&lt;br /&gt;There are some preliminary steps that need to take place before you can just slap the CD in the drive and go.  Here are those steps:&lt;br&gt;&lt;br /&gt;&lt;b&gt;Preliminary Steps&lt;/b&gt;&lt;br&gt;&lt;br /&gt;1. Ensure you have reporting services, analysis services, integration services and notification services all installed with that local instance of SQL 2005.  If anything's missing the TFS install will break.&lt;br /&gt;2. Open up the Services MMC snap-in and disable anything that has to do with SQL.&lt;br /&gt;3. Install SQL 2005 SP1 on the TFS 2008 machine.  If you already have SP1 on there, skip this step.&lt;br /&gt;4. Re-enable all of those SQL services disabled in step 2 above.&lt;br /&gt;5. Choose an AD service account that you won't mind granting sysadmin role access on the DB, and local admin access on the box.  You will also need to grant elevated permissions on a folder path once TFS is done installing.  We'll get there later.&lt;br /&gt;&lt;br /&gt;Ok, with that out of the way, it's now safe to install TFS 2008.  Follow these steps to do so:&lt;br&gt;&lt;br /&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br&gt;&lt;br /&gt;1. Run the setup app, click through the welcome screen and EULA.&lt;br /&gt;2. Choose the destination path&lt;br /&gt;3. If it's not pre-populated already, type the local instance of SQL from the preliminary steps above.&lt;br /&gt;4. A System Health Check will run and determine if TFS 2008 will have any problems installing.  Here's where the preliminary steps above come in handy.  Any errors here and you should check to make sure everything was completed above.&lt;br /&gt;5. Specify the service account to run web services.  This should be the service account you previously identified.  Although you can mix service accounts in these next few steps, don't.  I had nothing but trouble doing it that way.  Keep it consistent and it'll work.  DO NOT USE A SYSTEM ACCOUNT!!!  This will require you to grant sysadmin role access to the system account, as well as make the system account a local admin, etc.  Not the safest solution IMHO.&lt;br /&gt;6. Specify an SSRS service account.  Again, make this the same account as step 5.&lt;br /&gt;7. Specify Windows SharePoint Services settings.  Enter the Central Admin path, including port number (http://server:port) and the default site URL in the appropriate spaces.  Note that the default site MUST be a path to http://server/sites.  After much research it seems the wizard forces new sites to be created in this path.  There is a way to update the connections afterwards by using &lt;b&gt;tfsadminutil configureconnections /sharepointsitesuri:new_site /sharepointunc:new_unc_path&lt;/b&gt; at the command line, but this did nothing for me.  The default site in the Team Project creation wizard was still http://server/sites.  If anyone knows how to get around this please feel free to chime in.&lt;br /&gt;8. Specify alert settings.  Here you can set up the SMTP server and reply-to address for alerts.&lt;br /&gt;9. The installer will proceed by itself&lt;br /&gt;10. Once finished, install TFS 2008 SP1 (unless it was part of your original app)&lt;br /&gt;11. When that's finished, install Team Explorer on each client machine that will be connecting to TFS 2008.  Note there's a 5 client limit for TFS 2008 workgroup edition.  Team Explorer is found on the TFS 2008 workgroup edition CD.  When you run the CD on the client, the main menu will have the Team Explorer option under Software.  This will install the plug-in to allow connections to the TFS server.&lt;br /&gt;12. After that, you need to ensure the TFS service account you selected is in the sysadmin role on all TFS databases on the TFS server.  Open up SSMS and open the TFS server database instance.  All TFS databases start with "TFS".  Go to Security-&gt;Server Roles, double-click on sysadmin and make sure your service account is in there.&lt;br /&gt;13. Next, we need to make sure the service account has full control over the MachineKeys directory on the TFS server.  Just dropping them in the local administrators group isn't good enough, trust me, although that should be done as well.  In Windows Explorer, navigate to \\&lt;i&gt;servername&lt;/i&gt;\&lt;i&gt;drive$&lt;/i&gt;\documents and settings\all users\application data\microsoft\crypto\rsa and right-click on MachineKeys, selecting Properties.  There should be just Administrators and Everyone in the Security tab.  Make sure both have Full Control, then click Advanced.  Check the "Replace permission entries on all child objects" box and click OK.  Click OK at the warning also.&lt;br /&gt;14. Next, the two main templates for TFS 2008 need to be uploaded to MOSS 2007.  Log onto the MOSS 2007 box as an administrator, open up a command prompt and type the following commands:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;cd c:\program files\common files\microsoft shared\web server extensions\12\bin&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;stsadm -o addtemplate -filename "\\tfsservername\drive$\program files\microsoft visual studio 2008 team foundation server\tools\templates\MSFAgile30.stp" -title "VSTS_MSFAgile"&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;stsadm -o addtemplate -filename "\\tfsservername\drive$\program files\microsoft visual studio 2008 team foundation server\tools\templates\MSFormal30.stp" -title "VSTS_MSF_CMMI"&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;The "title" argument of each of these commands is very important, TFS 2008 cannot create a new website if the title of each of these templates is not spelled exactly this way.&lt;br /&gt;15. Restart IIS on the MOSS 2007 box.&lt;br /&gt;&lt;br /&gt;That's it for installing and configuring the TFS 2008 server.  Now let's configure the Visual Studio 2008 instance on each box.  Don't worry, it's quick:&lt;br&gt;&lt;br /&gt;&lt;b&gt;Configure VS2008&lt;/b&gt;&lt;br&gt;&lt;br /&gt;1. Open Visual Studio 2008 on the client machine.&lt;br /&gt;2. Click on Tools-&gt;Options&lt;br /&gt;3. Expand the Source Control item on the left and click on the Plug-in Selection option.&lt;br /&gt;4. Select &lt;b&gt;Visual Studio Team Foundation Server&lt;/b&gt; from the list and click OK.&lt;br /&gt;&lt;br /&gt;That's it, and that's enough.  Holy installation, Batman!  Now, to create a new Team Project try this:&lt;br&gt;&lt;br /&gt;&lt;b&gt;Create a Team Project&lt;/b&gt;&lt;br&gt;&lt;br /&gt;1. In Visual Studio 2008, click on File-&gt;New-&gt;Team Project&lt;br /&gt;2. Select the TFS server from the list and click OK&lt;br /&gt;3. Provide a name for the team project.  Note this name will become part of the URL to the website, so to avoid HTML encoding use underscores and avoid symbols and spaces here.&lt;br /&gt;4. Select the process template from the list.&lt;br /&gt;5. Project portal settings are next.  The title will be the website title, so spaces and symbols are ok here.  The description will go under the title and above the "announcements" web part on the website, and the template will append info about the template to the end of your description without your consent.  It's ok, you can modify it later in MOSS.  Note you cannot modify the project portal address.&lt;br /&gt;6. Specify your source control settings, either create a new empty repository, branch onto an existing repository, or skip source control altogether.&lt;br /&gt;7. Click Finish and you're done!  FINALLY!  The wizard will create your website, reporting, documentation, source control repository, and project.&lt;br /&gt;&lt;br /&gt;There's one final step that needs to happen if you want to add items to the source control of the team project, and that's creating a mapped workspace.  The workspace by default is your machine, but the source control needs to be able to map it's repository to a folder in the workspace.  To do this, with Visual Studio 2008 open, click on View-&gt;Team Explorer, then in the Team Explorer window, double-click on Source Control for the project in question.  This will open up Source Control Explorer.  Locate the &lt;b&gt;Workspace&lt;/b&gt; drop down list, open it up and select "workspaces".  Select your machine and click Edit.  In the Working Folders section at the bottom of the window, choose the "Source Control Folder", which will be the current working repository, and also choose the Local Folder to the right.  Then click OK to map them.&lt;br /&gt;&lt;br /&gt;So, let's say you're having trouble creating a project site.  You're getting errors and the description is not a very good one.  You're not alone, the forums are packed with this.  Here are some steps you can take first before hunting for your needle in a haystack:&lt;br&gt;&lt;br /&gt;&lt;b&gt;Troubleshooting&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Make sure the Instance for all of the TFS databases matches.  You can find this value by right-clicking on the VersionControl database and choosing Properties.  Then click Extended Properties.  Note the TFS_INSTANCE value.  It should be the same for all databases.  If not, make sure the other databases match the value in VersionControl.  The article is detailed &lt;a href="http://support.microsoft.com/kb/965215" target="_blank"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Double check your permissions on the MachineKeys directory listed above.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Try recreating the InstanceID on TFS and SQL.  The details are found &lt;a href="http://ozgrant.com/2006/10/18/tfs-instanceid-servermapxml-and-havoc" target="_blank"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Whew!  That's all I have, and I think it's enough.  Like I said, if anyone has an easier method of accomplishing this feel free to mention it.  Otherwise this guide is the result of numerous trial and error steps that were documented as they happened.  A final install from start to finish was conducted and it worked.  I hope this helps whoever needs it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-8162377264991488422?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/8162377264991488422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/10/complete-tfs-2008-install-guide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/8162377264991488422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/8162377264991488422'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/10/complete-tfs-2008-install-guide.html' title='Complete TFS 2008 Install Guide'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2533083941593554723</id><published>2009-10-06T11:50:00.001-07:00</published><updated>2009-10-06T11:58:50.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>WSS 2.0 error when adding new users to a site</title><content type='html'>Yeah, I know, they're still running WSS 2.0.  I'm just here to help, not judge.  = )&lt;br /&gt;&lt;br /&gt;So I get the request (and I got it before and forgot how I did it) from a site admin that they can't add a user to their new website they created.  It says they already exist when clearly they do not in the Manage Users screen.  This is generally because the SID of the existing user account doesn't match the SID of the new account you're trying to add. The solution?  Well documented in &lt;a href="http://support.microsoft.com/kb/893696" target="_blank"&gt;this Microsoft KB article&lt;/a&gt;.  The quick solution?  If it's a WSS site that is hosted on the portal site, go here:&lt;br /&gt;&lt;br /&gt;http://ServerName/Sites/SiteName/_layouts/1033/Siteusrs.aspx&lt;br /&gt;&lt;br /&gt;Otherwise go here:&lt;br /&gt;&lt;br /&gt;http://ServerName/_layouts/1033/Siteusrs.aspx&lt;br /&gt;&lt;br /&gt;Obviously replacing "servername" with your server and "sitename" with the parent site you're trying to add the user to.  Locate the user in the list, check the box and at the top click the "Remove Selected Users" link.  Once gone you can now safely add this person to the parent and/or child sites without issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2533083941593554723?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2533083941593554723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/10/wss-20-error-when-adding-new-users-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2533083941593554723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2533083941593554723'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/10/wss-20-error-when-adding-new-users-to.html' title='WSS 2.0 error when adding new users to a site'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-3541482118464883770</id><published>2009-09-07T17:59:00.001-07:00</published><updated>2009-09-07T18:16:23.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='controls'/><title type='text'>Import an Excel 2007 spreadsheet into a GridView in ASP.Net</title><content type='html'>I had a request earlier today for an existing web-based solution written in C# ASP.Net 2.0 to be able to upload an Excel 2007 spreadsheet and have the site immediately read from that file and put the results into a GridView control on the same page for editing, review, etc.  I had never done this before, all of my data access was typically SQL, Access, XML, etc.  So I did some light research and ended up writing the following code to accomplish this:&lt;br /&gt;&lt;br /&gt;This code assumes you have already added a FileUpload control called "Fileupload1" and a GridView control called "GridView1"&lt;br /&gt;&lt;br /&gt;if (Fileupload1.HasFile)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Fileupload1.SaveAs(Server.MapPath(Fileupload1.FileName));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;string filename = Fileupload1.FileName;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;string serverfilename = Server.MapPath(filename);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + serverfilename + ";Extended Properties=\"Excel 12.0 Xml;HDR=NO;IMEX=1\"";&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;OleDbDataAdapter cmd = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strCon);&lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;DataSet ds = new DataSet();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;cmd.Fill(ds, "XL");&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;GridView1.DataSource = ds.Tables["XL"].DefaultView;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;GridView1.DataBind();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;This did the trick, worked perfectly for me.  If anyone has a better method of accomplishing the same task I welcome your suggestions.&lt;br /&gt;&lt;br /&gt;The following ASP.Net forums posting helped a lot: &lt;a href="http://forums.asp.net/t/1169005.aspx" target="_blank"&gt;http://forums.asp.net/t/1169005.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps someone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-3541482118464883770?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/3541482118464883770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/import-excel-2007-spreadsheet-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3541482118464883770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/3541482118464883770'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/import-excel-2007-spreadsheet-into.html' title='Import an Excel 2007 spreadsheet into a GridView in ASP.Net'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-581650198941164802</id><published>2009-09-03T18:40:00.000-07:00</published><updated>2009-09-03T19:00:20.656-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='software transactional memory'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='STM'/><title type='text'>STM and .Net 4.0 Beta 1</title><content type='html'>I installed STM.Net this past week (Software Transactional Memory) as a experimental trial from DevLabs.  Although I'm not sure how this environment will help my current enterprise I work for, I'm still curious about learning something new.  I haven't had a chance to try out the code yet this week, but hopefully next week after I set up my new dev environment at work I can install it there too and give it a whirl.  I'll post something here once I have some time to mess with it.  If anyone who's tried this already has any feedback or comments please feel free to post them below.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-581650198941164802?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/581650198941164802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/stm-and-net-40-beta-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/581650198941164802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/581650198941164802'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/stm-and-net-40-beta-1.html' title='STM and .Net 4.0 Beta 1'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-5863129679696795148</id><published>2009-09-02T11:32:00.000-07:00</published><updated>2009-09-02T11:35:43.379-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='webcasts'/><category scheme='http://www.blogger.com/atom/ns#' term='PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='seminars'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Great upcoming webcasts and seminars</title><content type='html'>It seems like September through November is heavy on developer and security webcasts. I'm including as many as I can in this entry, if anyone notices others feel free to post them in the comments below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlpass.org/" target="_blank"&gt;24 Hours of PASS&lt;/a&gt; - 24 one-hour long-ish webcasts from industry experts on SQL related management and development. &lt;br /&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422056&amp;Culture=en-US" target="_blank"&gt;geekSpeak: Generics and Collections (Level 200)&lt;/a&gt; - Webcast providing details and best practices with collections and lists in .Net Framework 3.5&lt;br /&gt;&lt;a href="http://www.msdev.com/Directory/Description.aspx?eventId=1336" target="_blank"&gt;Windows 7 and Windows Server 2008 R2: Testing your applications for compatibility&lt;/a&gt; - the title says it all.&lt;br /&gt;&lt;a href="http://www.microsoft.com/business/thenewefficiency/" target="_blank"&gt;The New Efficiency: IT Professional and Developer Technical Briefings&lt;/a&gt; - Phoenix, AZ - This is an in-person event involving Windows 7, Windows server 2008 R2, and Exchange Server 2010&lt;br /&gt;&lt;a href="http://www.sharepointvcx.com/" target="_blank"&gt;SharePoint 2010 Live Conference and Expo&lt;/a&gt; - A live virtual conference regarding all things SharePoint.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-5863129679696795148?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/5863129679696795148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/great-upcoming-webcasts-and-seminars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5863129679696795148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5863129679696795148'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/great-upcoming-webcasts-and-seminars.html' title='Great upcoming webcasts and seminars'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2875497174630110714</id><published>2009-09-02T11:30:00.000-07:00</published><updated>2009-09-02T11:32:12.980-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMD'/><category scheme='http://www.blogger.com/atom/ns#' term='VBScript'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008 T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='VB6'/><category scheme='http://www.blogger.com/atom/ns#' term='Powershell'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>New code library site</title><content type='html'>I created a basic code library site to host all of the code snippets I've gathered and/or created over time. Go &lt;a href="http://codelibrary.azpcc.net" target="_blank"&gt;here&lt;/a&gt; to visit the site.&lt;br /&gt;&lt;br /&gt;It's pretty basic and empty right now, I'll dress it up a little more as time goes on. I'm also trying to determine a better way of sub-categorizing the code in each of the language tabs. I welcome suggestions. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2875497174630110714?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2875497174630110714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/new-code-library-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2875497174630110714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2875497174630110714'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/new-code-library-site.html' title='New code library site'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-7809748682470706379</id><published>2009-09-02T11:28:00.000-07:00</published><updated>2009-09-02T11:30:24.487-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Application Pool'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>App Pool Crashing - Part 2</title><content type='html'>When we left off on this issue, the app pool was crashing at semi-random intervals. After much discussion with Microsoft's IIS forum, Microsoft's ASP.Net forum (not much help there), and peer development groups (AZGroups.com primarily), I downloaded and installed IISState.exe, which is a command line monitor (basically) that is placed on the IIS server and listens for app pool issues. It's far more detailed than Event Log or App Pool logging, providing codes at every POST/GET. Additionally, I tried turning app pool recycling completely off with no success, and also tried scheduling a single recycle in the middle of the night, also without success.&lt;br /&gt;&lt;br /&gt;I decided to run IISState and see what happened. Upon running I noticed the expected logging, with typical "Ok, that worked" codes being thrown. After almost 2 days of running fine, the app pool finally crashed and IISState captured it. The interesting thing is, the error code it threw was a "C++ EH exception - code e06d7363 (first chance)". Initial research shows this to be a problem internal to IIS. So far, additional research proves this is either not well known or not well documented. I also researched a forum about the error, and their recommendation was to uninstall and reinstall IIS. Yeah.....not happening. In fact, that solution is insulting. Similar to when your computer is slow, blow away the hard drive and reinstall the OS. Please, I thought we were professionals here!&lt;br /&gt;&lt;br /&gt;So, the issue remains unresolved at this time. I had to put it aside temporarily to work on other projects, but it's very much a priority to discover root cause and resolution. As soon as I get to that point, or if I discover anything else I'll post it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-7809748682470706379?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/7809748682470706379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/app-pool-crashing-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7809748682470706379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/7809748682470706379'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/app-pool-crashing-part-2.html' title='App Pool Crashing - Part 2'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-1063283372824475520</id><published>2009-09-02T11:25:00.000-07:00</published><updated>2009-09-02T11:28:36.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Application Pool'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='controls'/><title type='text'>App Pool Crashing - Part 1</title><content type='html'>While working on a website that's designed to run 24 hours a day with no user interaction (an automatically-updating display for users to walk past and see), I came across an interesting phenomenon.&lt;br /&gt;&lt;br /&gt;Now, the website is designed in ASP.Net 3.5 with AJAX. There's an UpdatePanel and a Timer, and that's it for the AJAX portion. The Timer control fires every 10 seconds and fires the UpdatePanel. Simple enough, right? Well, at random instances the website would stop updating and throw a ScriptResource.axd related error, but only visible in the status bar at the bottom of the browser. After some exhaustive research on this error and finding very little documented on the Internet, I received some feedback from some colleagues that it might be an app pool recycling problem in IIS.&lt;br /&gt;&lt;br /&gt;So, my next step was to modify the IIS settings on that server. I removed everything and only enabled recycling once a day. I also turned on app pool logging in the Event Log as described in &lt;a href="http://www.iisadmin.co.uk/?p=17" target="_blank"&gt;this&lt;/a&gt; article. The next day everything was still working, so far so good! However, the following day (2nd day) the website stopped updating again. This time I checked the Event Log and found the following warning:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://codeblue.azpcc.net/images/image.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 404px; height: 455px;" src="http://codeblue.azpcc.net/images/image.bmp" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I looked up the error code 8007006d and it came back to "App Pool Crashed". Well, I think that was fairly obvious. Now to figure out why the thing crashed, when all it's doing is updating a lousy panel every 10 seconds!&lt;br /&gt;&lt;br /&gt;So, at this time I enabled healthMonitoring in the app's web.config file to attempt to capture more events when the app pool crashes again. This, combined with the IIS log and extended app pool logging in Event Viewer, I hopefully will glean something valuable about this event. Stay tuned for Part 2, which should hopefully be the root cause and solution to this issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-1063283372824475520?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/1063283372824475520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/app-pool-crashing-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1063283372824475520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1063283372824475520'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/app-pool-crashing-part-1.html' title='App Pool Crashing - Part 1'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-2390735313128600884</id><published>2009-09-02T11:23:00.000-07:00</published><updated>2009-09-02T11:24:49.976-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='databinding'/><category scheme='http://www.blogger.com/atom/ns#' term='controls'/><title type='text'>WPF Databinding to a Combobox</title><content type='html'>So I'm trying to hone my skills in ASP.Net while at the same time learn new technology and languages. I've been working with WPF since it came out, and the more I play with it the more I like it. My most recent project includes quite a bit of databinding, which I quickly learned is very different from ASP.Net.&lt;br /&gt;&lt;br /&gt;For this posting, I'll assume we need to databind to a Combobox. Before I begin, please note this is of course not the only way to do this. There are numerous ways to accomplish the same result, and someone probably has a better way of doing it. This just outlines one method that works, while providing type safety.&lt;br /&gt;&lt;br /&gt;Ok, with that out of the way, first create a public class that handles a key and a value. This is to prepare for your type safe list that the Combobox requires as its datasource. It can look as simple as this:&lt;br /&gt;&lt;br /&gt;     public class myObject&lt;br /&gt;     {&lt;br /&gt;        public int objKey {get; set;}&lt;br /&gt;        public string objValue {get; set;}&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;Ok, we have a class for our type safe List. Now, go get your data and put it somewhere. In my project, I read from a SQL table, put the information into a DataSet, then iterated through the DataSet adding each row to the List like so:&lt;br /&gt;&lt;br /&gt;     foreach(DataRow r in ds.Tables[0].Rows)&lt;br /&gt;     {&lt;br /&gt;        int key = Convert.ToInt32(r[0].ToString());&lt;br /&gt;        string value = r[1].ToString();&lt;br /&gt;        newObject.Add(new MakesObject {objKey = key, objValue = value });&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;Where the type safe list is named newObject. Ok, this will fill your type safe list with each object from the DataSet. Now you can bind the Combobox to the List the same way we did it in ASP.Net, only the naming changed slightly. Instead of DataSource, it's called ItemsSource. The DataTextField and DataValueField properties are now DisplayMemberPath and SelectedValuePath. So to bind to the Combobox you can do this:&lt;br /&gt;&lt;br /&gt;     cmbMakes.ItemsSource = newObject;&lt;br /&gt;     cmbMakes.DisplayMemberPath = "objValue";&lt;br /&gt;     cmbMakes.SelectedValuePath = "objKey";&lt;br /&gt;&lt;br /&gt;That's it. You will now have your Combobox filled with your data, and the key from your database query is set to the value of each item.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-2390735313128600884?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/2390735313128600884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/wpf-databinding-to-combobox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2390735313128600884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/2390735313128600884'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/wpf-databinding-to-combobox.html' title='WPF Databinding to a Combobox'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-1448391259513428149</id><published>2009-09-02T11:21:00.000-07:00</published><updated>2009-09-02T11:22:56.004-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>Problems installing SQL 2008</title><content type='html'>I had originally installed SQL 2005 Express on my laptop, and something happened during the installation and it got corrupted. I was unable to uninstall, whether I used Add/Remove programs, ran setup.exe ACTION=uninstall from the command line while in the SQL root path, even if I used msicuu2 and msizap to look for the GUIDs associated with SQL 2005. Nothing worked. I thought installing SQL 2008 Express might "fix" or overwrite something and then get me the latest version to play with anyway. Couldn't have been further from correct. Now I had two corrupt installations and no way to remove either one.&lt;br /&gt;&lt;br /&gt;After much research online and trial and error, I was at a point of giving up and wiping the hard disk. I HATE wiping the hard disk for something like this, I feel like I failed somehow. Outside of serious corruption there's always a way to fix something software related, right? Well, I stumbled upon an MSDN posting later today where users were having similar issues, and one person suggested removing the following registry entry:&lt;br /&gt;&lt;br /&gt;HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\90&lt;br /&gt;&lt;br /&gt;So, I went back into Add/Remove Programs, removed all things SQL, stopped all SQL services and set them all to Disabled, restarted the computer, made sure visual Studio 2008 had SP1 installed (because once before it barked at me saying that was required) and tried the install again. Voila! Everything installed perfectly except Full Text Search. Since I've been without a local database on my development machine for the past two years, Full Text Search is the least of my problems right now! I'm just thankful I finally have something to work with.&lt;br /&gt;&lt;br /&gt;So, if anyone is having problems with the Express SQL versions, or something similar is happening that is preventing you from upgrading to either SQL 2008 Express or SQL 2008 Enterprise or Standard, check out this MSDN thread and see if it helps you:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/5fc58507-9f40-4213-acbd-32a57c8822d7/" target="_blank"&gt;http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/5fc58507-9f40-4213-acbd-32a57c8822d7/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-1448391259513428149?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/1448391259513428149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/problems-installing-sql-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1448391259513428149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/1448391259513428149'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/problems-installing-sql-2008.html' title='Problems installing SQL 2008'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-9006725397886361004</id><published>2009-09-02T11:18:00.000-07:00</published><updated>2009-09-02T11:21:07.897-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='controls'/><title type='text'>Setting a Silverlight slider control at initialization</title><content type='html'>&lt;span style="font-family: georgia;"&gt;I recently ran into a problem where I needed a Silverlight slider control pre-populated with a specific value when the page loaded, but if you use the slider`s ValueChanged event in the code behind file, it dies. Why? Because as the page loads and initializes, the code behind is trying to run and the slider control hasn`t finished being created yet. Putting the values I wanted them to start at worked fine, as long as you put them after the Initialize(); call in Page_Load, but I still wanted the ValueChanged method to fire when the value changed on the slider. Here`s what I did to make sure the ValueChanged method fires and I can still pre-populate the slider at initialization:&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;Slider slider = (Slider)this.FindName("slidername");&lt;br /&gt;if (slider == null)&lt;br /&gt;     return;&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;     // Do something&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The first line there looks to make sure the control was created before even continuing. If it exists, it then will allow whatever you want from it without throwing an error.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-9006725397886361004?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/9006725397886361004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/setting-silverlight-slider-control-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/9006725397886361004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/9006725397886361004'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/setting-silverlight-slider-control-at.html' title='Setting a Silverlight slider control at initialization'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-5597113823900061252</id><published>2009-09-02T11:15:00.000-07:00</published><updated>2009-09-02T11:17:16.893-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>Get the first occurrence of a character in SQL</title><content type='html'>&lt;span style="font-family: georgia;"&gt;When I need to know the first (or any) occurrence of a character, I'm used to saying something like InStr() for VB or ASP, or String.IndexOf() in .Net, but when I tried to do something like this today in SQL for a substring portion of a query I was creating, those obviously aren't available. Well, in Oracle InStr is available I understand, but we`re talking about SQL. Since the subject of this site includes "other stuff I thought was cool", I'm adding this, because I thought it was cool&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;To get the first occurrence of a character in a TEXT field (emphasis mine, because it must be a text compliant field) you use the PATINDEX() function. PATINDEX looks for the first occurrence of a specified pattern in a text field. Meaning, the field can be a text, nvarchar, char, etc. It cannot be an image or int, for example. PATINDEX, I learned, is typically used in BLOBs (Binary Large OBjects).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;Let's say you are querying a table called MYTABLE, looking for the pattern "forest" in the field STORY_DESCRIPTION. Your query would look like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;SELECT PATINDEX('%,forest%', STORY_DESCRIPTION)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;FROM MYTABLE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;The result would be the char position of the first occurrence of the pattern "forest". This helped me when I was trying to put together something like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;SELECT SUBSTRING(CN, 3, PATINDEX('%CN=', CN) - 3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;FROM AD_TABLE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;Where in this case I was querying an Active Directory results table and the CN field always started with "CN=", but I wanted just the value from each row. This worked perfectly. Although those of you who are SQL experts know of a much simpler method, I'm sure, this one worked for me!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-5597113823900061252?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/5597113823900061252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/get-first-occurrence-of-character-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5597113823900061252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5597113823900061252'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/get-first-occurrence-of-character-in.html' title='Get the first occurrence of a character in SQL'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-5213932799834463276</id><published>2009-09-02T11:09:00.000-07:00</published><updated>2009-09-02T11:10:52.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='MSXML'/><category scheme='http://www.blogger.com/atom/ns#' term='BIDS 2005'/><title type='text'>Error creating a new SSIS project in BIDS 2005</title><content type='html'>&lt;span style="font-family: georgia;"&gt;I recently encountered an issue where I hadn't created an SSIS package in a while, and when I opened BIDS 2005 and said "Create New Project", after naming the project and proceeding it barked at me, saying "Failed to save package file  with error 0x080040155 'Interface not registered'. Turns out somehow my MSXML assembly files got unregistered. The way to fix this that worked for me, was to re-register msxml3.dll, msxml4.dll and msxml6.dll. Some said to just do 3 and 6, which would probably work, but it doesn't hurt to register all three anyway. That did the trick!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-5213932799834463276?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/5213932799834463276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/error-creating-new-ssis-project-in-bids.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5213932799834463276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/5213932799834463276'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/error-creating-new-ssis-project-in-bids.html' title='Error creating a new SSIS project in BIDS 2005'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2969851545858895816.post-9112858451173939558</id><published>2009-09-02T11:01:00.000-07:00</published><updated>2009-09-02T11:08:51.032-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ODBC'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='64 bit'/><category scheme='http://www.blogger.com/atom/ns#' term='OLE DB'/><title type='text'>Problems with OLE DB and ODBC on 64 bit systems</title><content type='html'>&lt;span id="DataList1_ctl00_lblContent" style=";font-family:Tahoma;font-size:small;"  &gt;So, for the past few months a DBA and I were trying to figure out why all of our SSIS packages, connection strings and data sources all work fine on Server 2003, SQL 2005 and of course in dev, but not on our production SQL 2005 server. After extensive research (which was probably right in front of our faces the whole time) we stumbled over the following KB article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/957570" target="_blank"&gt;KB957570&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Which very briefly explains how the OLE DB and ODBC providers are only available on 32 bit systems, and our production SQL 2005 server is 64 bit. Since 64 bit performs so much better, and SQL is a resource hog to begin with, this seemed like the best solution. Then when we installed ILM 2007 (64 bit) and wanted to connect to the database (also 64 bit), and things kept failing, we'd beat our heads into the wall trying to figure out why. According to the KB article, there is no plan to support these providers in a 64 bit environment, and the best solution is to just emulate a 32 bit environment, such as run the application in 32 bit mode. Not that easy when you're custom-writing interfaces, applications and queries. However, thanks to my co-worker's friend he pointed out a way to run an SSIS package on a 64 bit server and make it think it's 32 bit!&lt;br&gt;&lt;br&gt;While creating the package in VS2005, go to Project-&gt;Project Properties. Look for the element called "RUN64BITRUNTIME" and change it to False. Then save and deploy the package as usual. Finally, you cannot execute the package from the UI or even from a SQL job. You'll need to execute it from the command line using DTEXEC utility. To automate this, use a SQL job to call the DTEXEC utility command, either through xp_cmdshell or a batch job. More details can be found by reading &lt;a href="http://msdn.microsoft.com/en-us/library/ms141766.aspx" target="_blank"&gt;this article&lt;/a&gt; from SQL Server 2008 Books Online.&lt;br&gt;&lt;br&gt;So, there is a workaround to this apparent roadblock. The best part of all of this? There is allegedly support for these two providers in SQL 2008. We haven't had a chance to test this yet, but that explains why they're not supporting 64 bit versions in SQL 2005....just get SQL 2008!&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2969851545858895816-9112858451173939558?l=nullabletype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nullabletype.blogspot.com/feeds/9112858451173939558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nullabletype.blogspot.com/2009/09/problems-with-ole-db-and-odbc-on-64-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/9112858451173939558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2969851545858895816/posts/default/9112858451173939558'/><link rel='alternate' type='text/html' href='http://nullabletype.blogspot.com/2009/09/problems-with-ole-db-and-odbc-on-64-bit.html' title='Problems with OLE DB and ODBC on 64 bit systems'/><author><name>Eric Oszakiewski</name><uri>http://www.blogger.com/profile/15259556063045228200</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_Ep6P33FnPig/S0nzkOEPW0I/AAAAAAAAABI/DElaCxBV5n8/S220/chairman%27s+award+pic.jpg'/></author><thr:total>0</thr:total></entry></feed>
