<?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[Datenbank Frage SQL [gelöst]]]></title><description><![CDATA[<p>Ich arbeite gerade an einem kleinen Projekt.</p>
<p>Kann mir evtl. jemand einen Tipp geben wie ich aus der SQL Query die ausgeführt wurde rausbekomme - welche ID der Datensatz hat -.</p>
<p>Die Tabelle hat das folgende Schema (Spalten):</p>
<pre><code>ID (Long Integert) Primary AUTOID
NAME (TEXT) 
BESCHREIBUNG (TEXT)
</code></pre>
<p>Beispielcode:</p>
<pre><code class="language-cpp">// Kategorie
        SQLKategorie-&gt;ConnectionString = Connection;
        SQLKategorie-&gt;SQL-&gt;Add(&quot;SELECT NAME FROM KategorieAusgaben ORDER BY ID&quot;);
        SQLKategorie-&gt;Open();   // Active = true;
        while (!SQLKategorie-&gt;Eof){
        ComboBox2-&gt;Items-&gt;Add(SQLKategorie-&gt;FieldValues[&quot;NAME&quot;]);
        ComboBox2-&gt;Items-&gt;
        SQLKategorie-&gt;Next();
        } SQLKategorie-&gt;Active = false;
</code></pre>
<p>Ich meine eine SQL Abfrage wird ja in Zeile 2 durchgelaufen. Als Rückgabe gibts ja dann die Werte z.B. mit FieldValues[&quot;ID&quot;] kann ich ja die ID des aktuellen durchlaufsprüfen. Kann ich diese ID dem Listenfeld COMBOBOX2 irgendwie vergeben? Damit ich diesen dann abfragen kann oder muss ich jedesmal eine SQL Query durchführen nach dem Prinzip: &quot;SELECT ID FROM KONTO WHERE KONTONAME=:KONTONAME LIMIT 1&quot;.</p>
<p>Lieben Gruß und danke für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178055/datenbank-frage-sql-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 08:20:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178055.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Apr 2007 20:44:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datenbank Frage SQL [gelöst] on Sat, 07 Apr 2007 10:28:00 GMT]]></title><description><![CDATA[<p>Ich arbeite gerade an einem kleinen Projekt.</p>
<p>Kann mir evtl. jemand einen Tipp geben wie ich aus der SQL Query die ausgeführt wurde rausbekomme - welche ID der Datensatz hat -.</p>
<p>Die Tabelle hat das folgende Schema (Spalten):</p>
<pre><code>ID (Long Integert) Primary AUTOID
NAME (TEXT) 
BESCHREIBUNG (TEXT)
</code></pre>
<p>Beispielcode:</p>
<pre><code class="language-cpp">// Kategorie
        SQLKategorie-&gt;ConnectionString = Connection;
        SQLKategorie-&gt;SQL-&gt;Add(&quot;SELECT NAME FROM KategorieAusgaben ORDER BY ID&quot;);
        SQLKategorie-&gt;Open();   // Active = true;
        while (!SQLKategorie-&gt;Eof){
        ComboBox2-&gt;Items-&gt;Add(SQLKategorie-&gt;FieldValues[&quot;NAME&quot;]);
        ComboBox2-&gt;Items-&gt;
        SQLKategorie-&gt;Next();
        } SQLKategorie-&gt;Active = false;
</code></pre>
<p>Ich meine eine SQL Abfrage wird ja in Zeile 2 durchgelaufen. Als Rückgabe gibts ja dann die Werte z.B. mit FieldValues[&quot;ID&quot;] kann ich ja die ID des aktuellen durchlaufsprüfen. Kann ich diese ID dem Listenfeld COMBOBOX2 irgendwie vergeben? Damit ich diesen dann abfragen kann oder muss ich jedesmal eine SQL Query durchführen nach dem Prinzip: &quot;SELECT ID FROM KONTO WHERE KONTONAME=:KONTONAME LIMIT 1&quot;.</p>
<p>Lieben Gruß und danke für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260909</guid><dc:creator><![CDATA[Ag3nt]]></dc:creator><pubDate>Sat, 07 Apr 2007 10:28:00 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank Frage SQL [gelöst] on Fri, 06 Apr 2007 20:57:26 GMT]]></title><description><![CDATA[<p>das sql müsste lauten:</p>
<pre><code>SELECT NAME, ID FROM KategorieAusgaben ORDER BY ID
</code></pre>
<p>dann solltest du mit 'FieldValues[&quot;ID&quot;]' die id kriegen.<br />
bei comboboxen kann man pro zeile noch einen 'unsichtbaren' wert eintragen. den könntest du beispielsweise mit der id belegen.<br />
wie das mit deiner 'Combobox' klasse geht, müsste in der doku stehen...<br />
<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/1260917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260917</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Fri, 06 Apr 2007 20:57:26 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank Frage SQL [gelöst] on Fri, 06 Apr 2007 22:40:10 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-171926-and-highlight-is-%2Aobject%2A.html" rel="nofollow">Hier</a> wird das Prinzip mit dem unsichtbaren Wert erklärt was vista meint.</p>
<p>Wenn du bereits mit anderen Komponenten aus der DBE arbeitest solltest du dir TDBComboBox/TDBLookupComboBox anschauen, die sind genau für dieses Problem da.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260969</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 06 Apr 2007 22:40:10 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank Frage SQL [gelöst] on Sat, 07 Apr 2007 02:52:40 GMT]]></title><description><![CDATA[<p>Habs noch nicht getestet, aber vielen Dank schonmal. Setzte mich nun dran.</p>
<p>Naja irgendwie muss ich ja dann mit Zeigern arbeiten und das wollte ich erlichgesagt nicht. Gibt's denn keine Lösung wie man einem Eintrag in der Combobox einen Hiddenwert übergibt? Kann ich den den Stringbereich prüfen?</p>
<p>Nehmen wir mal an ich füge nun bei jedem Eintrag hinter dem Namen einfach (17) mit ein. Gibts hierfür eine Methode um diese Zahl also 17 oder so also alles was in der Klammer steht in eine Variable speicher? Ich kenn mit da nur mit PHP aus wie man per Muster und String arbeitet. Aber im BCB leider noch nicht. Würd mich aufjedenfall freuen, wenn ihr mir helfen könntet.<br />
Das müßte doch wie folgt gehen oder irre ich mich da?</p>
<pre><code class="language-cpp">// Kontopulldown
        SQLKonto-&gt;ConnectionString = Connection;
        SQLKonto-&gt;SQL-&gt;Add(&quot;SELECT ID,KONTONAME FROM KONTEN ORDER BY KONTONAME&quot;);
        SQLKonto-&gt;Open();       // Active = true;
        while (!SQLKonto-&gt;Eof) {
        ComboBox1-&gt;Items-&gt;Add((SQLKonto-&gt;FieldValues[&quot;KONTONAME&quot;]) + (&quot; (&quot;+SQLKonto-&gt;FieldValues[&quot;ID&quot;]+&quot;)&quot;));
        SQLKonto-&gt;Next();
        } SQLKonto-&gt;Active = false;

// ID in Variable
AnsiString IDvariable;
IDvariable = ComboBox-&gt;SubString(int index, int count);
</code></pre>
<p>Liebe Grüße und big thanks <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/1261019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261019</guid><dc:creator><![CDATA[Ag3nt]]></dc:creator><pubDate>Sat, 07 Apr 2007 02:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank Frage SQL [gelöst] on Sat, 07 Apr 2007 08:07:52 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Gibt's denn keine Lösung wie man einem Eintrag in der Combobox einen Hiddenwert übergibt?</p>
</blockquote>
<p>Die Lösung wird doch in dem Link erklärt.</p>
<blockquote>
<p>Naja irgendwie muss ich ja dann mit Zeigern arbeiten und das wollte ich erlichgesagt nicht.</p>
</blockquote>
<p>Must du aber. Ist aber auch nicht schlimm, Zeiger sind nichts schlechtes. Bei dir stellt sich die Frage ob du zusätzlich zu den Zeigern noch dynamische Speicherreservierung brauchst. Aus der gezeigten Tabellenstruktur geht hervor das deine ID ein &quot;Long Integer&quot; ist. Ich weiß nicht genau mit welchen DB-System du arbeitest, in den meisten Fällen sollte so ein Wert in den C++ Datentyp unsigned int passen. Das bedeutet du zwingst die ComboBox einfach den ID-Wert direkt als Objekt zu übernehmen.</p>
<pre><code class="language-cpp">unsigned int ID = ...; // ID aus Datensatz letzten
AnsiString Name = ...; // Name aus Datensatz lesen
ComboBox-&gt;Items-&gt;Add(Name, reinterpret_cast&lt;TObject*&gt;(ID)); // Name mit ID in ComboBox eintragen
</code></pre>
<p>Nun wird Name immer in Zusammenhang mit der ID verwaltet, auch wenn in der ComboBox sortiert oder gelöcht wird.<br />
Das ganze kannst du nun auch einfach wieder auslesen</p>
<pre><code class="language-cpp">unsigned int ID = reinterpret_cast&lt;unsigned int&gt;(ComboBox-&gt;Items-&gt;Object[0]);
</code></pre>
<p>Das ganze ist zwar nicht schön aber übersichtlich.<br />
Wenn dein ID-Wert nicht in ein unsigned int passt oder du generell komplexe Datentypen verküpfen willst solltest du von TObject eine neue Klasse ableiten die dann die notwendigen Werte besitzt. Dann must du natürlich mit new und delete arbeiten.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261043</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 07 Apr 2007 08:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to Datenbank Frage SQL [gelöst] on Sat, 07 Apr 2007 10:27:36 GMT]]></title><description><![CDATA[<p>Jo der Code ist gut, aber ich habs anders gelöst:</p>
<pre><code class="language-cpp">// ID von Konto &amp; Kategorie
        AnsiString KontoID, KategorieID;
                // ID von Konto
                SQLKonto-&gt;SQL-&gt;Clear();
                SQLKonto-&gt;SQL-&gt;Add(&quot;SELECT ID,KONTONAME FROM KONTEN WHERE KONTONAME=:KONTONAME&quot;);
                        SQLKonto-&gt;Parameters-&gt;ParamByName(&quot;KONTONAME&quot;)-&gt;Value = ComboBox1-&gt;Text;
                SQLKonto-&gt;Open();
                KontoID = SQLKonto-&gt;FieldValues[&quot;ID&quot;];
                SQLKonto-&gt;Active = false;

                // ID von Kategorie
                SQLKategorie-&gt;SQL-&gt;Clear();
                SQLKategorie-&gt;SQL-&gt;Add(&quot;SELECT ID,NAME FROM KATEGORIEEINAHMEN WHERE NAME=:NAME&quot;);
                        SQLKategorie-&gt;Parameters-&gt;ParamByName(&quot;NAME&quot;)-&gt;Value = ComboBox2-&gt;Text;
                SQLKategorie-&gt;Open();
                KategorieID = SQLKategorie-&gt;FieldValues[&quot;ID&quot;];
                SQLKonto-&gt;Active = false;
</code></pre>
<p>Also später wenn er speichern will bediene ich mich an den 2 ADOQuery die da herumstehen und hau da meine SQL Statements rein und prüfe somit die ID die ich dann den 2 Variablen übergebe <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>
<p>Trotzdem Big Thanks, kann geclosed werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261091</guid><dc:creator><![CDATA[Ag3nt]]></dc:creator><pubDate>Sat, 07 Apr 2007 10:27:36 GMT</pubDate></item></channel></rss>