<?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[Werte im DataSet berechnen?]]></title><description><![CDATA[<p>Wahrscheinlich steh ich mir gerade wieder bloß selbst im Weg.</p>
<pre><code class="language-cpp">if (ADOQuery5-&gt;Modified) {
 //???}
</code></pre>
<p>Wenn ich meinen aktuellen DS verändert habe (Eingabe), dann möchte ich vor Query-&gt;Post(); ein anderes Feld neu berechnen, welches vom eingegebenen Wert abhängt. Das Feld selbst ist Teil des DS und damit des DataSets.</p>
<p>Wie schreib ich das in den aktuellen DS vor dem Post.</p>
<p>Mit nem nachgelagerten Update (AfterPost) ist das kein Problem, doch das wollte ich mir nicht unbedingt antun.</p>
<p>Oder will ich wieder einmal mit der Kirche ums Dorf? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137882/werte-im-dataset-berechnen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 17:50:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137882.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Feb 2006 16:07:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Tue, 21 Feb 2006 16:07:28 GMT]]></title><description><![CDATA[<p>Wahrscheinlich steh ich mir gerade wieder bloß selbst im Weg.</p>
<pre><code class="language-cpp">if (ADOQuery5-&gt;Modified) {
 //???}
</code></pre>
<p>Wenn ich meinen aktuellen DS verändert habe (Eingabe), dann möchte ich vor Query-&gt;Post(); ein anderes Feld neu berechnen, welches vom eingegebenen Wert abhängt. Das Feld selbst ist Teil des DS und damit des DataSets.</p>
<p>Wie schreib ich das in den aktuellen DS vor dem Post.</p>
<p>Mit nem nachgelagerten Update (AfterPost) ist das kein Problem, doch das wollte ich mir nicht unbedingt antun.</p>
<p>Oder will ich wieder einmal mit der Kirche ums Dorf? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/999521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999521</guid><dc:creator><![CDATA[caspar_louis]]></dc:creator><pubDate>Tue, 21 Feb 2006 16:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Tue, 21 Feb 2006 17:46:28 GMT]]></title><description><![CDATA[<p>Ich arbeite aus Prinzip nicht mit gebundenen Steuerelementen, deswegen kann meine Anwort auch falsch sein.<br />
Mein Ansatz wäre im OnChange-Ereigniss des Eingabefeldes anzusetzen, oder bei OnClick des Speichern-Buttons die Berechnung durchführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999607</guid><dc:creator><![CDATA[Fincki]]></dc:creator><pubDate>Tue, 21 Feb 2006 17:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Wed, 22 Feb 2006 07:30:52 GMT]]></title><description><![CDATA[<p>Ich arbeite im OnExit-Ereignis, weil im OnChange der Wert noch nicht komplett ist.<br />
Und natürlich stand ich mir gestern abend bloß selbst im Weg.<br />
Es war viel zu einfach. Das ist mir dann schon auf dem Nachhauseweg eingefallen. Ich führe meine Berechnung im aktuellen DS <strong>gaaanz</strong> normal aus. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Bsp.</p>
<pre><code class="language-cpp">void __fastcall TForm::Wert2Exit(TObject *Sender)
{
   if (Query-&gt;Modified) {
      if (ADOQuery5-&gt;FieldByName(&quot;WERT1&quot;)-&gt;AsFloat &gt; 0) &gt; 0) {
         Query-&gt;FieldByName(&quot;WERT3&quot;)-&gt;AsFloat = RoundTo(FieldByName(&quot;WERT2&quot;)-&gt;AsFloat /FieldByName(&quot;WERT1&quot;)-&gt;AsFloat,-2);
      }
      Query-&gt;FieldByName(&quot;WERT3&quot;)-&gt;AsFloat = 0; 
}
</code></pre>
<p>Das ganze habe ich auch mit</p>
<pre><code class="language-cpp">Query-&gt;FieldValues[&quot;WERT3&quot;]=RoundTo(((Query-&gt;FieldValues[&quot;WERT2&quot;])/(Query-&gt;FieldValues[&quot;WERT1&quot;])),-2);
</code></pre>
<p>ausprobiert.<br />
Aber da kommt 0 raus, obwohl die angezeigten Ausdrücke für Query-&gt;FieldValues[&quot;WERT2&quot;] und Query-&gt;FieldValues[&quot;WERT1&quot;] während des Debuggens korrekt ausgegeben werden. Und ich weiß nicht warum?<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/999892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999892</guid><dc:creator><![CDATA[caspar_louis]]></dc:creator><pubDate>Wed, 22 Feb 2006 07:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Wed, 22 Feb 2006 07:42:52 GMT]]></title><description><![CDATA[<p>Weil <strong>RoundTo</strong> kein <strong>Variant</strong> versteht?!</p>
<pre><code class="language-cpp">Query-&gt;FieldValues[&quot;WERT3&quot;]=RoundTo(((Query-&gt;FieldValues[&quot;WERT2&quot;])/(Query-&gt;FieldValues[&quot;WERT1&quot;])),-2);
</code></pre>
<p>und was soll das sein?!</p>
<pre><code class="language-cpp">if (ADOQuery5-&gt;FieldByName(&quot;WERT1&quot;)-&gt;AsFloat &gt; 0) &gt; 0) {
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/999894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999894</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 22 Feb 2006 07:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Wed, 22 Feb 2006 08:09:25 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/588">@Sunday</a><br />
Blödsinn natürlich! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Das kommt von Strg+C-&gt;Strg+V + Veränderung des Codes für's Bsp.</p>
<p>Korrekt wäre so</p>
<pre><code class="language-cpp">(ADOQuery-&gt;FieldByName(&quot;WERT1&quot;)-&gt;AsFloat &gt; 0) {//...}
</code></pre>
<p>Und die Abfrage narürlich auch nur, weil Division durch Null ja nicht definiert ist, was nicht passieren darf.</p>
<p>Wenn's an RoundTo vs. Variant läge, sollte</p>
<pre><code class="language-cpp">ADOQuery-&gt;FieldValues[&quot;Wert3&quot;] = ADOQuery-&gt;FieldValues[&quot;Wert2&quot; ] /ADOQuery-&gt;FieldValues[&quot;Wert1&quot;];
</code></pre>
<p>ja funktionieren.<br />
Aber das ergibt ebenfalls 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999910</guid><dc:creator><![CDATA[caspar_louis]]></dc:creator><pubDate>Wed, 22 Feb 2006 08:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Wed, 22 Feb 2006 10:44:01 GMT]]></title><description><![CDATA[<p>weil <strong>FieldValues</strong> Variant zurückgibt und keinen Gleitkommawert!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000008</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 22 Feb 2006 10:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Thu, 23 Feb 2006 06:37:24 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/588">@Sunday</a><br />
Auch auf die Gefahr zu nerven. Ich weiß, daß der Rückgabewert Variant (Zeiger auf OLE-Variante) ist.<br />
Ich weiß nicht wo welche impiziten Umwandlungen gehen. Denn</p>
<pre><code class="language-cpp">float Zahl = RoundTo(Query-&gt;FieldValues[&quot;Feld&quot;],-2);
</code></pre>
<p>bringt z.B. ein Ergebniss.<br />
Klar kann ich das ganze Problem auch umgehen (mit FieldByName).<br />
Da ich aber immer alles wissen will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> , interessiert mich schon, ob es ggf. irgendwo eine Matrix gibt, wo die Typen der Rückgabewerte drin stehen und vielleicht auch welche von wem in was implizit umgewandelt werden können und welche nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000771</guid><dc:creator><![CDATA[caspar_louis]]></dc:creator><pubDate>Thu, 23 Feb 2006 06:37:24 GMT</pubDate></item><item><title><![CDATA[Reply to Werte im DataSet berechnen? on Thu, 23 Feb 2006 08:57:06 GMT]]></title><description><![CDATA[<p>Warum wandelst du nicht explizit um, z.Bsp. mit AsType(varDouble) oder einfach mit static_cast? Den Typen bekommst du ja mit der Funktion Type(). Das sind alles Memberfunktionen von Variant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000840</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 23 Feb 2006 08:57:06 GMT</pubDate></item></channel></rss>