<?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>YourHelpCenter.de</title>
	<atom:link href="http://www.yourhelpcenter.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yourhelpcenter.de</link>
	<description>Hilfe &#38; Support für IT Probleme</description>
	<lastBuildDate>Wed, 10 Mar 2010 15:20:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP: Zufallszeichenkette erzeugen (random string)</title>
		<link>http://www.yourhelpcenter.de/2010/03/php-zufallszeichenkette-erzeugen-random-string/</link>
		<comments>http://www.yourhelpcenter.de/2010/03/php-zufallszeichenkette-erzeugen-random-string/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 05:22:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[alphanumeric]]></category>
		<category><![CDATA[alphanumerisch]]></category>
		<category><![CDATA[chars]]></category>
		<category><![CDATA[concat]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[definieren]]></category>
		<category><![CDATA[erstellen]]></category>
		<category><![CDATA[erzeugen]]></category>
		<category><![CDATA[pool]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[strings]]></category>
		<category><![CDATA[zeichenkette]]></category>
		<category><![CDATA[zeichenpool]]></category>
		<category><![CDATA[zufallsgenerator]]></category>
		<category><![CDATA[zufällugen zeichen]]></category>
		<category><![CDATA[zusammenbauen]]></category>
		<category><![CDATA[zusammenstellen]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=924</guid>
		<description><![CDATA[Um eine Zeichenkette (string) mit zufälligen Zeichen zu erzeugen, können Sie folgende PHP Funktion nutzen:

1
2
3
4
5
6
7
8
9
10
// Zufallsgenerator schütteln
mt_srand&#40;&#40;double&#41; microtime&#40;&#41; * 1000000&#41;; 
&#160;
// Basiszeichenpool
$set = &#34;ABCDEFGHIKLMNPQRSTUVWXYZ123456789&#34;;
$pin = &#34;&#34;;
&#160;
// 10 stelligen PIN aus den o.a. Zeichen erzeugen
for &#40;$n=1;$n&#60;=10;$n++&#41;
	$pin .= $set&#91;mt_rand&#40;0,&#40;strlen&#40;$set&#41;-1&#41;&#41;&#93;;

Natürlich geht das o.a. PHP Script auch für längere Zeichenketten. Ersetzen Sie einfach die &#8220;10&#8243; (Zeile 9) durch die [...]]]></description>
			<content:encoded><![CDATA[<p>Um eine Zeichenkette (string) mit zufälligen Zeichen zu erzeugen, können Sie folgende PHP Funktion nutzen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Zufallsgenerator schütteln</span>
<span style="color: #990000;">mt_srand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>double<span style="color: #009900;">&#41;</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">1000000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #666666; font-style: italic;">// Basiszeichenpool</span>
<span style="color: #000088;">$set</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;ABCDEFGHIKLMNPQRSTUVWXYZ123456789&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pin</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// 10 stelligen PIN aus den o.a. Zeichen erzeugen</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$n</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span><span style="color: #000088;">$n</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	<span style="color: #000088;">$pin</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$set</span><span style="color: #009900;">&#91;</span><span style="color: #990000;">mt_rand</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$set</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Natürlich geht das o.a. PHP Script auch für längere Zeichenketten. Ersetzen Sie einfach die &#8220;10&#8243; (Zeile 9) durch die gewünschte Anzahl an Zeichen.</p>
<p>In der Variablen &#8220;set&#8221; (Zeile 5) können Sie die Zeichen festlegen, aus denen der Zufallsgenerator Ihre Zeichenkette erstellen soll.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/03/php-zufallszeichenkette-erzeugen-random-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.htaccess: Zugriff auf ein Unterverzeichnis erlauben</title>
		<link>http://www.yourhelpcenter.de/2010/03/htaccess-zugriff-auf-ein-unterverzeichnis-erlauben/</link>
		<comments>http://www.yourhelpcenter.de/2010/03/htaccess-zugriff-auf-ein-unterverzeichnis-erlauben/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 15:12:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[allow]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[close]]></category>
		<category><![CDATA[erlauben]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[freigeben]]></category>
		<category><![CDATA[full access]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[locked]]></category>
		<category><![CDATA[not allowed]]></category>
		<category><![CDATA[not protected]]></category>
		<category><![CDATA[passwort]]></category>
		<category><![CDATA[protect]]></category>
		<category><![CDATA[protected]]></category>
		<category><![CDATA[schützen]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[sicherung]]></category>
		<category><![CDATA[subfolder]]></category>
		<category><![CDATA[subfolders]]></category>
		<category><![CDATA[unterverzeichnis]]></category>
		<category><![CDATA[WP]]></category>
		<category><![CDATA[wp-admin]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=931</guid>
		<description><![CDATA[Es gibt Fälle, da möchte man ein Verzeichnis per .htaccess schützen &#8211; trotzdem aber den Zugriff auf ein Unterverzeichnis des geschützten Verzeichnisses wieder erlauben.
Praxis-Beispiel:
Um Ihre WordPress Installation zusätzlich zu sichern, sperren Sie das /wp-admin Verzeichnis durch eine .htaccess / .htpasswd Kombination. Dadurch werden aber andere Logins (z.Bsp. von normalen Benutzern auf der Webseite) auch blockiert, [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt Fälle, da möchte man ein Verzeichnis per .htaccess schützen &#8211; trotzdem aber den Zugriff auf ein Unterverzeichnis des geschützten Verzeichnisses wieder erlauben.</p>
<p><strong>Praxis-Beispiel:</strong></p>
<p>Um Ihre WordPress Installation zusätzlich zu sichern, sperren Sie das /wp-admin Verzeichnis durch eine .htaccess / .htpasswd Kombination. Dadurch werden aber andere Logins (z.Bsp. von normalen Benutzern auf der Webseite) auch blockiert, da bei die Loginmaske Dateien aus dem /wp-admin/css und /wp-admin/images Verzeichnis abruft.</p>
<p><strong>Lösung:</strong></p>
<p>Erstellen (der belassen) Sie den Schutz wie in unserem Artikel &#8220;<a title="WordPress wp-admin protect by .htaccess" href="http://www.yourhelpcenter.de/2009/10/wordpress-schutz-des-administrationsbereiches-wp_admin" target="_blank">WordPress: Schutz des Administrationsbereiches (wp-admin)/</a>&#8221; beschrieben für den /wp-admin/ Ordner.</p>
<p>Erstellen Sie zusätzlich in den beiden Unterordnern &#8220;css&#8221; und &#8220;images&#8221; eine weitere .htaccess Datei mit diesem Inhalt:</p>
<pre>Order Deny,Allow
Allow from all
Satisfy any</pre>
<p>Nun werden Sie beim Zugriff auf &#8220;www.domain.de/wp-admin&#8221; nach Ihren Zugangsdaten gefragt. Möchte sich ein Benutzer jedoch normal über die Loginmaske anmelden, sieht es das bekannte Formular und wird nicht eingeschränkt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/03/htaccess-zugriff-auf-ein-unterverzeichnis-erlauben/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress: Besucher protokollieren und auswerten</title>
		<link>http://www.yourhelpcenter.de/2010/03/wordpress-besucher-protokollieren-und-auswerten/</link>
		<comments>http://www.yourhelpcenter.de/2010/03/wordpress-besucher-protokollieren-und-auswerten/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 13:12:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[einfach]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[freeware]]></category>
		<category><![CDATA[grafische Auswertung]]></category>
		<category><![CDATA[graphische Auswertung]]></category>
		<category><![CDATA[IP Logger]]></category>
		<category><![CDATA[kostenlos]]></category>
		<category><![CDATA[nützlich]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=915</guid>
		<description><![CDATA[Für das WordPress Plugin &#8220;IP Logger&#8221; gibt es eine neue Version: 3.0
Neu in dieser Version ist die Möglichkeit, die Logs (= die protokollierten Besucherdaten) online auf den eigenen Computer herunterzuladen und dort weiter auszuwerten. Auch wird dadurch die meist vergleichsweise teure Onlinespeicherplatz geschont und die Logs auf dem lokalen PC gesammelt.
Das (ebenfalls kostenlose) Zusatztool hierfür [...]]]></description>
			<content:encoded><![CDATA[<p>Für das WordPress Plugin &#8220;<a title="IP Logger Homepage" href="http://www.mretzlaff.com/wordpress-plugins/wp-plugin-ip-logger/" target="_blank">IP Logger</a>&#8221; gibt es eine neue Version: 3.0</p>
<p>Neu in dieser Version ist die Möglichkeit, die Logs (= die protokollierten Besucherdaten) online auf den eigenen Computer herunterzuladen und dort weiter auszuwerten. Auch wird dadurch die meist vergleichsweise teure Onlinespeicherplatz geschont und die Logs auf dem lokalen PC gesammelt.</p>
<p>Das (ebenfalls kostenlose) Zusatztool hierfür heißt:<br />
<a title="IP Logger Analyzer (IPLA) Homepage" href="http://www.mretzlaff.com/freeware/ip-logger-analyzer/" target="_blank">IP Logger Analyzer (IPLA)</a></p>
<p>Neben dem normalen protokollieren Ihrer Webseitenbesucher haben Sie die Möglichkeit, Ihre Webseite vor unerwünschten Besuchern zu schützen. Die enthaltene Option &#8220;Unerwünschte Besucher blockieren&#8221; können Sie einfach in den Einstellungen des Plugins aktivieren und dann definieren, welchen Besucher Sie nicht Ihre Webseite zeigen wollen:</p>
<ul>
<li>Filterung nach dem 3 stelligen Ländercode (Code3) ist möglich. Wenn Sie z.Bsp. alle Besucher aus China sperren wollen, fügen Sie einen Filter für &#8220;Code3&#8243; mit dem Text &#8220;CHN&#8221; (= ISO Code für China) hinzu. Besucher aus dem Land sehen ab sofort nurnoch eine Meldung, dass Sie leider keine Zugriffsrechte besitzen. Die Meldung liegt in einem Template und kann frei angepasst werden.</li>
<li>Filterung nach IP: Sie möchten eine bestimmte IP Adresse nicht zulassen.</li>
<li>Filterung nach Hostnamen: Wenn Sie den Namen des Computers kennen (und dieser sich nicht ständig ändert)</li>
<li>Filterung nach dem genutzten Browser: Hier können Sie z.Bsp. festlegen, für welche Browsertypen Ihre Internetseiten gesperrt sein sollen.</li>
</ul>
<p>Diese Technik hilft auch, die meisten sog. Bots (= Automatische Suchprogramme, die meist Ihre komplette Webseite versuchen zu katalogisieren) auszusperren. Auch gegen &#8220;Spider&#8221; Software (= Herunterladen Ihrer kompletten Webseite auf einen PC, Offline verfügbar machen) hilft die Option zuverlässig.</p>
<p><a title="IP Logger Analyzer (IPLA) Homepage" href="http://www.mretzlaff.com/wordpress-plugins/wp-plugin-ip-logger/" target="_blank">Mehr Informationen auf der Webseite des Autors.</a></p>
<table width="100%" border="0">
<tr>
<td>
<a href="http://www.yourhelpcenter.de/wp-content/uploads/2010/03/screenshot-1.gif"><img class="size-full wp-image-916  alignnone" src="http://www.yourhelpcenter.de/wp-content/uploads/2010/03/screenshot-1.gif" alt="" width="530" height="510" /></a></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/03/wordpress-besucher-protokollieren-und-auswerten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mySQL: Update if exists else insert record (SQL statement)</title>
		<link>http://www.yourhelpcenter.de/2010/03/mysql-update-if-exists-else-insert-record-sql-statement/</link>
		<comments>http://www.yourhelpcenter.de/2010/03/mysql-update-if-exists-else-insert-record-sql-statement/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 12:46:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[automatically]]></category>
		<category><![CDATA[automatisch]]></category>
		<category><![CDATA[datarecord]]></category>
		<category><![CDATA[datatable]]></category>
		<category><![CDATA[entsprechend]]></category>
		<category><![CDATA[Fields]]></category>
		<category><![CDATA[if exists update]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[PK]]></category>
		<category><![CDATA[PKey]]></category>
		<category><![CDATA[Primary keys]]></category>
		<category><![CDATA[records]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[statement]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[update if exists]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=891</guid>
		<description><![CDATA[Wenn Sie einen Datensatz in eine Datenbanktabelle einfügen möchten (wenn er noch nicht existiert) oder diesen updaten möchten (wenn er existiert), hilft dieser SQL Befehl:

1
INSERT INTO TABLE &#40;FIELDS&#41; VALUES &#40;VALUES&#41; ON DUPLICATE KEY UPDATE FIELD = value

Dieses Statement prüft, ob der Primary Key (PK) für den einzufügenden Datensatz bereits besteht, nutzt dann ein Update Befehl [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn Sie einen Datensatz in eine Datenbanktabelle einfügen möchten (wenn er noch nicht existiert) oder diesen updaten möchten (wenn er existiert), hilft dieser SQL Befehl:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">FIELDS</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">ON</span> DUPLICATE <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">UPDATE</span> <span style="color: #993333; font-weight: bold;">FIELD</span> <span style="color: #66cc66;">=</span> value</pre></td></tr></table></div>

<p>Dieses Statement prüft, ob der Primary Key (PK) für den einzufügenden Datensatz bereits besteht, nutzt dann ein Update Befehl und ansonsten Ihren angegeben Insert Befehl.</p>
<p><strong>Beispiel</strong></p>
<p>Wir haben eine Tabelle &#8220;Test&#8221; mit den Feldern &#8220;A&#8221;, &#8220;B&#8221; (je vom Typ varchar) und &#8220;C&#8221; (integer). Die Felder &#8220;A&#8221; und &#8220;B&#8221; sind unser PK.</p>
<p>Ein normales SQL Insert Statement in die leere Tabelle:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> Test <span style="color: #66cc66;">&#40;</span>A<span style="color: #66cc66;">,</span>B<span style="color: #66cc66;">,</span>C<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Testtext A1'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'Texttext B1'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">110</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> Test <span style="color: #66cc66;">&#40;</span>A<span style="color: #66cc66;">,</span>B<span style="color: #66cc66;">,</span>C<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Testtext A2'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'Texttext B2'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">250</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Danach stehen folgende Daten in der Tabelle &#8220;Test&#8221;:</p>
<table border="1">
<tbody>
<tr>
<td><strong>A</strong></td>
<td><strong>B</strong></td>
<td><strong>C</strong></td>
</tr>
<tr>
<td>Testtext A1</td>
<td>Texttext B1</td>
<td>110</td>
</tr>
<tr>
<td>Testtext A2</td>
<td>Texttext B2</td>
<td>250</td>
</tr>
</tbody>
</table>
<p>Nun möchten wir einen weiteren Datensatz einfügen. Werden unter dem PK Daten gefunden, sollen diese überschrieben (aktualisiert) werden &#8211; ansonsten wird der Datensatz normal eingefügt:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> Test <span style="color: #66cc66;">&#40;</span>A<span style="color: #66cc66;">,</span>B<span style="color: #66cc66;">,</span>C<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Testtext A2'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'Texttext B2'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">285</span><span style="color: #66cc66;">&#41;</span> 
    <span style="color: #993333; font-weight: bold;">ON</span> DUPLICATE <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">UPDATE</span> C <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">285</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> Test <span style="color: #66cc66;">&#40;</span>A<span style="color: #66cc66;">,</span>B<span style="color: #66cc66;">,</span>C<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Testtext A3'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'Texttext B3'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">310</span><span style="color: #66cc66;">&#41;</span> 
    <span style="color: #993333; font-weight: bold;">ON</span> DUPLICATE <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">UPDATE</span> C <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">310</span>;</pre></div></div>

<p>Jetzt sieht der Inhalt der Tabelle &#8220;Test&#8221; wie folgt aus:</p>
<table border="1">
<tbody>
<tr>
<td><strong>A</strong></td>
<td><strong>B</strong></td>
<td><strong>C</strong></td>
</tr>
<tr>
<td>Testtext A1</td>
<td>Texttext B1</td>
<td>110</td>
</tr>
<tr>
<td>Testtext A2</td>
<td>Texttext B2</td>
<td><strong><span style="color: #ff0000;">285</span></strong></td>
</tr>
<tr>
<td><strong><span style="color: #ff0000;">Testtext A3</span></strong></td>
<td><strong><span style="color: #ff0000;">Texttext B3</span></strong></td>
<td><strong><span style="color: #ff0000;">310</span></strong></td>
</tr>
</tbody>
</table>
<p>Die roten Texte sind im Gegensatz zur ersten Ansicht verändert.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 149px; width: 1px; height: 1px;">insert into Test (A,B,C) values (&#8216;Testtext A2&#8242;,&#8217;Texttext B2&#8242;, 285) ON DUPLICATE KEY UPDATE C = 28</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/03/mysql-update-if-exists-else-insert-record-sql-statement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mySQL: In PHP vor SQL Injection schützen</title>
		<link>http://www.yourhelpcenter.de/2010/03/mysql-in-php-vor-sql-injection-schutzen/</link>
		<comments>http://www.yourhelpcenter.de/2010/03/mysql-in-php-vor-sql-injection-schutzen/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 19:55:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[angriffe]]></category>
		<category><![CDATA[easy]]></category>
		<category><![CDATA[fast]]></category>
		<category><![CDATA[injection]]></category>
		<category><![CDATA[injektion]]></category>
		<category><![CDATA[quick]]></category>
		<category><![CDATA[schadhafte Anweisungen]]></category>
		<category><![CDATA[schutz]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=910</guid>
		<description><![CDATA[Wie wir in unserem Artikel &#8220;mySQL: Schutz vor Angriffen in Datenbankabfragen (SQL Injection)&#8221; bereits erklärt haben, ist es vergleichsweise einfach möglich, durch ungesicherte bzw. ungeprüfte Parameter schadhaften oder zerstörenden Code in Ihre SQL Statements einzufügen.
Wie Sie sich z.Bsp. in PHP einfach und schnell gegen solche Angriffe schützen können, zeigt folgender Codeausschnitt:

1
2
foreach &#40;$_REQUEST as $key =&#38;gt; [...]]]></description>
			<content:encoded><![CDATA[<p>Wie wir in unserem Artikel &#8220;<a title="Permanenter Link: mySQL: Schutz vor Angriffen in Datenbankabfragen (SQL Injection)" href="../2009/06/mysql-schutz-vor-angriffen-in-datenbankabfragen-sql-injection/">mySQL: Schutz vor Angriffen in Datenbankabfragen (SQL Injection)</a>&#8221; bereits erklärt haben, ist es vergleichsweise einfach möglich, durch ungesicherte bzw. ungeprüfte Parameter schadhaften oder zerstörenden Code in Ihre SQL Statements einzufügen.</p>
<p>Wie Sie sich z.Bsp. in PHP einfach und schnell gegen solche Angriffe schützen können, zeigt folgender Codeausschnitt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_REQUEST</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span>
  <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$key</span>&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_real_escape_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Es werden alle übergebenen Parameter (GET und POST) durch die mySQL Funktion &#8220;mysql_real_escape_string&#8221; überarbeitet. Dadurch werden die für eine Injektion benötigten Zeichen unschädlich gemacht und der Datenbankserver wird im Normalfall mit der &#8220;kaputten&#8221; SQL Anweisung nichts anfangen können.</p>
<p>Für weitere Informationen zum Thema SQL Injektion besuchen Sie bitte unseren o.a. Artikel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/03/mysql-in-php-vor-sql-injection-schutzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#: &#8220;System.Data.XmlReadMode&#8221; enthält keine Definition für &#8220;WriteSchema&#8221; (CS0117)</title>
		<link>http://www.yourhelpcenter.de/2010/02/c-system-data-xmlreadmode-enthalt-keine-definition-fur-writeschema-cs0117/</link>
		<comments>http://www.yourhelpcenter.de/2010/02/c-system-data-xmlreadmode-enthalt-keine-definition-fur-writeschema-cs0117/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 09:00:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[C# .Net]]></category>
		<category><![CDATA["System.Data.XmlWriteMode" enthält keine Definition für "ReadSchema" (CS0117)]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[c-sharp]]></category>
		<category><![CDATA[cs]]></category>
		<category><![CDATA[cs-0117]]></category>
		<category><![CDATA[cs-117]]></category>
		<category><![CDATA[CS0117]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[Error 117]]></category>
		<category><![CDATA[Fehler 117]]></category>
		<category><![CDATA[XmlReadMode]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=862</guid>
		<description><![CDATA[Wenn Sie beim Programmieren in C# (CSharp) eine der beiden folgenden Fehlermeldungen erhalten, passen Befehl und Option nicht zueinander.
&#8220;System.Data.XmlReadMode&#8221; enthält keine Definition für &#8220;WriteSchema&#8221;. (CS0117) &#8211; C:\test\xml_error.cs:186,37
&#8220;System.Data.XmlWriteMode&#8221; enthält keine Definition für &#8220;ReadSchema&#8221;. (CS0117) &#8211; C:\test\xml_error.cs:186,37
Korrigieren Sie Ihren Befehl entsprechend, denn nur beim XmlReadMode können Sie die Option &#8220;ReadSchema&#8221; verwenden und nur bei XmlWriteMode die Option [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn Sie beim Programmieren in C# (CSharp) eine der beiden folgenden Fehlermeldungen erhalten, passen Befehl und Option nicht zueinander.</p>
<p><em>&#8220;System.Data.XmlReadMode&#8221; enthält keine Definition für &#8220;WriteSchema&#8221;. (CS0117) &#8211; C:\test\xml_error.cs:186,37</em></p>
<p><em>&#8220;System.Data.XmlWriteMode&#8221; enthält keine Definition für &#8220;ReadSchema&#8221;. (CS0117) &#8211; C:\test\xml_error.cs:186,37</em></p>
<p>Korrigieren Sie Ihren Befehl entsprechend, denn nur beim XmlReadMode können Sie die Option &#8220;ReadSchema&#8221; verwenden und nur bei XmlWriteMode die Option &#8220;WriteSchema&#8221;. In Ihrem Fall werden Sie Befehl und Option miteinander gemixt haben:</p>
<p><strong>Falsch</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">DataSet ds <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> DataSet<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
ds.<span style="color: #0000FF;">ReadXml</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;test.xml&quot;</span>, XmlReadMode.<span style="color: #0000FF;">WriteSchema</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>oder</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">DataSet ds <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> DataSet<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
ds.<span style="color: #0000FF;">WriteXml</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;test.xml&quot;</span>, XmlWriteMode.<span style="color: #0000FF;">ReadSchema</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p><strong>Richtig</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">DataSet ds <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> DataSet<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
ds.<span style="color: #0000FF;">ReadXml</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;test.xml&quot;</span>, XmlReadMode.<span style="color: #0000FF;">ReadSchema</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>oder entsprechend</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">DataSet ds <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> DataSet<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
ds.<span style="color: #0000FF;">WriteXml</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;test.xml&quot;</span>, XmlWriteMode.<span style="color: #0000FF;">WriteSchema</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/02/c-system-data-xmlreadmode-enthalt-keine-definition-fur-writeschema-cs0117/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#: SQLite Datenbank einbinden und nutzen (auch für SharpDevelop)</title>
		<link>http://www.yourhelpcenter.de/2010/02/c-sqlite-datenbank-einbinden-und-nutzen-auch-fur-sharpdevelop/</link>
		<comments>http://www.yourhelpcenter.de/2010/02/c-sqlite-datenbank-einbinden-und-nutzen-auch-fur-sharpdevelop/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 18:18:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[C# .Net]]></category>
		<category><![CDATA[anleitung]]></category>
		<category><![CDATA[beispiel]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[c-sharp]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[datarecord]]></category>
		<category><![CDATA[datarow]]></category>
		<category><![CDATA[dataset]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[field]]></category>
		<category><![CDATA[Fields]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[Lite SQL]]></category>
		<category><![CDATA[litesql]]></category>
		<category><![CDATA[Muster]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[SharpDevelop]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[SQ Lite]]></category>
		<category><![CDATA[SQL Lite]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=843</guid>
		<description><![CDATA[SQLite ist eine dateibasierte Datenbank, welche Sie mit SQL Befehlen (wie mySQL, MS SQL, usw.) verwalten können.
Installation

Laden Sie sich die benötigte Komponente herunter:
ADO.NET 2.0 Provider for SQLite
Starten Sie das heruntergeladene Setup und folgen Sie den Installationsanweisungen

Vorbereitungen für Ihr C# Projekt
Sie können die nun installierten ADO.NET SQLite Komponenten nutzen. zur Vereinfachung sollten Sie die benötigten Libraries [...]]]></description>
			<content:encoded><![CDATA[<p>SQLite ist eine dateibasierte Datenbank, welche Sie mit SQL Befehlen (wie mySQL, MS SQL, usw.) verwalten können.</p>
<p><strong>Installation</strong></p>
<ul>
<li>Laden Sie sich die benötigte Komponente herunter:<br />
<a title="Download SQLite for C#" href="http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.65.0/SQLite-1.0.65.0-setup.exe/download" target="_blank">ADO.NET 2.0 Provider for SQLite</a></li>
<li>Starten Sie das heruntergeladene Setup und folgen Sie den Installationsanweisungen</li>
</ul>
<p><strong>Vorbereitungen für Ihr C# Projekt</strong></p>
<p>Sie können die nun installierten ADO.NET SQLite Komponenten nutzen. zur Vereinfachung sollten Sie die benötigten Libraries (DLLs) in Ihren Projektordner kopieren:</p>
<ul>
<li>Öffnen Sie den Ordner &#8220;C:\Programme\SQLite.NET\bin&#8221;</li>
<li>Markieren Sie die benötigte .DLL Datei zum Kopieren.<br />
Welche Datei Sie in Ihrem Fall brauchen, hängt von Ihrem eingesetzten System ab (I386, AMD64, &#8230;).<br />
Für eine Standardumgebung (Windows 32-Bit System) nutze ich die &#8220;System.Data.SQLite.dll&#8221;.</li>
<li>Öffnen Sie den Ordner &#8220;bin\Debug&#8221; Ordner in Ihrem Projektverzeichnis.<br />
In diesem Beispiel nutze ich den Projektnamen &#8220;HalloWelt&#8221;.<br />
Im Beispiel ist der Projektordner &#8220;C:\tmp\HalloWelt\bin\Debug&#8221;</li>
<li>Fügen Sie die ausgewählten Dateien ein</li>
</ul>
<p><strong>In SharpDevelop die DLL als Referenz hinzufügen</strong></p>
<ul>
<li>Zur Projektansicht wechseln (Strg + Alt + L)</li>
<li>In Ihrem Projekt den Untereintrag &#8220;Referenzen&#8221; mit der rechten Maustaste anklicken</li>
<li>&#8220;Referenz hinzufügen&#8221; auswählen und anklicken</li>
<li>Den Reiter &#8220;.NET Assemblybrowser&#8221; auswählen</li>
<li>Auf den Button &#8220;Suchen&#8221; klicken</li>
<li>Ihren Projektordner öffnen und die gerade hineinkopierte DLL auswählen</li>
<li>&#8220;OK&#8221; anklicken<br />
Das Fenster schließt sich und die DLL ist im Bereich &#8220;Gewählte Referenzen&#8221; zu finden</li>
<li>&#8220;OK&#8221; anklicken<br />
Die DLL ist in Ihrer Projektliste aufgeführt</li>
</ul>
<p><strong>SQLite Unterstützung im Projekt einbinden</strong></p>
<ul>
<li>Fügen Sie die folgende Zeile am Anfang Ihrer .CS Datei ein:</li>
</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Data.SQLite</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p><strong>Datenbank in C# zur Laufzeit (Runtime) erstellen</strong></p>
<ul>
<li>Eine neue &#8220;SQLiteConnection&#8221; erstellen</li>
<li>Parameter angeben:<br />
&#8220;Data Source&#8221; ist die einzige Pflichtangabe. Alle weiteren Parameter sind optional.<br />
Welche weiteren Parameter ihnen zur Verfügung stehen, finden Sie in der auf Ihrem System installierten .CHM Hilfedatei unter &#8220;C:\Programme\SQLite.NET\Doc&#8221;.</li>
</ul>
<p><em>Beispiel:</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">SQLiteConnection connection <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteConnection<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Data Source=test.dat&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
connection.<span style="color: #0000FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
connection.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>Nachdem Sie den Source des Beispiels ausgeführt haben, finden Sie eine (noch leere) Datenbank &#8220;test.dat&#8221; im Verzeichnis der ausgeführten .EXE Datei.<br />
In unserem Beispiel liegt diese SQLite Datenbank also unter &#8220;C:\tmp\HalloWelt\bin\Debug&#8221;.</p>
<p><strong>Datenbank-Tabellen in C# zur Laufzeit erstellen</strong></p>
<ul>
<li>Eine neue &#8220;SQLiteConnection&#8221; erstellen (s.o.)</li>
<li>Den &#8220;Create Table&#8221; Befehl als SQLiteCommand einbinden</li>
<li>Diesen SQL Befehl an die Datenbank übergeben</li>
<li>Verbindung zur SQLite Datenbank wieder schließen</li>
</ul>
<p><em>Beispiel:</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">SQLiteConnection connection <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteConnection<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Data Source=test.dat&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
connection.<span style="color: #0000FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
SQLiteCommand command <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteCommand<span style="color: #000000;">&#40;</span>connection<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
command.<span style="color: #0000FF;">CommandText</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;create table {0} (&quot;</span> <span style="color: #008000;">+</span>
    <span style="color: #666666;">&quot;  ID integer not null primary key autoincrement,&quot;</span> <span style="color: #008000;">+</span>
    <span style="color: #666666;">&quot;  Name varchar(100) not null,&quot;</span> <span style="color: #008000;">+</span>
    <span style="color: #666666;">&quot;  City varchar(100))&quot;</span>,
    <span style="color: #666666;">&quot;Adressen&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
command.<span style="color: #0000FF;">ExecuteNonQuery</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
connection.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>Im Beispiel wird eine einzelne Tabelle mit dem Namen &#8220;Adressen&#8221; und den Feldern &#8220;ID, Name, City&#8221; erstellt. Das Feld &#8220;ID&#8221; ist dabei der PK (Primary Key) und wird automatisch bei jedem Datensatz hochgezählt (Increment +1).</p>
<p><strong>Daten in eine Tabelle in C# zur Laufzeit einfügen</strong></p>
<p>Dieses Beispiel steht stellvertretend für jeden weiteren verfügbaren SQL Befehl. Eine Übersicht der anwendbaren SQL Befehle finden Sie in der SQLite Hilfe oder auf der SQLite Webseite:<br />
<a title="SQLite Website, Homepage, Webseite" href="http://www.sqlite.org/" target="_blank">http://www.sqlite.org/</a></p>
<p>Wie Sie Daten aus Tabellen abrufen können (SELECT Statements) finden Sie im nächsten Beispiel.</p>
<ul>
<li>Eine neue &#8220;SQLiteConnection&#8221; erstellen (s.o.)</li>
<li>Den Befehl als SQLiteCommand einbinden</li>
<li>Diesen SQL Befehl an die Datenbank übergeben</li>
<li>Verbindung zur SQLite Datenbank wieder schließen</li>
</ul>
<p><em>Beispiel:</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">SQLiteConnection connection <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteConnection<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Data Source=test.dat&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
connection.<span style="color: #0000FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
SQLiteCommand command <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteCommand<span style="color: #000000;">&#40;</span>connection<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
command.<span style="color: #0000FF;">CommandText</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;insert into Adressen (Name,City) values ('{0}','{1}')&quot;</span>,
    <span style="color: #666666;">&quot;Max Muster&quot;</span>,
    <span style="color: #666666;">&quot;Hamburg&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
command.<span style="color: #0000FF;">ExecuteNonQuery</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
command.<span style="color: #0000FF;">CommandText</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;insert into Adressen (Name,City) values ('{0}','{1}')&quot;</span>,
    <span style="color: #666666;">&quot;Bertha Besser&quot;</span>,
    <span style="color: #666666;">&quot;Berlin&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
command.<span style="color: #0000FF;">ExecuteNonQuery</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
connection.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>Im Beispiel werden zwei Datensätze in die oben erstellte Tabelle &#8220;Adressen&#8221; eingefügt:</p>
<ol>
<li>Max Muster, Hamburg</li>
<li>Bertha Besser, Berlin</li>
</ol>
<p><strong>Daten aus einer Tabelle in C# zur Laufzeit abfragen</strong></p>
<p>Dieses Beispiel steht stellvertretend für alle weiteren SQL Befehle, mit denen Sie Daten aus Ihrer Datenbank auslesen.</p>
<ul>
<li>Eine neue &#8220;SQLiteConnection&#8221; erstellen (s.o.)</li>
<li>Den Befehl als SQLiteCommand einbinden</li>
<li>Diesen SQL Befehl an die Datenbank übergeben</li>
<li>Die erhaltenen Daten ggf. weiterverarbeiten</li>
<li>Verbindung zur SQLite Datenbank wieder schließen</li>
</ul>
<p><em>Beispiel:</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">SQLiteConnection connection <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteConnection<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Data Source=test.dat&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
connection.<span style="color: #0000FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
SQLiteCommand cmd <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SQLiteCommand<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;select * from Adressen&quot;</span>, connection<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
SQLiteDataReader reader <span style="color: #008000;">=</span> cmd.<span style="color: #0000FF;">ExecuteReader</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>reader.<span style="color: #0000FF;">HasRows</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span>reader.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
  <span style="color: #FF0000;">string</span> name <span style="color: #008000;">=</span> reader.<span style="color: #0000FF;">GetString</span><span style="color: #000000;">&#40;</span>reader.<span style="color: #0000FF;">GetOrdinal</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Name&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #FF0000;">string</span> city <span style="color: #008000;">=</span> reader.<span style="color: #0000FF;">GetString</span><span style="color: #000000;">&#40;</span>reader.<span style="color: #0000FF;">GetOrdinal</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;City&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0}, {1}&quot;</span>, name, city<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
connection.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>Im Beispiel werden alle Datensätze aus der oben erstellten Tabelle &#8220;Adressen&#8221; eingelesen.<br />
Jeder Datensatz wird dem Benutzer dann als MessageBox angezeigt.</p>
<p><strong>SQLite Datenbank löschen</strong></p>
<p>Ihre Datenbank können Sie (auch aus C# heraus) sehr einfach löschen, indem Sie die Datei &#8220;test.dat&#8221; (in unserem Beispiel) von der Festplatte löschen.</p>
<p>Voraussetzung ist, dass Sie keine offenen Verbindungen zur Datenbank haben. Ansonsten erhalten Sie einen Zugriffsfehler (&#8220;Access denied&#8221;).</p>
<p><span style="color: #ff0000;"><strong>Achtung:</strong><br />
Wenn Sie die Datendatei Ihrer SQLite Datenbank löschen, verlieren Sie sofort alle gespeicherten Daten !</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/02/c-sqlite-datenbank-einbinden-und-nutzen-auch-fur-sharpdevelop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExtJS: Fehler &#8220;unterminated string literal&#8221; bei .load()</title>
		<link>http://www.yourhelpcenter.de/2010/02/extjs-fehler-unterminated-string-literal-bei-load/</link>
		<comments>http://www.yourhelpcenter.de/2010/02/extjs-fehler-unterminated-string-literal-bei-load/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 06:46:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Ext JS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[#10]]></category>
		<category><![CDATA[#13]]></category>
		<category><![CDATA[chr(13)]]></category>
		<category><![CDATA[CR LF]]></category>
		<category><![CDATA[don't stop]]></category>
		<category><![CDATA[endless]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[ewig]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[fehler]]></category>
		<category><![CDATA[linebreak]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[new line]]></category>
		<category><![CDATA[runs]]></category>
		<category><![CDATA[unterminated string literal]]></category>
		<category><![CDATA[zeilenumbruch]]></category>
		<category><![CDATA[\n]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=839</guid>
		<description><![CDATA[Wenn Sie auf Ihrer Webseite mit Ext JS und der Funktion &#8220;xyz.open()&#8221; Daten nachladen, kann es vorkommen, dass Ihre Maske die Daten nicht zeigt und der Ladevorgang nicht beendet wird. Sie sehen dann (sofern Sie es aktiviert haben) die Lademeldung weiterhin auf dem Bildschirm.
Die Meldung in der Fehlerkonsole des Browsers lautet (z.Bsp.):
Fehler: unterminated string literal
Quelldatei: [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn Sie auf Ihrer Webseite mit <a title="Ext JS Source" href="http://www.extjs.com/" target="_blank">Ext JS</a> und der Funktion &#8220;xyz.open()&#8221; Daten nachladen, kann es vorkommen, dass Ihre Maske die Daten nicht zeigt und der Ladevorgang nicht beendet wird. Sie sehen dann (sofern Sie es aktiviert haben) die Lademeldung weiterhin auf dem Bildschirm.</p>
<p>Die Meldung in der Fehlerkonsole des Browsers lautet (z.Bsp.):</p>
<p>Fehler: unterminated string literal<br />
Quelldatei: http://localhost/ext/ext-all.js<br />
Zeile: 7, Spalte: 73<br />
Quelltext:<br />
({&#8220;count&#8221;:1,&#8221;success&#8221;:true,&#8221;items&#8221;:[{&#8220;id&#8221;:1234,&#8221;ref&#8221;:&#8221;",&#8221;txt&#8221;:&#8221;Shell</p>
<p>Grund für den Fehler ist dann meist ein Zeilenumbruch (CRLF) im Text (hier in der Variablen &#8220;txt&#8221;).</p>
<p>Diesen umbruch kann das JSON Format zwar an Ihre Anwendung übertragen, JavaScript kommt damit dann aber nicht zurecht.</p>
<p><strong>Lösung:</strong></p>
<p>Ersetzen Sie bei der JSON Erstellung (z.Bsp. in PHP) den Umbruch durch ein &#8220;\n&#8221;:</p>
<p><code>eregi_replace(chr(13).chr(10),'\n',$to-&gt;Text)</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/02/extjs-fehler-unterminated-string-literal-bei-load/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN: Die .svn Ordner rekursiv aus den Verzeichnissen löschen</title>
		<link>http://www.yourhelpcenter.de/2010/02/svn-die-svn-ordner-rekursiv-aus-den-verzeichnissen-loschen/</link>
		<comments>http://www.yourhelpcenter.de/2010/02/svn-die-svn-ordner-rekursiv-aus-den-verzeichnissen-loschen/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 08:25:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[automatically]]></category>
		<category><![CDATA[automatisch]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[Baum]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[delete .svn folder]]></category>
		<category><![CDATA[DOS]]></category>
		<category><![CDATA[entfernen]]></category>
		<category><![CDATA[fast]]></category>
		<category><![CDATA[folder]]></category>
		<category><![CDATA[löschen]]></category>
		<category><![CDATA[ordner]]></category>
		<category><![CDATA[quick]]></category>
		<category><![CDATA[recusivly]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[struktur]]></category>
		<category><![CDATA[sub-version]]></category>
		<category><![CDATA[Subdirectories]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[Unterverzeichnisse]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=832</guid>
		<description><![CDATA[Wenn Sie SVN Projekte betreiben und die lokalen Verzeichnisse kopieren oder weitergeben möchten, dann stören häufig die .svn Folder (Ordner) in jedem einzelnen Unterverzeichnis.
Um diese einfach und schnell zu löschen, legen Sie sich eine Batchdatei mit folgendem Inhalt an:
﻿﻿FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q %%G
Direkt auf der [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn Sie SVN Projekte betreiben und die lokalen Verzeichnisse kopieren oder weitergeben möchten, dann stören häufig die .svn Folder (Ordner) in jedem einzelnen Unterverzeichnis.</p>
<p>Um diese einfach und schnell zu löschen, legen Sie sich eine Batchdatei mit folgendem Inhalt an:<br />
﻿﻿<code>FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q %%G</code><br />
Direkt auf der Kommandozeile ausgeführt, funktioniert der Befehl leider (meist) nicht.</p>
<p>Um in der Kommandozeile direkt die Batchdatei (hier: &#8220;delete_svn.bat&#8221;) anzulegen, nutzen Sie folgende Befehle:<br />
<code>copy con delete_svn.bat<br />
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q %%G<br />
^Z</code><br />
Danach finden Sie im aktuellen Verzeichnis die &#8220;delete_svn.bat&#8221; und können Sie ausführen.</p>
<p><span style="color: #ff0000;"><strong>Achtung:</strong></span><span style="color: #ff0000;"><br />
Die .SVN Ordner werden ohne Rückfrage sofort und rekursiv gelöscht, d.h. auch alle .SVN Ordner in allen Unterverzeichnissen des aktuellen Orderns werden gelöscht.</span></p>
<p>Sollte das Script mit einem Fehler &#8220;&#8221; beendet werden, bitte die Anführungszeichen im Befehl entsprechend ändern (z.Bsp. von &#8221; zu &#8216; ).</p>
<p>In Linux funktioniert der folgende Befehl:</p>
<pre>rm -rf `find . -type d -name .svn`</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/02/svn-die-svn-ordner-rekursiv-aus-den-verzeichnissen-loschen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: Datenträger Partitionierungs Tool</title>
		<link>http://www.yourhelpcenter.de/2010/02/linux-datentrager-partitionierungs-tool/</link>
		<comments>http://www.yourhelpcenter.de/2010/02/linux-datentrager-partitionierungs-tool/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 17:26:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[partions]]></category>
		<category><![CDATA[Partitionen]]></category>
		<category><![CDATA[Partitionierung]]></category>
		<category><![CDATA[partitions]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[programm]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.yourhelpcenter.de/?p=830</guid>
		<description><![CDATA[Unter Linux (Debian) hilft Ihnen im Textmodus gut und einfach das CFDisk Tools bei der Datenträger- / Festplatten-Partitionierung:
cfdisk /dev/sdc1
Die Oberfläche ist sehr einfach gehalten und gut bedienbar.
Vergessen Sie vor dem Beenden des Programmes nicht den &#8220;WRITE&#8221; Befehl ausführen zu lassen. Nur dann werden Ihre Änderungen auch auf den entsprechenden Datenträger geschrieben.
]]></description>
			<content:encoded><![CDATA[<p>Unter Linux (Debian) hilft Ihnen im Textmodus gut und einfach das CFDisk Tools bei der Datenträger- / Festplatten-Partitionierung:</p>
<p><code>cfdisk /dev/sdc1</code></p>
<p>Die Oberfläche ist sehr einfach gehalten und gut bedienbar.</p>
<p>Vergessen Sie vor dem Beenden des Programmes nicht den &#8220;WRITE&#8221; Befehl ausführen zu lassen. Nur dann werden Ihre Änderungen auch auf den entsprechenden Datenträger geschrieben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourhelpcenter.de/2010/02/linux-datentrager-partitionierungs-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
