<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wissenshabitat Blog &#187; Hendrik Schreiber</title>
	<atom:link href="http://blog.wissenshabitat.de/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wissenshabitat.de</link>
	<description>“Be the change you want to see in the world”</description>
	<lastBuildDate>Sat, 13 Nov 2010 08:35:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MSSQL Server &#8220;multiple concat&#8221;</title>
		<link>http://blog.wissenshabitat.de/2010/08/12/240/</link>
		<comments>http://blog.wissenshabitat.de/2010/08/12/240/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 07:16:46 +0000</pubDate>
		<dc:creator>Hendrik Schreiber</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Concat]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[String]]></category>

		<guid isPermaLink="false">http://blog.wissenshabitat.de/?p=240</guid>
		<description><![CDATA[Ich habe nach einer Möglichkeit in MSSQL ein &#8220;Mehrfach-Concat&#8221; durchzuführen. Dabei sollen ein Feld, das in mehreren Zeilen in der selben Spalte steht, in ein Feld zusammengefügt werden. Fündig geworden bin ich mit dieser interessanten Lösung (Link): SELECT A.Artikel_PK , GroupNameConcat = REPLACE (( SELECT Bestellung_PK AS [data()] FROM X_ArtikelBestellung WHERE Artikel_PK = A.Artikel_PK ORDER [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe nach einer Möglichkeit in MSSQL ein &#8220;Mehrfach-Concat&#8221; durchzuführen. Dabei sollen ein Feld, das in mehreren Zeilen in der selben Spalte steht, in ein Feld zusammengefügt werden. Fündig geworden bin ich mit dieser interessanten Lösung (<a href="http://www.adamsdesk.com/be/archives/2008/12/05/mysql-can-you-concatenate-strings-from-a-column-into-a-single-row/" target="_blank">Link</a>):</p>
<pre>SELECT A.Artikel_PK ,
GroupNameConcat = REPLACE ((
          SELECT
              Bestellung_PK AS [data()]
          FROM X_ArtikelBestellung
          WHERE Artikel_PK = A.Artikel_PK
          ORDER BY
             Voice_PK
          FOR XML PATH ('')), ' ', ',')
FROM T_Artikel as A
ORDER BY A.Artikel_PK</pre>
<p>In dem Beispiel wird eine Tabelle zurückgegeben mit den Spalten Artikel_PK und GroupNameConcat. In GroupNameConcat stehen für jeden Artikel die zugehörigen Bestellungen kommagetrennt.</p>
<p>Um das besser zu verstehen, siehe auch die entsprechende Microsoft-Erläuterung zu <a href="http://msdn.microsoft.com/en-us/library/ms345137(SQL.90).aspx" target="_blank">&#8220;For XML&#8230;&#8221;</a>. Nachteil  ist in diesem Beispiel, dass alle Leerstellen durch ein Komma ersetzt werden. Wenn man nun ein nvarchar-Feld aneinanderfügen will, könnte man anstatt Bestellung_Pk z.B. Bestellung _PK + &#8216;;&#8217; schreiben und das Replace weglassen. Dann wäre nur am Ende ein &#8220;;&#8221; zuviel, aber die Leerzeichen blieben erhalten.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wissenshabitat.de/2010/08/12/240/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Threading &#8211; Impersonate</title>
		<link>http://blog.wissenshabitat.de/2010/08/01/asp-net-threading-impersonate/</link>
		<comments>http://blog.wissenshabitat.de/2010/08/01/asp-net-threading-impersonate/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 20:31:20 +0000</pubDate>
		<dc:creator>Hendrik Schreiber</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[Impersonate]]></category>
		<category><![CDATA[Threading]]></category>

		<guid isPermaLink="false">http://blog.wissenshabitat.de/?p=233</guid>
		<description><![CDATA[In ASP.NET  Anwendung (VB.NET z.B. als Programmiersprache im Hintergrund) kann auf einfache Weise Multithreading verwendet werden. Wichtig ist dabei zu wissen, dass die geöffneten Threads unter bestimmten Voraussetzungen nicht unter dem selben Benutzer laufen, wie die ASP.NET Anwendung. Dies ist u.A. der Fall, wenn die ASP.NET &#8211; Anwendung unter einem bestimmten Nutzer ausgeführt werden soll [...]]]></description>
			<content:encoded><![CDATA[<p>In ASP.NET  Anwendung (VB.NET z.B. als Programmiersprache im Hintergrund) kann auf einfache Weise Multithreading verwendet werden. Wichtig ist dabei zu wissen, dass die geöffneten Threads unter bestimmten Voraussetzungen nicht unter dem selben Benutzer laufen, wie die ASP.NET Anwendung. Dies ist u.A. der Fall, wenn die ASP.NET &#8211; Anwendung unter einem bestimmten Nutzer ausgeführt werden soll (Siehe dazu auch<a href="http://msdn.microsoft.com/en-us/library/aa292118%28VS.71%29.aspx" target="_blank"> MSDN &#8211; Impersonate</a>). Dies wird in der Web.config festgelegt:</p>
<pre>&lt;identity impersonate="true"
          userName="domain\user"
          password="password" /&gt;
</pre>
<p>Mit diesem Nutzer wird dann auch der VB.NET &#8211; Code ausgeführt. So ist u.A. eine Authentifizierung an einer Datenbank über einen Windowsnutzer möglich. Wenn nun ein Thread gestartet wird, läuft dieser nicht direkt unter dem in der Web.config angegebenen Nutzer, sondern unter dem Nutzer ASPNET. Um den Thread auch unter dem aktuellen Nutzer auszuführen, muss dieser an den Thread übergeben werden. Der aktuelle Nutzer wird so ermittelt:</p>
<pre>Dim identity As System.Security.Principal.WindowsIdentity = _
             System.Security.Principal.WindowsIdentity.GetCurrent</pre>
<p>Diese Variable kann dann im Thread benutzt werden, um einen Code-Abschnitt mit dem ursprünglichen Nutzer auszuführen:</p>
<pre>m_identity.Impersonate()</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.wissenshabitat.de/2010/08/01/asp-net-threading-impersonate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enum in VB.Net durchlaufen</title>
		<link>http://blog.wissenshabitat.de/2010/07/12/enum-in-vb-net-durchlaufen/</link>
		<comments>http://blog.wissenshabitat.de/2010/07/12/enum-in-vb-net-durchlaufen/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 19:51:43 +0000</pubDate>
		<dc:creator>Hendrik Schreiber</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Enum]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://blog.wissenshabitat.de/?p=227</guid>
		<description><![CDATA[Letztens wollte ich ein Enum-Typen mit einer foreach-Schleife durchlaufen. Auf der Microsoft-Seite bin ich fündig geworden. Im Prinzip geht das Ganze so: For Each strName As String In [Enum].GetNames(GetType(enumColumns))              Dim intId As Integer = CInt([Enum].Parse(GetType(enumColumns), strName)) Next strName Der Enum ist dabei &#8220;enumColumns&#8221;!]]></description>
			<content:encoded><![CDATA[<p>Letztens wollte ich ein Enum-Typen mit einer foreach-Schleife durchlaufen. Auf der <a href="http://msdn.microsoft.com/en-us/library/system.enum(VS.71).aspx" target="_blank">Microsoft-Seite </a>bin ich fündig geworden. Im Prinzip geht das Ganze so:</p>
<pre>For Each strName As String In [Enum].GetNames(GetType(enumColumns))
             Dim intId As Integer = CInt([Enum].Parse(GetType(enumColumns), strName))
Next strName
</pre>
<p>Der Enum ist dabei &#8220;enumColumns&#8221;!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wissenshabitat.de/2010/07/12/enum-in-vb-net-durchlaufen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

