<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Änderung des Datenbankeintrags beim Primärschlüssel]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>nachdem ich die Datenbankeinträge in Editfeldern ausgegeben habe, möchte ich nun diese ändern und wieder mit Hilfe einer Query Komponente in die Datenbank schreiben. Dies sollte auf einen Buttonclick erfolgen.<br />
Da ich jedoch einen Primärschlüssel vergeben habe, bekomme ich nun eine Fehlermeldung beim reinschreiben. Der Primärschlüssel sei bereits vergeben, obwohl ich diesen überhaupt nicht veränder und in die Datenbank schreibe.</p>
<p>Damit suche ich den Eintrag :<br />
Query-&gt;SQL-&gt;Add(&quot;SELECT * FROM tabelle WHERE primarykey = Edit-&gt;Text&quot;);</p>
<p>DataModule1-&gt;Kunde_Query-&gt;Open();<br />
DataModule1-&gt;Kunde_Query-&gt;First();<br />
int primary = DataModule1-&gt;Kunde_Query-&gt;RecordCount;</p>
<p>/* wenn der Eintrag (Primärschlüssel) gefunden wurde, möchte ich den restlichen Datensatz ändern */</p>
<p>if(primary)<br />
{<br />
Query-&gt;SQL-&gt;Add(&quot;INSERT INTO tabelle( email ) &quot;);<br />
Query-&gt;SQL-&gt;Add(&quot;VALUES :email &quot;);</p>
<p>Query-&gt;ParamByName(&quot;email&quot;)-&gt;AsString = Edit1-&gt;Text;<br />
Query-&gt;ExecSQL();<br />
}</p>
<p>Der Quellcode stammt aus ButtonClick.</p>
<p>Vielleicht liegt es an &quot;ExecSQL&quot; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/81260/änderung-des-datenbankeintrags-beim-primärschlüssel</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 21:34:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/81260.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Jul 2004 15:25:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 15:25:45 GMT]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>nachdem ich die Datenbankeinträge in Editfeldern ausgegeben habe, möchte ich nun diese ändern und wieder mit Hilfe einer Query Komponente in die Datenbank schreiben. Dies sollte auf einen Buttonclick erfolgen.<br />
Da ich jedoch einen Primärschlüssel vergeben habe, bekomme ich nun eine Fehlermeldung beim reinschreiben. Der Primärschlüssel sei bereits vergeben, obwohl ich diesen überhaupt nicht veränder und in die Datenbank schreibe.</p>
<p>Damit suche ich den Eintrag :<br />
Query-&gt;SQL-&gt;Add(&quot;SELECT * FROM tabelle WHERE primarykey = Edit-&gt;Text&quot;);</p>
<p>DataModule1-&gt;Kunde_Query-&gt;Open();<br />
DataModule1-&gt;Kunde_Query-&gt;First();<br />
int primary = DataModule1-&gt;Kunde_Query-&gt;RecordCount;</p>
<p>/* wenn der Eintrag (Primärschlüssel) gefunden wurde, möchte ich den restlichen Datensatz ändern */</p>
<p>if(primary)<br />
{<br />
Query-&gt;SQL-&gt;Add(&quot;INSERT INTO tabelle( email ) &quot;);<br />
Query-&gt;SQL-&gt;Add(&quot;VALUES :email &quot;);</p>
<p>Query-&gt;ParamByName(&quot;email&quot;)-&gt;AsString = Edit1-&gt;Text;<br />
Query-&gt;ExecSQL();<br />
}</p>
<p>Der Quellcode stammt aus ButtonClick.</p>
<p>Vielleicht liegt es an &quot;ExecSQL&quot; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/571078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571078</guid><dc:creator><![CDATA[benny_1]]></dc:creator><pubDate>Thu, 29 Jul 2004 15:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 16:06:16 GMT]]></title><description><![CDATA[<p>benny_1 schrieb:</p>
<blockquote>
<p>Vielleicht liegt es an &quot;ExecSQL&quot; ?</p>
</blockquote>
<p>Nein.</p>
<p>Es liegt am INSERT INTO.</p>
<p>Was Du vorhast ist ein Update. Der Datensatz mit seinem PK steht ja bereits in der DB. Ein INSERT INTO versucht ihn erneut hinzuzufügen und löst eine PK-Verletzung aus.</p>
<p>Du brauchst ein UPDATE. Das müßte etwa so aussehen:</p>
<pre><code class="language-cpp">if(primary)
{
Query-&gt;SQL-&gt;Text=
  &quot;UPDATE tabelle SET email='myValue' WHERE primarykey = &quot;+ Edit-&gt;Text;
Query-&gt;ExecSQL();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/571089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571089</guid><dc:creator><![CDATA[DMarko]]></dc:creator><pubDate>Thu, 29 Jul 2004 16:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 16:27:41 GMT]]></title><description><![CDATA[<p>benny_1 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int primary = DataModule1-&gt;Kunde_Query-&gt;RecordCount;
if(primary)
</code></pre>
</blockquote>
<p>Äh irgenwie verstehe ich nicht, was Du mit diesem Code bewirken willst?<br />
Könntest Du mir das erklären? (es ist ziemlich heiß hier, vielleicht hab' ich einfach nur ein Brett vor'm Kopf, aber ich versteh' den Sinn nicht...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/571104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571104</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 29 Jul 2004 16:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 16:52:52 GMT]]></title><description><![CDATA[<p>DataModule1-&gt;Kunde_Query-&gt;RecordCount gibt die Anzahl der Datensätze im Query zurück.</p>
<p>Er will wohl prüfen ob einer da ist...<br />
Das if(int) fand ich auch interessant...</p>
<p>Ich würde die ganze Funktion eh anders aufbauen. Ein bissl mehr Code oder Erklärung wäre aber nicht schlecht dazu.</p>
<p>Gruß und schönen Feierabend</p>
<p>DM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/571117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571117</guid><dc:creator><![CDATA[DMarko]]></dc:creator><pubDate>Thu, 29 Jul 2004 16:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 17:29:34 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Äh irgenwie verstehe ich nicht, was Du mit diesem Code bewirken willst?</p>
</blockquote>
<p>Scheint doch logisch: prüfen, ob RecordCount grösser Null ist, für Schreibfaule.</p>
<p>Edit:<br />
Ooops, da war ich wohl &quot;etwas&quot; zu langsam. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/571139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571139</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 29 Jul 2004 17:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 18:35:46 GMT]]></title><description><![CDATA[<p>Hallo DMarko,</p>
<p>ich habe es jetzt so gemacht, wie du's geschrieben hast, mit UPDATE.</p>
<p>Damit klappt's auch. Vielen Dank.</p>
<p>Ach übrigens mit RecordCount prüfe ich wirklich ob der Datensatz vorhanden ist.</p>
<p>Gruß<br />
benny_1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/571163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571163</guid><dc:creator><![CDATA[benny_1]]></dc:creator><pubDate>Thu, 29 Jul 2004 18:35:46 GMT</pubDate></item><item><title><![CDATA[Reply to Änderung des Datenbankeintrags beim Primärschlüssel on Thu, 29 Jul 2004 19:42:46 GMT]]></title><description><![CDATA[<p>Hi benny_1</p>
<p>und woher und wie holst Du die PrimaryId? Ich wollte nur andeuten, dass man das eine mit dem anderen verbinden kann.</p>
<p>Für Inserts und Updates und Deletes solltest Du Dir mal TUpdateSQL ansehen. Ist recht praktisch. (Wenn Du es versuchen willst und nicht klarkommst, schau mal in den FAQs oder poste noch mal, dann stell ich hier ein Beispiel rein.)<br />
Wenn ich den kompletten Datensatz habe (inkl. PrimaryId), mach das (manchmal) einfach so, dass ich einen Insert versuche, und wenn ich einen Indexfehler erhalte, mache ich ein Update.</p>
<p>Grüße Joe_M.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/571189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/571189</guid><dc:creator><![CDATA[zufaulzumeinloggen]]></dc:creator><pubDate>Thu, 29 Jul 2004 19:42:46 GMT</pubDate></item></channel></rss>