<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>A Developer's Blog</title>
	
	<link>http://blog.hoegaerden.be</link>
	<description>SQL Server, BI, .NET, IT and anything else I have been playing with.</description>
	<lastBuildDate>Sat, 06 Mar 2010 15:36:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ADevelopersBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="adevelopersblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Save up to 35% for the PASS European Conference</title>
		<link>http://blog.hoegaerden.be/2010/03/06/save-up-to-35-for-the-pass-european-conference/</link>
		<comments>http://blog.hoegaerden.be/2010/03/06/save-up-to-35-for-the-pass-european-conference/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 15:34:38 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Community Event]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SQLUG]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/03/06/save-up-to-35-for-the-pass-european-conference/</guid>
		<description><![CDATA[As I have recently become a core-member of the Belgian SQLUG, you’re probably going to see a bit more spread-the-word posts about interesting events or other advantages, such as this one.

The Belgian SQL Server User Group offers a significant 35% discount for its members (even more than the early-bird discount) for any PASS European Conference [...]]]></description>
			<content:encoded><![CDATA[<p>As I have recently become a core-member of the <a title="SQL Server User Group Belgium" href="http://www.sqlug.be" target="_blank">Belgian SQLUG</a>, you’re probably going to see a bit more spread-the-word posts about interesting events or other advantages, such as this one.</p>
<p><a title="SQL PASS European Conference 2010" href="http://www.sqlpass.org/summit/eu2010/" target="_blank"><img style="display: inline; border-width: 0px;" title="image" src="http://blog.hoegaerden.be/wp-content/uploads/image199.png" border="0" alt="image" width="692" height="129" /></a></p>
<p>The Belgian SQL Server User Group offers a significant<strong> 35% discount</strong> for its members (even more than the early-bird discount) for any PASS European Conference 2010 registration.</p>
<p>Use discount code <strong>BEC15Y</strong> and enjoy your savings on the registration.</p>
<p>For more information <a title="Save up to 35% for the PASS European Conference - use promo code BEC15Y" href="http://sqlug.be/blogs/official_sqlugbe_blog/archive/2010/02/09/save-up-to-35-for-the-pass-european-conference-use-promo-code-bec15y.aspx" target="_blank">check out the SQLUG website</a>.  PASS European Conference 2010 is Europe’s premier conference for SQL Server technical education and business networking.  Meet top SQL Server experts from Europe and around the world.  Learn about best practices, effective troubleshooting, how to prevent issues, save money, and build a better SQL Server environment for your company or clients.</p>
<p>A while ago I already blogged about <a title="PASS European Conference 2010" href="http://blog.hoegaerden.be/2010/02/11/pass-european-conference-2010/" target="_blank">the sessions that I’m planning to see</a> (which reminds that I should have another look at the agenda and update my list there <img src='http://blog.hoegaerden.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>Have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F03%2F06%2Fsave-up-to-35-for-the-pass-european-conference%2F&amp;linkname=Save%20up%20to%2035%25%20for%20the%20PASS%20European%20Conference"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=xNBkrSG5-as:ymJ_FTZq_uM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=xNBkrSG5-as:ymJ_FTZq_uM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=xNBkrSG5-as:ymJ_FTZq_uM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=xNBkrSG5-as:ymJ_FTZq_uM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=xNBkrSG5-as:ymJ_FTZq_uM:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=xNBkrSG5-as:ymJ_FTZq_uM:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=xNBkrSG5-as:ymJ_FTZq_uM:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/03/06/save-up-to-35-for-the-pass-european-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursively Delete SSIS Folder</title>
		<link>http://blog.hoegaerden.be/2010/02/28/recursively-delete-ssis-folder/</link>
		<comments>http://blog.hoegaerden.be/2010/02/28/recursively-delete-ssis-folder/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 22:12:51 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Integration Services]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/28/recursively-delete-ssis-folder/</guid>
		<description><![CDATA[A while ago I posted a query to create a list of all the Integration Services packages deployed to the MSDB.  I am now using that query to take it a step further.
If you’ve been using SSIS for a while you’ve probably noticed that the Management Studio doesn’t like to delete Integration Services folders that [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I posted <a title="List All SSIS Packages Deployed On Your Integration Server" href="http://blog.hoegaerden.be/2010/01/10/list-all-ssis-packages-deployed-on-your-integration-server/" target="_blank">a query to create a list of all the Integration Services packages deployed to the MSDB</a>.  I am now using that query to take it a step further.</p>
<p>If you’ve been using SSIS for a while you’ve probably noticed that the Management Studio doesn’t like to delete Integration Services folders that are not empty.  In fact, it will politely ask you if you’re sure that you want to delete the folder on which you’ve just selected the “Delete” option through the right-click menu.</p>
<p><img style="display: inline; border: 0px;" title="Right-click pop-up menu on SSIS folder" src="http://blog.hoegaerden.be/wp-content/uploads/image195.png" border="0" alt="Right-click pop-up menu on SSIS folder" width="393" height="160" /></p>
<p><img style="display: inline; border: 0px;" title="I am sure I want to delete this non-empty SSIS folder" src="http://blog.hoegaerden.be/wp-content/uploads/image196.png" border="0" alt="I am sure I want to delete this non-empty SSIS folder" width="621" height="137" /></p>
<p>So you click the Yes button.  But then it shows you the following message:</p>
<blockquote><p>SSIS folder &#8216;FolderWithSubfolders&#8217; contains packages and/or other folders. You must drop these first. (Microsoft SQL Server Native Client 10.0)</p></blockquote>
<p>Graphically it looks like this:</p>
<p><img style="display: inline; border: 0px;" title="Object Explorer pop-up: you can't delete SSIS folders that contain packages or other folders" src="http://blog.hoegaerden.be/wp-content/uploads/image197.png" border="0" alt="Object Explorer pop-up: you can't delete SSIS folders that contain packages or other folders" width="621" height="137" /></p>
<p>And this message can be really annoying if you’ve got a main folder with, let’s say, five subfolders, and each subfolder contains about 20-30 packages.  If you want to delete this folder you first need to delete each package separately and then delete the five subfolders, and then you can finally delete the main folder.  And all that through the right-click pop-up menu because you can’t just select the object in the Object Explorer and hit the Delete button on the keyboard – it doesn’t have an action on SSIS objects…</p>
<p>So, I wasn’t planning on doing such a job manually and came up with the following stored procedure.</p>
<p>It’s probably a bit long but don’t run away just yet, I will explain what’s going on down below the code, and there are some comments in the code as well.</p>
<p><a href="http://11011.net/software/vspaste"></a></p>
<pre class="code"><span style="color: green;">/*
DESCRIPTION: Deletes all folders and packages under, and including, specified folder.
WRITTEN BY:  Valentino Vranken
CREATED:     2010-02-28
VERSION:     1.0
USAGE:
  -- mind the forward slash
  EXEC dbo.SSIS_RecursiveDeleteFolder '/FolderWithSubfolders'
  -- to delete a subfolder
  EXEC dbo.SSIS_RecursiveDeleteFolder '/FolderWithSubfolders/ASubfolderWithPackages'

COPIED FROM: http://blog.hoegaerden.be

Note 1: folder names are not case-sensitive
Note 2: uses system tables and (undocumented) stored procedures located in MSDB.
Note 3: this code was written for SQL Server 2008. For 2005:
  o sysssispackagefolders -&gt; sysdtspackagefolders90
  o sysssispackages -&gt; sysdtspackages90
  o sp_ssis_deletefolder -&gt; sp_dts_deletefolder
  o sp_ssis_deletepackage -&gt; sp_dts_deletepackage
*/
</span><span style="color: blue;">CREATE PROCEDURE </span>dbo<span style="color: gray;">.</span>SSIS_RecursiveDeleteFolder
    @Folder <span style="color: blue;">varchar</span><span style="color: gray;">(</span>2000<span style="color: gray;">)
</span><span style="color: blue;">AS
BEGIN
    set nocount on</span><span style="color: gray;">;

    </span><span style="color: blue;">declare </span>@foldersToDelete <span style="color: blue;">table
    </span><span style="color: gray;">(
        </span>folderid <span style="color: blue;">uniqueidentifier</span><span style="color: gray;">,
        </span>Lvl <span style="color: blue;">int
    </span><span style="color: gray;">);

    </span><span style="color: blue;">declare </span>@packagesToDelete <span style="color: blue;">table
    </span><span style="color: gray;">(
        </span>PackageName <span style="color: blue;">sysname</span><span style="color: gray;">,
        </span>folderid <span style="color: blue;">uniqueidentifier</span><span style="color: gray;">,
        </span>Lvl <span style="color: blue;">int
    </span><span style="color: gray;">);

    </span><span style="color: green;">--retrieve list of folders to be deleted
    </span><span style="color: blue;">with </span>ChildFolders
    <span style="color: blue;">as
    </span><span style="color: gray;">(
        </span><span style="color: blue;">select </span>PARENT<span style="color: gray;">.</span>parentfolderid<span style="color: gray;">, </span>PARENT<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>PARENT<span style="color: gray;">.</span>foldername<span style="color: gray;">,
            </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span><span style="color: red;">'' </span><span style="color: blue;">as sysname</span><span style="color: gray;">) </span><span style="color: blue;">as </span>RootFolder<span style="color: gray;">,
            </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span>PARENT<span style="color: gray;">.</span>foldername <span style="color: blue;">as varchar</span><span style="color: gray;">(</span><span style="color: magenta;">max</span><span style="color: gray;">)) </span><span style="color: blue;">as </span>FullPath<span style="color: gray;">,
            </span>0 <span style="color: blue;">as </span>Lvl
        <span style="color: blue;">from </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span>sysssispackagefolders PARENT
        <span style="color: blue;">where </span>PARENT<span style="color: gray;">.</span>parentfolderid <span style="color: gray;">is null
        </span><span style="color: blue;">UNION </span><span style="color: gray;">ALL
        </span><span style="color: blue;">select </span>CHILD<span style="color: gray;">.</span>parentfolderid<span style="color: gray;">, </span>CHILD<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>CHILD<span style="color: gray;">.</span>foldername<span style="color: gray;">,
            </span><span style="color: blue;">case </span>ChildFolders<span style="color: gray;">.</span>Lvl
                <span style="color: blue;">when </span>0 <span style="color: blue;">then </span>CHILD<span style="color: gray;">.</span>foldername
                <span style="color: blue;">else </span>ChildFolders<span style="color: gray;">.</span>RootFolder
            <span style="color: blue;">end as </span>RootFolder<span style="color: gray;">,
            </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span>ChildFolders<span style="color: gray;">.</span>FullPath <span style="color: gray;">+ </span><span style="color: red;">'/' </span><span style="color: gray;">+ </span>CHILD<span style="color: gray;">.</span>foldername <span style="color: blue;">as varchar</span><span style="color: gray;">(</span><span style="color: magenta;">max</span><span style="color: gray;">))
                </span><span style="color: blue;">as </span>FullPath<span style="color: gray;">,
            </span>ChildFolders<span style="color: gray;">.</span>Lvl <span style="color: gray;">+ </span>1 <span style="color: blue;">as </span>Lvl
        <span style="color: blue;">from </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span>sysssispackagefolders CHILD
            <span style="color: gray;">inner join </span>ChildFolders <span style="color: blue;">on </span>ChildFolders<span style="color: gray;">.</span>folderid <span style="color: gray;">= </span>CHILD<span style="color: gray;">.</span>parentfolderid
    <span style="color: gray;">)
    </span><span style="color: blue;">insert into </span>@foldersToDelete
    <span style="color: blue;">select </span>F<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>F<span style="color: gray;">.</span>Lvl
    <span style="color: blue;">from </span>ChildFolders F
    <span style="color: blue;">where </span>F<span style="color: gray;">.</span>FullPath <span style="color: gray;">like </span>@Folder <span style="color: gray;">+ </span><span style="color: red;">'%'</span><span style="color: gray;">;

    </span><span style="color: green;">--retrieve list of packages to be deleted
    </span><span style="color: blue;">with </span>ChildFolders
    <span style="color: blue;">as
    </span><span style="color: gray;">(
        </span><span style="color: blue;">select </span>PARENT<span style="color: gray;">.</span>parentfolderid<span style="color: gray;">, </span>PARENT<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>PARENT<span style="color: gray;">.</span>foldername<span style="color: gray;">,
            </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span><span style="color: red;">'' </span><span style="color: blue;">as sysname</span><span style="color: gray;">) </span><span style="color: blue;">as </span>RootFolder<span style="color: gray;">,
            </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span>PARENT<span style="color: gray;">.</span>foldername <span style="color: blue;">as varchar</span><span style="color: gray;">(</span><span style="color: magenta;">max</span><span style="color: gray;">)) </span><span style="color: blue;">as </span>FullPath<span style="color: gray;">,
            </span>0 <span style="color: blue;">as </span>Lvl
        <span style="color: blue;">from </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span>sysssispackagefolders PARENT
        <span style="color: blue;">where </span>PARENT<span style="color: gray;">.</span>parentfolderid <span style="color: gray;">is null
        </span><span style="color: blue;">UNION </span><span style="color: gray;">ALL
        </span><span style="color: blue;">select </span>CHILD<span style="color: gray;">.</span>parentfolderid<span style="color: gray;">, </span>CHILD<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>CHILD<span style="color: gray;">.</span>foldername<span style="color: gray;">,
            </span><span style="color: blue;">case </span>ChildFolders<span style="color: gray;">.</span>Lvl
                <span style="color: blue;">when </span>0 <span style="color: blue;">then </span>CHILD<span style="color: gray;">.</span>foldername
                <span style="color: blue;">else </span>ChildFolders<span style="color: gray;">.</span>RootFolder
            <span style="color: blue;">end as </span>RootFolder<span style="color: gray;">,
            </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span>ChildFolders<span style="color: gray;">.</span>FullPath <span style="color: gray;">+ </span><span style="color: red;">'/' </span><span style="color: gray;">+ </span>CHILD<span style="color: gray;">.</span>foldername <span style="color: blue;">as varchar</span><span style="color: gray;">(</span><span style="color: magenta;">max</span><span style="color: gray;">))
                </span><span style="color: blue;">as </span>FullPath<span style="color: gray;">,
            </span>ChildFolders<span style="color: gray;">.</span>Lvl <span style="color: gray;">+ </span>1 <span style="color: blue;">as </span>Lvl
        <span style="color: blue;">from </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span>sysssispackagefolders CHILD
            <span style="color: gray;">inner join </span>ChildFolders <span style="color: blue;">on </span>ChildFolders<span style="color: gray;">.</span>folderid <span style="color: gray;">= </span>CHILD<span style="color: gray;">.</span>parentfolderid
    <span style="color: gray;">)
    </span><span style="color: blue;">insert into </span>@packagesToDelete
    <span style="color: blue;">select </span>P<span style="color: gray;">.</span>name<span style="color: gray;">, </span>F<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>F<span style="color: gray;">.</span>Lvl
    <span style="color: blue;">from </span>ChildFolders F
        <span style="color: gray;">inner join </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span>sysssispackages P <span style="color: blue;">on </span>P<span style="color: gray;">.</span>folderid <span style="color: gray;">= </span>F<span style="color: gray;">.</span>folderid
    <span style="color: blue;">where </span>F<span style="color: gray;">.</span>FullPath <span style="color: gray;">like </span>@Folder <span style="color: gray;">+ </span><span style="color: red;">'%'</span><span style="color: gray;">;

    </span><span style="color: green;">--use cursor to loop over objects to be deleted
    </span><span style="color: blue;">declare </span>objectsToDelete_cursor <span style="color: blue;">cursor
    for
        select </span>P<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>P<span style="color: gray;">.</span>Lvl<span style="color: gray;">, </span>P<span style="color: gray;">.</span>PackageName<span style="color: gray;">, </span><span style="color: red;">'P' </span><span style="color: blue;">as </span>ObjectType
        <span style="color: blue;">from </span>@packagesToDelete P
        <span style="color: blue;">UNION </span><span style="color: gray;">ALL
        </span><span style="color: blue;">select </span>F<span style="color: gray;">.</span>folderid<span style="color: gray;">, </span>F<span style="color: gray;">.</span>Lvl<span style="color: gray;">, null, </span><span style="color: red;">'F'
        </span><span style="color: blue;">from </span>@foldersToDelete F
        <span style="color: blue;">order by </span>Lvl <span style="color: blue;">desc</span><span style="color: gray;">, </span>ObjectType <span style="color: blue;">desc</span><span style="color: gray;">;

    </span><span style="color: blue;">open </span>objectsToDelete_cursor<span style="color: gray;">;

    </span><span style="color: blue;">declare </span>@folderid <span style="color: blue;">uniqueidentifier</span><span style="color: gray;">;
    </span><span style="color: blue;">declare </span>@lvl <span style="color: blue;">int</span><span style="color: gray;">;
    </span><span style="color: blue;">declare </span>@packageName <span style="color: blue;">sysname</span><span style="color: gray;">;
    </span><span style="color: blue;">declare </span>@objectType <span style="color: blue;">char</span><span style="color: gray;">;

    </span><span style="color: blue;">fetch next from </span>objectsToDelete_cursor
    <span style="color: blue;">into </span>@folderid<span style="color: gray;">, </span>@lvl<span style="color: gray;">, </span>@packageName<span style="color: gray;">, </span>@objectType<span style="color: gray;">;

    </span><span style="color: blue;">while </span><span style="color: magenta;">@@FETCH_STATUS </span><span style="color: gray;">= </span>0
    <span style="color: blue;">begin
        if </span>@objectType <span style="color: gray;">= </span><span style="color: red;">'F'
        </span><span style="color: blue;">begin
            print </span><span style="color: red;">'exec msdb.dbo.sp_ssis_deletefolder '
                </span><span style="color: gray;">+ </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span>@folderid <span style="color: blue;">as varchar</span><span style="color: gray;">(</span><span style="color: magenta;">max</span><span style="color: gray;">));
            </span><span style="color: blue;">exec </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span><span style="color: maroon;">sp_ssis_deletefolder </span>@folderid<span style="color: gray;">;
        </span><span style="color: blue;">end
        else
        begin
            print </span><span style="color: red;">'exec msdb.dbo.sp_ssis_deletepackage '
                </span><span style="color: gray;">+ </span>@packageName <span style="color: gray;">+ </span><span style="color: red;">', ' </span><span style="color: gray;">+ </span><span style="color: magenta;">cast</span><span style="color: gray;">(</span>@folderid <span style="color: blue;">as varchar</span><span style="color: gray;">(</span><span style="color: magenta;">max</span><span style="color: gray;">));
            </span><span style="color: blue;">exec </span>msdb<span style="color: gray;">.</span>dbo<span style="color: gray;">.</span><span style="color: maroon;">sp_ssis_deletepackage </span>@packageName<span style="color: gray;">, </span>@folderid<span style="color: gray;">;
        </span><span style="color: blue;">end

        fetch next from </span>objectsToDelete_cursor
        <span style="color: blue;">into </span>@folderid<span style="color: gray;">, </span>@lvl<span style="color: gray;">, </span>@packageName<span style="color: gray;">, </span>@objectType<span style="color: gray;">;
    </span><span style="color: blue;">end</span><span style="color: gray;">;

    </span><span style="color: blue;">close </span>objectsToDelete_cursor<span style="color: gray;">;
    </span><span style="color: blue;">deallocate </span>objectsToDelete_cursor<span style="color: gray;">;
</span><span style="color: blue;">END</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Before trying to dismantle this stored procedure, I recommend you to read <a title="List All SSIS Packages Deployed On Your Integration Server" href="http://blog.hoegaerden.be/2010/01/10/list-all-ssis-packages-deployed-on-your-integration-server/" target="_blank">my previous article on retrieving the list of packages</a>.  That already explains half of the code, if not 75%.</p>
<p>Our mission is to find a way to recursively delete packages and folders contained in a specified folder.  To be able to loop over those objects in the correct order (from the deepest level up until the level of the folder specified), the SP creates two table variables: one to hold all folders under the specified folder (@foldersToDelete) and one to hold the packages under the specified folder, including all subfolders (@packagesToDelete).</p>
<p>Based on those two lists I create a cursor that joins these two together, taking their level and object type into consideration.  That’s important because we first need to delete the packages in the lowest level folder, followed by their containing folder, then move one level up and do the same.</p>
<p>We then use the cursor to loop over the packages and folders and use two undocumented system stored procedures – one for each object type- to delete the package or folder.  These system SPs are located in the MSDB.  Here’s how they are defined:</p>
<pre class="code"><span style="color: blue;">ALTER PROCEDURE </span>[dbo]<span style="color: gray;">.</span>[sp_ssis_deletefolder]
  @folderid <span style="color: blue;">uniqueidentifier
AS</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<pre class="code"><span style="color: blue;">ALTER PROCEDURE </span>[dbo]<span style="color: gray;">.</span>[sp_ssis_deletepackage]
  @name <span style="color: blue;">sysname</span><span style="color: gray;">,
  </span>@folderid <span style="color: blue;">uniqueidentifier
AS</span></pre>
<p><a href="http://11011.net/software/vspaste"></a>As you can see, the parameters for these procedures are not that complicated.  Both of them expect a <em>uniqueidentifier</em> as identification for the folder.  That’s okay, these IDs are stored in the <em>msdb.dbo.sysssispackagefolders</em> table and retrieved by our queries to create the list of to-be-deleted objects.</p>
<p>Furthermore, the <em>sp_ssis_deletepackage</em> SP expects the name of the package to be deleted.  Not a problem either, those names are obtained from the<em> msdb.dbo.sysssispackages</em> table.</p>
<p><strong>Note for SQL Server 2005 users:</strong> this code was written for SQL Server 2008.  The system stored procedures and system tables exist in 2005 as well, but they have different names.  See the comment header of my SP for more details.</p>
<p>So, let’s give it a little test.  Following screenshot shows the setup.  What I will do is use the stored procedure to delete the <em>FolderWithSubfolders</em> folder.  If you’ve been paying close attention, that is the same folder which I tried to delete manually through the Management Studio’s right-click menu (see first screenshot above).</p>
<p><img style="display: inline; border: 0px;" title="Overview of my deployed folders and packages" src="http://blog.hoegaerden.be/wp-content/uploads/image198.png" border="0" alt="Overview of my deployed folders and packages" width="255" height="207" /></p>
<p>After creating the SP, I ran following command:</p>
<pre class="code"><span style="color: blue;">EXEC </span>dbo<span style="color: gray;">.</span>SSIS_RecursiveDeleteFolder <span style="color: red;">'/FolderWithSubfolders'</span></pre>
<p><a href="http://11011.net/software/vspaste"></a>And that gave me the following output in the Messages pane:</p>
<blockquote><p>exec msdb.dbo.sp_ssis_deletepackage AnotherPackage, 7F38288D-4370-40A8-80E3-E92283033E4C</p>
<p>exec msdb.dbo.sp_ssis_deletepackage Package, 7F38288D-4370-40A8-80E3-E92283033E4C</p>
<p>exec msdb.dbo.sp_ssis_deletefolder 4102ED59-ED75-4D93-BBAE-0A162447BF02</p>
<p>exec msdb.dbo.sp_ssis_deletefolder 7F38288D-4370-40A8-80E3-E92283033E4C</p>
<p>exec msdb.dbo.sp_ssis_deletefolder C156B436-8C78-4BF9-99F9-5ABFAB10C405</p></blockquote>
<p>I have deliberately put a couple of print commands in the stored procedure to dump the commands that are actually being executed.  This gives us a good idea of what’s going on.</p>
<p>That’s it for now folks.  Thank you for reading this, and if you found it useful or you’ve got some questions about it: post a comment!</p>
<p>Have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F28%2Frecursively-delete-ssis-folder%2F&amp;linkname=Recursively%20Delete%20SSIS%20Folder"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=7ig315mH24c:l5iZSD6Q1mM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=7ig315mH24c:l5iZSD6Q1mM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=7ig315mH24c:l5iZSD6Q1mM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=7ig315mH24c:l5iZSD6Q1mM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=7ig315mH24c:l5iZSD6Q1mM:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=7ig315mH24c:l5iZSD6Q1mM:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=7ig315mH24c:l5iZSD6Q1mM:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/28/recursively-delete-ssis-folder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drawing In SQL Server 2008</title>
		<link>http://blog.hoegaerden.be/2010/02/26/drawing-in-sql-server-2008/</link>
		<comments>http://blog.hoegaerden.be/2010/02/26/drawing-in-sql-server-2008/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 21:18:34 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Hoegaarden]]></category>
		<category><![CDATA[spatial data]]></category>
		<category><![CDATA[SQL Server 2008]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/26/drawing-in-sql-server-2008/</guid>
		<description><![CDATA[A while ago I had been playing a bit with the new spatial data types in SQL Server 2008.  Not only can SQL Server store such data, it can also visualize it.  So I had come up with the following query:
select geometry::STPolyFromText
('POLYGON((1 1, 1.5 1.85, 2.5 1.85, 3 1, 2.5 0.15, 1.5 0.15, 1 1),
(1.5 [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I had been playing a bit with <a title="SQL Serve 2008: Spatial Data" href="http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx" target="_blank">the new spatial data types in SQL Server 2008</a>.  Not only can SQL Server store such data, it can also visualize it.  So I had come up with the following query:</p>
<pre class="code"><span style="color: blue;">select geometry</span><span style="color: gray;">::</span>STPolyFromText
<span style="color: gray;">(</span><span style="color: red;">'POLYGON((1 1, 1.5 1.85, 2.5 1.85, 3 1, 2.5 0.15, 1.5 0.15, 1 1),
(1.5 1.5, 1.5 0.5, 1.7 0.5, 1.7 0.9, 2.3 0.9, 2.3 0.5, 2.5 0.5, 2.5 1.5, 2.3 1.5,
2.3 1.1, 1.7 1.1, 1.7 1.5, 1.5 1.5))'</span><span style="color: gray;">, </span>0<span style="color: gray;">);
</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Running that in the Management Studio produces something like this on the <strong>Spatial results</strong> tab:</p>
<p><img style="display: inline; border: 0px;" title="Hoegaerden - the polygon" src="http://blog.hoegaerden.be/wp-content/uploads/image193.png" border="0" alt="Hoegaerden - the polygon" width="486" height="404" /></p>
<p>I’m using the <a title="BOL 2008: STPolyFromText (geometry Data Type)" href="http://msdn.microsoft.com/en-us/library/bb933922.aspx" target="_blank">STPolyFromText</a> function to produce a six-sided polygon with a letter H in the center.  To get to the result, I’m passing a bunch of XY coordinates to the function.  A line gets drawn between two coordinates following each other.</p>
<p>The first list of coordinates (the first list of numbers enclosed in round brackets) creates the hexagon while the second list produces the letter H.  Each <em>list of coordinates</em> thus represents one <strong>polygon</strong>.   The starting XY coordinate must be equal to the ending coordinate to form a closed shape.  The shape is then filled with a color.  Overlapping shapes will be filled using different colors, as shown above.</p>
<p>Producing these coordinates was quite interesting: to be able to calculate the angled sides of the hexagon I used the following formulas.</p>
<p>With <strong>S</strong> being <em>the length of one side</em>:</p>
<p>Width = 2 * S</p>
<p>Height = S * SQRT(3)</p>
<p><strong>Note:</strong> these formulas are only applicable when the hexagon is rotated as shown above.</p>
<p>I needed to know these distances to be able to calculate how much I should increase the X/Y coordinates to get to the next connector.</p>
<p>Okay, enough theory, back to the story now.</p>
<p>Q: “So, why are you creating a helipad platform?”</p>
<p>A: No, it’s not supposed to look like a helipad platform.  The shape resembles the beer coasters for the beer called Hoegaarden.  And those coasters always have a funny drawing or comment on them.  Let’s see if I can find one that’s understandable for non-native Dutch-speakers…</p>
<p><em>(And half an hour later – turns out it’s really not easy to find one without text – luckily they’ve also created some in English!)</em></p>
<p><img style="display: inline; border: 0px;" title="Hoegaarden beer coaster" src="http://blog.hoegaerden.be/wp-content/uploads/image194.png" border="0" alt="Hoegaarden beer coaster" width="640" height="556" /></p>
<p>Initially I was planning on writing a longer article about the spatial data types but hadn’t found the time to do it yet.  And then a couple of days ago I came across a challenge that made me think of this query and so now I’m publishing it in this post.</p>
<p>The challenge to which I’m referring was started by Itzik Ben-Gan and is called <a title="Geekiest Sig Challenge" href="http://www.sqlmag.com/Articles/ArticleID/103518/103518.html" target="_blank">Geekiest Sig Challenge</a>.  The point is to use the new SQL Server spatial data types to create a signature for yourself.  Well, a perfect description for my query!</p>
<p>I was happy to just get an H on there, getting those coordinates right without first putting it on paper is really a challenge <img src='http://blog.hoegaerden.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   And on top of that, I was never any good at drawing.  I remember in secondary school we got an assignment to draw a tree.  Any tree.  So at home I looked out the window and started drawing the tree.  I ended up with the most atrocious thing I’d ever seen (well, that may be a bit exaggerated), it could have starred in a Hitchcock movie straight away, really spiky, and probably spooky when encountered in the dark and with the right background noises playing.</p>
<p>Anyway, what I wanted to say, some people are just talented: check out <a title="More images from the Spatial Results tab" href="http://michaeljswart.com/?p=564" target="_blank">this submission by Michael J. Swart</a>!  No further words needed.</p>
<p>Right, enough geeky stuff to close the week, and remember: have fun!</p>
<p><em>(Hmm, now I’ve got something to build my favicon from…)</em></p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F26%2Fdrawing-in-sql-server-2008%2F&amp;linkname=Drawing%20In%20SQL%20Server%202008"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=iS01Ai6dvxE:1a-Bk4m5W6I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=iS01Ai6dvxE:1a-Bk4m5W6I:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=iS01Ai6dvxE:1a-Bk4m5W6I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=iS01Ai6dvxE:1a-Bk4m5W6I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=iS01Ai6dvxE:1a-Bk4m5W6I:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=iS01Ai6dvxE:1a-Bk4m5W6I:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=iS01Ai6dvxE:1a-Bk4m5W6I:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/26/drawing-in-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Excel Auto Fill Feature</title>
		<link>http://blog.hoegaerden.be/2010/02/20/the-excel-auto-fill-feature/</link>
		<comments>http://blog.hoegaerden.be/2010/02/20/the-excel-auto-fill-feature/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 21:29:08 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Excel]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/20/the-excel-auto-fill-feature/</guid>
		<description><![CDATA[A couple of days ago I discovered a very interesting double-click feature in Excel. One that probably already exists for ages &#8211; the oldest version that I was able to try it out on is Excel 2002 and it worked &#8211; but due to being used to other habits I just never found out about [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago I discovered a very interesting double-click feature in Excel. One that probably already exists for ages &#8211; the oldest version that I was able to try it out on is Excel 2002 and it worked &#8211; but due to being used to other habits I just never found out about it.&#160; Until now.</p>
<p>When a cell (or a range of cells) is selected, you see a thicker black border around the selection and the bottom-right corner has got a small square attached.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="One cell selected in Excel" border="0" alt="One cell selected in Excel" src="http://blog.hoegaerden.be/wp-content/uploads/image188.png" width="405" height="174" /> </p>
<p>You can drag that squared corner down to get copy-like behaviour. More precisely, when one cell is selected and you drag it down then the value of the selected cell gets copied over into the cells further down, up until the cell where you stop dragging.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="The effect of dragging the squared corner with one cell selected" border="0" alt="The effect of dragging the squared corner with one cell selected" src="http://blog.hoegaerden.be/wp-content/uploads/image189.png" width="450" height="155" /> </p>
<p><strong>Note:</strong> the same effect also works horizontally but in real-life circumstances you probably won’t need it much.</p>
<p>When multiple cells are selected and you drag the bottom-right corner down, Excel will apply some logic to continue the series that it possibly detects.</p>
<p>For instance if you have two cells selected with the values 2 and 4, the next cells will get 6, 8, and so on. Or when the first cell contains 2010/10/30 and the second 2010/10/25, the next cells will get date values going down by 5 days per cell.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Excel&#39;s Auto Fill with two rows and two cells per row selected" border="0" alt="Excel&#39;s Auto Fill with two rows and two cells per row selected" src="http://blog.hoegaerden.be/wp-content/uploads/image190.png" width="450" height="272" /> </p>
<p>If you don&#8217;t like the way the series gets applied, there&#8217;s a dropdown poping up at the bottom-right of the new selection at the moment that you stop dragging. In that list you get several different Auto Fill Options, depending on the data type of your selected cells.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="The Auto Fill Options" border="0" alt="The Auto Fill Options" src="http://blog.hoegaerden.be/wp-content/uploads/image191.png" width="387" height="483" /> </p>
<p>I&#8217;m sure this is no news to you so far.</p>
<p>But do you know what happens when you just<strong> double-click</strong> that small bottom-right corner instead of dragging it?</p>
<p>I didn&#8217;t, until I just tried it out this past week. The reason that I tried this was because I needed a formula copied down in about 20,000 rows (hey, I&#8217;m a data guy, remember?) and I didn&#8217;t want to waste my time waiting for Excel to scroll down just to the bottom of the list while dragging the corner. So I double-clicked and there came the discovery of the week! It applied the same function as what you get when you drag the corner down, all the way down to the last row of data! Isn&#8217;t that great? From now on I think I&#8217;ll always just double-click instead of drag, much faster!</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="The Auto Fill effect after double-clicking the small squared corner (I still wonder what name they&#39;ve given this feature - the Auto Fill Corner possibly?)" border="0" alt="The Auto Fill effect after double-clicking the small squared corner (I still wonder what name they&#39;ve given this feature - the Auto Fill Corner possibly?)" src="http://blog.hoegaerden.be/wp-content/uploads/image192.png" width="609" height="242" /> </p>
<p>And you even get the same popup to select another Fill Option.</p>
<p>Have Fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F20%2Fthe-excel-auto-fill-feature%2F&amp;linkname=The%20Excel%20Auto%20Fill%20Feature"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=rYB0nFVSpfc:TgEtlevd9kI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=rYB0nFVSpfc:TgEtlevd9kI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=rYB0nFVSpfc:TgEtlevd9kI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=rYB0nFVSpfc:TgEtlevd9kI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=rYB0nFVSpfc:TgEtlevd9kI:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=rYB0nFVSpfc:TgEtlevd9kI:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=rYB0nFVSpfc:TgEtlevd9kI:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/20/the-excel-auto-fill-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Google Reader As Your Blogroll Source</title>
		<link>http://blog.hoegaerden.be/2010/02/19/using-google-reader-as-your-blogroll-source/</link>
		<comments>http://blog.hoegaerden.be/2010/02/19/using-google-reader-as-your-blogroll-source/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 20:46:24 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Google Reader]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/19/using-google-reader-as-your-blogroll-source/</guid>
		<description><![CDATA[If you&#8217;re using Google Reader and you&#8217;ve got a WordPress blog then I&#8217;ve got a really useful tip for you!
Especially if you want to save time maintaining all those links in your blogrolls.
You can synchronize your blogrolls on your blog with folders in your Google Reader. Which means zero maintenance for your blogrolls: they&#8217;re automatically [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using <a title="Google Reader" href="http://www.google.com/reader/" target="_blank">Google Reader</a> and you&#8217;ve got a <a title="WordPress" href="http://wordpress.org/" target="_blank">WordPress</a> blog then I&#8217;ve got a really useful tip for you!</p>
<p>Especially if you want to save time maintaining all those links in your <a title="Wikipedia - Glossary of blogging" href="http://en.wikipedia.org/wiki/Glossary_of_blogging" target="_blank">blogrolls</a>.</p>
<p>You can synchronize your blogrolls on your blog with folders in your Google Reader. Which means zero maintenance for your blogrolls: they&#8217;re automatically updated when you update your Reader subscriptions.</p>
<p>I actually found this solution on another site so I&#8217;ll just point you there: <a href="http://www.adashofbitters.com/2009/01/02/blogroll-google-reader-wordpress-easy/">http://www.adashofbitters.com/2009/01/02/blogroll-google-reader-wordpress-easy/</a></p>
<p>You can see it in action in my sidebar on the right. Several of those link lists are being fed from Google Reader, such as the one called &quot;SQL Blogs @Microsoft&quot;.</p>
<p>Happy blogging!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F19%2Fusing-google-reader-as-your-blogroll-source%2F&amp;linkname=Using%20Google%20Reader%20As%20Your%20Blogroll%20Source"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=9KAi3z9J1Vw:ceDkDbXMpNw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=9KAi3z9J1Vw:ceDkDbXMpNw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=9KAi3z9J1Vw:ceDkDbXMpNw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=9KAi3z9J1Vw:ceDkDbXMpNw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=9KAi3z9J1Vw:ceDkDbXMpNw:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=9KAi3z9J1Vw:ceDkDbXMpNw:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=9KAi3z9J1Vw:ceDkDbXMpNw:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/19/using-google-reader-as-your-blogroll-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 Screen Capture Tool</title>
		<link>http://blog.hoegaerden.be/2010/02/14/windows-7-screen-capture-tool/</link>
		<comments>http://blog.hoegaerden.be/2010/02/14/windows-7-screen-capture-tool/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 21:48:41 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/14/windows-7-screen-capture-tool/</guid>
		<description><![CDATA[We’ve finally gotten a built-in tool in Windows to capture those screenshots for blogging/documentation/whatever purposes.&#160; And it has been given the magical, oh-so-logical name of Snipping Tool!
Update: I’m aware that Vista already contained this tool.&#160; But I’m one of those guys who managed to stay away from Vista so to me it’s new  
Let’s [...]]]></description>
			<content:encoded><![CDATA[<p>We’ve finally gotten a built-in tool in Windows to capture those screenshots for blogging/documentation/whatever purposes.&#160; And it has been given the magical, oh-so-logical name of Snipping Tool!</p>
<p><strong>Update:</strong> I’m aware that Vista already contained this tool.&#160; But I’m one of those guys who managed to stay away from Vista so to me it’s new <img src='http://blog.hoegaerden.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Let’s see if I can capture what it looks like by using the tool itself.&#160; Hmm, I can’t…&#160; Which is probably quite logical as it shouldn’t get in the way when you want to capture a screenshot of something.&#160; What you want to see then is anything but the actual tool used to do it, right??</p>
<p>I’ll go for the old-fashioned way then:<em> ALT + Print Screen</em> (it captures the active window).</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows 7 Snipping Tool - Capture those screens!" border="0" alt="Windows 7 Snipping Tool - Capture those screens!" src="http://blog.hoegaerden.be/wp-content/uploads/image186.png" width="403" height="383" /></p>
<p>In that screenshot I’ve demonstrated a couple of its features.&#160; It comes with a Pen that you can customize a bit into several colors and thickness.&#160; You’ve also got a marker tool called Highlighter – that’s the yellow part.&#160; And there’s an Eraser tool to remove any markings or pen editions you’ve made previously.</p>
<p>Another feature that’s not shown but that’s really useful is that the screenshots are automatically copied to the clipboard.&#160; But you can switch that off through the options if you don’t like it.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Snipping Tool Options" border="0" alt="Snipping Tool Options" src="http://blog.hoegaerden.be/wp-content/uploads/image187.png" width="342" height="327" /></p>
<p>I would have hoped that a couple more features had been included, such as the ability to draw arrows without needing to use a freehand tool (as shown in screenshot above), and a Rectangle/Ellipse tool for some extra markings.</p>
<p>Anyway, what this means as far as I am concerned is that I no longer need to install my favorite screen capture tool (I’ve used a couple over the years but the last one was <a title="Screen Hunter" href="http://www.wisdom-soft.com/products/screenhunter.htm" target="_blank">Screen Hunter</a>).&#160; But for editing some screen captures I’ll still need to resort to my favorite image editor (<a title="paint.net" href="http://www.getpaint.net/" target="_blank">paint.net</a>).</p>
<p><strong>Where is it located?</strong> Well, <em>Start Button &gt; Snipping Tool</em>.&#160; At least, that’s where I found it in my Windows 7 Enterprise edition.</p>
<p><strong>What’s the hotkey?</strong> It’s <em>CTRL + Print Screen</em>.</p>
<p><strong>How do you use the hotkey??</strong> From the moment that you start up the application, it wants to make a screen capture.&#160; What this means is that your mouse pointer changes into a crosshair whenever it goes outside the Snipping Tool window.&#160; All you now need to do is hit the ESC button.&#160; Then switch to the application that you’d like to capture, possibly opening up a menu.&#160; With everything in place just as you want it captured, hit CTRL + Print Screen.&#160; There’s your crosshair again.</p>
<p>Have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F14%2Fwindows-7-screen-capture-tool%2F&amp;linkname=Windows%207%20Screen%20Capture%20Tool"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=m6rfCYFEfHc:c8KOfCCJlYo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=m6rfCYFEfHc:c8KOfCCJlYo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=m6rfCYFEfHc:c8KOfCCJlYo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=m6rfCYFEfHc:c8KOfCCJlYo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=m6rfCYFEfHc:c8KOfCCJlYo:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=m6rfCYFEfHc:c8KOfCCJlYo:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=m6rfCYFEfHc:c8KOfCCJlYo:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/14/windows-7-screen-capture-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS 7.5 And Windows Authentication</title>
		<link>http://blog.hoegaerden.be/2010/02/14/iis-7-5-and-windows-authentication/</link>
		<comments>http://blog.hoegaerden.be/2010/02/14/iis-7-5-and-windows-authentication/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:34:33 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Master Data Services]]></category>
		<category><![CDATA[MDS]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/14/iis-7-5-and-windows-authentication/</guid>
		<description><![CDATA[Owkay, I’ve got a good one for you this time.
And all it takes is checking a checkbox, just one checkbox!

That’s the solution to a problem with which I’ve been struggling yesterday.&#160; What problem?&#160; Let me tell you.
I’ve been installing Master Data Services (MDS) on my SQL Server 2008 R2.&#160; This feature will not only create [...]]]></description>
			<content:encoded><![CDATA[<p>Owkay, I’ve got a good one for you this time.</p>
<blockquote><p>And all it takes is checking a checkbox, just one checkbox!</p>
</blockquote>
<p>That’s the solution to a problem with which I’ve been struggling yesterday.&#160; What problem?&#160; Let me tell you.</p>
<p>I’ve been installing <a title="SQL Server 2008 R2 Master Data Services" href="http://www.microsoft.com/sqlserver/2008/en/us/mds.aspx" target="_blank">Master Data Services</a> (MDS) on my SQL Server 2008 R2.&#160; This feature will not only create a database but also a website which you can use to manage MDS.&#160; And it’s the website part that I had a problem with.&#160; Everything installed just fine but when I tried to load the site in Internet Explorer 8 on my Windows 7 64-bit machine, I got the following error:</p>
<blockquote><p>HTTP Error 401.2 – Unauthorized</p>
<p>You are not authorized to view this page due to invalid authentication headers.</p>
</blockquote>
<p>Great, an authentication problem &#8211; aren&#8217;t those our favorite ones?&#160; And like any decent developer, I didn’t waste my time reading all the text on the error page and started investigating the issue.&#160; I had a look at the settings of the Application Pool and those of the Default Web Site.&#160; I also tried changing the security settings in IE.&#160; At the end I think I have tried every possible setting in <a title="Installing IIS 7.5 on Windows 7 Professional, Enterprise, or Ultimate" href="http://technet.microsoft.com/en-us/library/cc725762.aspx" target="_blank">IIS 7.5</a> (which is the version that ships with Windows 7), but I kept getting that same error.</p>
<p>I let some time pass (not on purpose but because we were going to visit my parents-in-law) and in the evening I decided to have another look.&#160; This time I took the effort of reading everything mentioned in the error:</p>
<p><a href="http://blog.hoegaerden.be/wp-content/uploads/image183.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="HTTP Error 401.2 - Unauthorized" border="0" alt="HTTP Error 401.2 - Unauthorized" src="http://blog.hoegaerden.be/wp-content/uploads/image_thumb53.png" width="657" height="582" /></a></p>
<p>Do you see that blue link down at the bottom, which I’ve marked with a red rectangle?&#160; That’s where I got the answer from!&#160; Clicking it opened up the following Microsoft Support page: <a title="Error message when you try to visit a Web page that is hosted on IIS 7.0: &quot;HTTP Error 401.2 - Unauthorized&quot;" href="http://support.microsoft.com/kb/942043/" target="_blank">Error message when you try to visit a Web page that is hosted on IIS 7.0: &quot;HTTP Error 401.2 &#8211; Unauthorized&quot;</a>.</p>
<p>Sounds familiar doesn’t it?&#160; Okay, it’s meant for IIS 7.0 but works for 7.5 as well.</p>
<p>I solved my problem by applying Resolution 1.&#160; In short: IIS was running without the Windows Authentication module installed!&#160; Apparently that is not installed by default when you activate Internet Information Services through the “Turn Windows features on or off” window.&#160; Here’s a screenshot showing what needs to be added:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Activating Windows Authentication for IIS 7.5 in Windows 7" border="0" alt="Activating Windows Authentication for IIS 7.5 in Windows 7" src="http://blog.hoegaerden.be/wp-content/uploads/image184.png" width="660" height="653" /></p>
<p>Once that was set up I was able to load the MDS application:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Master Data Services Home Page" border="0" alt="Master Data Services Home Page" src="http://blog.hoegaerden.be/wp-content/uploads/image185.png" width="627" height="598" /></p>
<p>If you’re looking for instructions on how to install and configure Master Data Services, have a look at <a title="Installing and Configuring Master Data Services 2008 R2 November CTP" href="http://sqlblog.com/blogs/mds_team/archive/2009/12/10/installing-and-configuring-master-data-services-2008-r2-november-ctp.aspx" target="_blank">this article at the Master Data Services Team blog</a>.</p>
<p>(Do I need to mention that this was the first-ever web application that I tried running on Windows 7? <img src='http://blog.hoegaerden.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>Have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F14%2Fiis-7-5-and-windows-authentication%2F&amp;linkname=IIS%207.5%20And%20Windows%20Authentication"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yDBg4C7PMsA:Z3XUTGFKRZw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=yDBg4C7PMsA:Z3XUTGFKRZw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yDBg4C7PMsA:Z3XUTGFKRZw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=yDBg4C7PMsA:Z3XUTGFKRZw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yDBg4C7PMsA:Z3XUTGFKRZw:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yDBg4C7PMsA:Z3XUTGFKRZw:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=yDBg4C7PMsA:Z3XUTGFKRZw:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/14/iis-7-5-and-windows-authentication/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Browsing Cube In Management Studio Throws Class String Error</title>
		<link>http://blog.hoegaerden.be/2010/02/12/browsing-cube-in-management-studio-throws-class-string-error/</link>
		<comments>http://blog.hoegaerden.be/2010/02/12/browsing-cube-in-management-studio-throws-class-string-error/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:49:34 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Management Studio]]></category>
		<category><![CDATA[SSMS]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/12/browsing-cube-in-management-studio-throws-class-string-error/</guid>
		<description><![CDATA[Using the Management Studio (SSMS) I just received an error which I hadn’t seen before.  Here’s what I was doing.
On my freshly-installed Windows 7 64-bit machine I have both SQL Server 2008 SP1 and SQL Server 2008 R2 (NOV CTP) running (both 64-bit as well).  And I just installed the new Contoso data warehouse and [...]]]></description>
			<content:encoded><![CDATA[<p>Using the Management Studio (SSMS) I just received an error which I hadn’t seen before.  Here’s what I was doing.</p>
<p>On my freshly-installed Windows 7 64-bit machine I have both SQL Server 2008 SP1 and <a title="Get the SQL Server 2008 R2 November CTP and Self-Service BI Downloads" href="http://www.microsoft.com/sqlserver/2008/en/us/r2.aspx" target="_blank">SQL Server 2008 R2 (NOV CTP)</a> running (both 64-bit as well).  And I just installed the new <a title="Microsoft Contoso BI Demo Dataset for Retail Industry" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=868662dc-187a-4a85-b611-b7df7dc909fc" target="_blank">Contoso</a> data warehouse and OLAP DB.</p>
<p>After setting up the data source connection of the Contoso_Retail OLAP database and processing it successfully, the next logical step is to try and browse the cubes, through the Management Studio.  So that’s what I tried, but unfortunately it gave me the following error:</p>
<p><a href="http://blog.hoegaerden.be/wp-content/uploads/image180.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING)" src="http://blog.hoegaerden.be/wp-content/uploads/image_thumb52.png" border="0" alt="Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING)" width="680" height="361" /></a></p>
<p>Hmm, okay, that doesn’t look good!  “Invalid class string”, what does that mean??</p>
<p>So I tried the link that says “Click here to see detailed error information”, which gave me this:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Error pop-up: I don't see the details" src="http://blog.hoegaerden.be/wp-content/uploads/image181.png" border="0" alt="Error pop-up: I don't see the details" width="680" height="142" /></p>
<p>I’m sorry, but where exactly are the details in this message?</p>
<p>Luckily a quick internet search gave me the solution (and reminded me of something which I actually knew but just didn’t think of because it’s all running in a totally new environment).</p>
<p>To browse cubes, SSMS is using a component from the “Microsoft Office 2003 Web Components” package, whatever that that means.</p>
<p>And the solution (<a title="SQL Server Developer Center - SSAS forum" href="http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/20cff7ec-a69f-4a98-ab8a-c736cf17b4bb?prof=required" target="_blank">as described here</a>) is to:</p>
<ul>
<li>Open the list of installed programs (Windows Key + R &gt; appwiz.cpl &gt; enter)</li>
<li>Locate the Office 2003 Web Components, right-click and select Change</li>
<li>Follow the wizard to repair/reinstall the components</li>
</ul>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Programs and Features" src="http://blog.hoegaerden.be/wp-content/uploads/image182.png" border="0" alt="Programs and Features" width="684" height="393" /></p>
<p>And now I am able to browse the cube without any issue!</p>
<p>Have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F12%2Fbrowsing-cube-in-management-studio-throws-class-string-error%2F&amp;linkname=Browsing%20Cube%20In%20Management%20Studio%20Throws%20Class%20String%20Error"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yvjWpFBFAwk:ot-rJMBn9jQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=yvjWpFBFAwk:ot-rJMBn9jQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yvjWpFBFAwk:ot-rJMBn9jQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=yvjWpFBFAwk:ot-rJMBn9jQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yvjWpFBFAwk:ot-rJMBn9jQ:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=yvjWpFBFAwk:ot-rJMBn9jQ:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=yvjWpFBFAwk:ot-rJMBn9jQ:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/12/browsing-cube-in-management-studio-throws-class-string-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSIS: Adding Files To The Miscellaneous Folder</title>
		<link>http://blog.hoegaerden.be/2010/02/11/ssis-adding-files-to-the-miscellaneous-folder/</link>
		<comments>http://blog.hoegaerden.be/2010/02/11/ssis-adding-files-to-the-miscellaneous-folder/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 22:20:14 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[Integration Services]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/11/ssis-adding-files-to-the-miscellaneous-folder/</guid>
		<description><![CDATA[Sometimes my posts are over 20 pages long when pasted into a Word document.&#160; That&#8217;s when I call them article, or tutorial.&#160; Other times I post real quickies about little things that have annoyed me in the past, because I had to spend too much time looking for a solution to a certain issue, or [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes my posts are over 20 pages long when pasted into a Word document.&#160; That&#8217;s when I call them article, or tutorial.&#160; Other times I post real quickies about little things that have annoyed me in the past, because I had to spend too much time looking for a solution to a certain issue, or just because they are not very obvious and I can image fellow developers doing a search on the internet on that specific subject.</p>
<p>This post is one of the latter.</p>
<p>In a <strong>SQL Server Integration Services project</strong>, have you ever wondered how on earth you can get files into that <strong>Miscellaneous folder</strong>?&#160; When you right-click on the folder in the Solution Explorer, nothing happens, no pop-up menu.</p>
<p>Well, the answer is simple, once you know it.</p>
<p>All you need to do is go one level up in the tree and right-click the Project node in the Solution Explorer.&#160; In the menu that appears, select Add &gt; Existing Item&#8230;.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="How to add a file to the SSIS Miscellaneous folder" border="0" alt="How to add a file to the SSIS Miscellaneous folder" src="http://blog.hoegaerden.be/wp-content/uploads/image176.png" width="352" height="397" /> </p>
<p>In the pop-up window, navigate to any file that you&#8217;d like to add to the project.&#160; Files of a different type than the usual SSIS files such as .dtsx and .ds are automatically added under the Miscellaneous folder.&#160; When adding files, they will be automatically copied to the SSIS project folder, no matter where they were stored originally.&#160; See, not that complicated&#8230; once you know it!</p>
<p>In the following screenshot I’ve added three different file types to the folder, just to prove that it’s working.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Miscellaneous folder with some files added to it" border="0" alt="Miscellaneous folder with some files added to it" src="http://blog.hoegaerden.be/wp-content/uploads/image177.png" width="279" height="241" /> </p>
<p>I like using this folder to store files that belong with that particular project.&#160; Examples of those are configuration files, XSLT files for complex XML conversions, and also the SQL scripts that create my databases.&#160; Each time when I make schema changes, I update the scripts.&#160; And as I&#8217;m using TFS integration, I can rest assured that I always have a backup of my files.&#160; (At least, assuming the TFS team is doing their job &#8211; this is usually beyond my responsibility <img src='http://blog.hoegaerden.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>Speaking about <a title="Team Foundation Server Home" href="http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx" target="_blank">TFS</a>, watch out if you use Business Intelligence Development Studio 2008 to connect to Team Foundation Server 2005!&#160; There&#8217;s an interesting setting in the Options screen (through the Tools menu), located in the<strong> Source Control</strong> &gt; <strong>Visual Studio Team Foundation Server</strong> page.&#160; This setting is called <strong><em>Get latest version of file on check out</em></strong>.</p>
<p><a href="http://blog.hoegaerden.be/wp-content/uploads/image178.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Get latest version of item on check out" border="0" alt="Get latest version of item on check out" src="http://blog.hoegaerden.be/wp-content/uploads/image_thumb50.png" width="674" height="392" /></a> </p>
<p>However, there&#8217;s one caveat!&#160; On TFS2005 it doesn&#8217;t do anything!&#160; If you&#8217;re not aware of that, you may get an annoying surprise when you&#8217;re trying to check in your changes because you may have been working on an outdated version of your package!&#160; And as you probably already know: merging two versions of an SSIS package is, well, what shall I call it, a challenge?</p>
<p>Another setting that helps you to avoid the issue described above is located under<strong> Source Control</strong> &gt; <strong>Environment</strong> and is called <strong><em>Get everything when a solution or project is opened</em></strong>.&#160; Activate this setting and each time when you open your project, you&#8217;ll get a popup window which allows you to Get the latest version of the files.</p>
<p><a href="http://blog.hoegaerden.be/wp-content/uploads/image179.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Get evrything when a solution or project is opened" border="0" alt="Get evrything when a solution or project is opened" src="http://blog.hoegaerden.be/wp-content/uploads/image_thumb51.png" width="677" height="394" /></a> </p>
<p>That leaves one more possible conflict situation.&#160; If someone changes a package on the same day as you, the second person will need to explicitly do a Get Latest Version or he/she will be working on an outdated version.&#160; So, communicate with your team mates so that you know if someone has gotten an assignment that collides with yours.&#160; Of course, this last problem is just a theoretical possibility.&#160; In teams, work is usually divided so that developers do not need to work with more than one person on the same piece of code.&#160; The same logic applies to SSIS packages.</p>
</p>
</p>
<p>And remember, have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F11%2Fssis-adding-files-to-the-miscellaneous-folder%2F&amp;linkname=SSIS%3A%20Adding%20Files%20To%20The%20Miscellaneous%20Folder"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=BA-8co4vv7M:cBvqIYnJpPk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=BA-8co4vv7M:cBvqIYnJpPk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=BA-8co4vv7M:cBvqIYnJpPk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=BA-8co4vv7M:cBvqIYnJpPk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=BA-8co4vv7M:cBvqIYnJpPk:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=BA-8co4vv7M:cBvqIYnJpPk:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=BA-8co4vv7M:cBvqIYnJpPk:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/11/ssis-adding-files-to-the-miscellaneous-folder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PASS European Conference 2010</title>
		<link>http://blog.hoegaerden.be/2010/02/11/pass-european-conference-2010/</link>
		<comments>http://blog.hoegaerden.be/2010/02/11/pass-european-conference-2010/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:27:12 +0000</pubDate>
		<dc:creator>Valentino Vranken</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Community Event]]></category>
		<category><![CDATA[PASS]]></category>

		<guid isPermaLink="false">http://blog.hoegaerden.be/2010/02/11/pass-european-conference-2010/</guid>
		<description><![CDATA[With great pleasure I’d like to share with you that my employer has approved my request to attend the SQL PASS European Conference! (Thank you Ordina  )
This event will take place at 21-23 April 2010 in Neuss, Germany.
 
I&#8217;m really looking forward to this, I&#8217;m sure it will be three days with a lot [...]]]></description>
			<content:encoded><![CDATA[<p>With great pleasure I’d like to share with you that my employer has approved my request to attend the SQL PASS European Conference! (Thank you <a title="Ordina - Consulting | ICT | Outsourcing" href="http://www.ordina.be/" target="_blank">Ordina</a> <img src='http://blog.hoegaerden.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>This event will take place at 21-23 April 2010 in Neuss, Germany.</p>
<p><a href="http://www.sqlpass.org/summit/eu2010/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="PASS European Conference: April 21 - 23, 2010" border="0" alt="PASS European Conference: April 21 - 23, 2010" src="http://blog.hoegaerden.be/wp-content/uploads/image175.png" width="475" height="75" /></a> </p>
<p>I&#8217;m really looking forward to this, I&#8217;m sure it will be three days with a lot of learning, a lot of networking and a lot of fun!</p>
<p>Sessions I&#8217;m hoping to see (in no particular order): </p>
<ul>
<li><strong><a href="http://www.sqlpass.org/summit/eu2010/Agenda/PreConference/TacklingTopReportingServicesIssues.aspx" target="_blank">Tackling Top Reporting Services Issues</a> &#8211; Adam Saxton (Microsoft CSS) (Full-day pre-conf seminar)</strong></li>
<li><strong><a href="http://www.sqlpass.org/summit/eu2010/Agenda/Spotlights/ETL3Ways.aspx" target="_blank">ETL 3 Ways</a></strong><strong> &#8211; Allan Mitchell (Konesans)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/Spotlights/BlazingFastQueriesWhenIndexesAreNotEnough.aspx"><strong>Blazing Fast Queries: When Indexes Are Not Enough</strong></a>&#160; &#8211; <strong>Davide Mauri (Solid Quality Mentors)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/Spotlights/IndexAge3DawnoftheFiltered.aspx"><strong>Index Age 3—Dawn of the Filtered</strong></a><strong> &#8211; Bodo Michael Danitz (sqlserver.de)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/ProgramSessions/BuildingaDashboardwithPowerPivot.aspx"><strong>Building a Dashboard with PowerPivot, Reporting Services and PerformancePoint using PowerPivot in SharePoint</strong></a> &#8211; <strong>Kasper de Jonge (ADA ICT)</strong></li>
<li><strong>Importance of Master Data Management &#8211; TBD (Microsoft)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/ProgramSessions/TheDirtyDozen12waystowritepoorlyperformi.aspx"><strong>The Dirty Dozen: 12 Ways to Write Poorly Performing MDX Queries</strong></a> &#8211; <strong>Steve Simon (State Street Corporation)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/ProgramSessions/AdaptiveBIBestPratices.aspx"><strong>Adaptive BI Best Practices</strong></a><strong> &#8211; Davide Mauri (Solid Quality Mentors)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/ProgramSessions/SpatialdatainSQLServer2008andSQL2008R2A.aspx"><strong>Spatial Data in SQL Server 2008 and SQL 2008 R2: A Real World Application</strong></a> &#8211; <strong>Javier Loria (Solid Quality Mentors)</strong></li>
<li><a href="http://www.sqlpass.org/summit/eu2010/Agenda/Spotlights/ImplementingCommonBusinessCalculationsinDAX.aspx"><strong>Implementing Common Business Calculations in DAX</strong></a><strong> (Spotlight) &#8211; Chris Webb (CrossJoin Consulting)</strong></li>
</ul>
<p>Sessions are currently still being added to the agenda, so I’ll update my list here as well when needed.</p>
<p>If you&#8217;re going too and you&#8217;re from Belgium: have a look at <a title="SQLUG.be" href="http://sqlug.be/" target="_blank">the Belgian SQL Server User Group</a> site for <a title="Save up to 35% for the PASS European Conference" href="http://sqlug.be/blogs/official_sqlugbe_blog/archive/2010/02/09/save-up-to-35-for-the-pass-european-conference-use-promo-code-bec15y.aspx" target="_blank">a discount code</a>! </p>
<p>Ow, and post a comment here so we that can have a chat over there!</p>
</p>
<p>Have fun!</p>
<p>Valentino.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.hoegaerden.be%2F2010%2F02%2F11%2Fpass-european-conference-2010%2F&amp;linkname=PASS%20European%20Conference%202010"><img src="http://blog.hoegaerden.be/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=uGs_k5aXIFk:3mgIGpdxSqQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=uGs_k5aXIFk:3mgIGpdxSqQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=uGs_k5aXIFk:3mgIGpdxSqQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=uGs_k5aXIFk:3mgIGpdxSqQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=uGs_k5aXIFk:3mgIGpdxSqQ:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ADevelopersBlog?a=uGs_k5aXIFk:3mgIGpdxSqQ:3QFJfmc7Om4"><img src="http://feeds.feedburner.com/~ff/ADevelopersBlog?i=uGs_k5aXIFk:3mgIGpdxSqQ:3QFJfmc7Om4" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.hoegaerden.be/2010/02/11/pass-european-conference-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
