<?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[Zufallszugriff auf Datenbank]]></title><description><![CDATA[<p>Hallo,<br />
ich habe in meinem Programm eine Datenbank und lasse die Einträge in DBEdit Felder ausgeben.<br />
Nun möchte ich das wenn ich einen Button klicke, dass ein zufälliger Datensatz angezeigt wird, wie ist das möglich???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170126/zufallszugriff-auf-datenbank</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 20:01:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170126.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Jan 2007 06:11:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 06:11:23 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe in meinem Programm eine Datenbank und lasse die Einträge in DBEdit Felder ausgeben.<br />
Nun möchte ich das wenn ich einen Button klicke, dass ein zufälliger Datensatz angezeigt wird, wie ist das möglich???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208408</guid><dc:creator><![CDATA[JohnClain]]></dc:creator><pubDate>Fri, 12 Jan 2007 06:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 08:47:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Dazu reicht bereits eine SQL-Anweisung, ausgeführt von einen TQuery</p>
<pre><code>SELECT * FROM table ORDER BY RANDOM() LIMIT 1
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208465</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 12 Jan 2007 08:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 09:46:19 GMT]]></title><description><![CDATA[<p>RANDOM ist doch ein wiederholvorgang, müsste es nicht eher sowas wie SHUFFLE sein (wenn es sowas gibt)?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208511</guid><dc:creator><![CDATA[JohnClain]]></dc:creator><pubDate>Fri, 12 Jan 2007 09:46:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 09:52:22 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Random erzeugt eine zufällige Reihenfolge der Ergebnisdatensätze.<br />
Es werden also alle zurückgegeben, bearbeitet von einer &quot;Shuffle&quot;-Methode.<br />
Durch das LIMIT 1 wird aber die Datenmenge auf den ersten Datensatz eingegrenzt. Dadurch hat man ein Verhalten, das dem vom &quot;Random&quot; entspricht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208518</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 12 Jan 2007 09:52:22 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 10:09:56 GMT]]></title><description><![CDATA[<p>Ist der Befehl sicher richtig?<br />
Bekomme bei mir die Fehlermeldung &quot;Undefinierte Funktion RANDOM&quot;</p>
<p>Hier mein Quelltext:</p>
<pre><code class="language-cpp">Query1-&gt;Close();
Query1-&gt;SQL-&gt;Clear();
Query1-&gt;SQL-&gt;Add(&quot;SELECT * FORM Tabelle1 ORDER BY RANDOM() LIMIT 1&quot;);
Query1-&gt;ExecSQL();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1208536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208536</guid><dc:creator><![CDATA[JohnClain]]></dc:creator><pubDate>Fri, 12 Jan 2007 10:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 10:19:01 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Bei vernünftigen Datenbanken wie PostgreSQL läuft das <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="😉"
    /></p>
<p>Ansonsten must du eben die Gesamtmenge der Datensätze abfragen (reicht aber die eindeutige ID), diese in ein Array einlesen und davon eine ID per srand/rand auswählen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208545</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 12 Jan 2007 10:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 10:23:31 GMT]]></title><description><![CDATA[<p>Sorry,<br />
aber mit Datenbanken kenne ich mich nicht so aus und ehrlichgesagt habe ich jetzt kein Wort verstanden. Ich benutze eine Access Datenbank, also .mdb.<br />
Kannst du mir nicht etwas genauer sagen wo mein Fehler in der SQL Anweisung ist?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208551</guid><dc:creator><![CDATA[JohnClain]]></dc:creator><pubDate>Fri, 12 Jan 2007 10:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 10:24:46 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>: Leg Dir lieber mal ein standardkonformes DBMS zu. <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="😉"
    /> Ich verwende hier informix und Firebird. Beide kennen RANDOM ebenfalls nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208553</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 12 Jan 2007 10:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 11:00:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>aber mit Datenbanken kenne ich mich nicht so aus und ehrlichgesagt habe ich jetzt kein Wort verstanden. Ich benutze eine Access Datenbank, also .mdb.<br />
Kannst du mir nicht etwas genauer sagen wo mein Fehler in der SQL Anweisung ist?</p>
</blockquote>
<p>Deine Tabelle muß ein Feld haben, das eindeutige IDs beinhaltet. Das ist in den meisten Fällen ein Integer-Feld mit den Eigenschaften Unique, Autoincrement und Primary.<br />
Du fragst also alle enthaltenden IDs ab und suchst davon eine aus.</p>
<pre><code class="language-cpp">Query1-&gt;SQL-&gt;Text(&quot;SELECT id FROM table&quot;);
Query1-&gt;Open();
if (Query1-&gt;ReordCount &gt; 0)
{
  int zufall = rand() % Query1-&gt;RecordCount;
  Query1-&gt;RecNo = zufall;
  int zufallindex = Query1-&gt;FieldByName(&quot;id&quot;)-&gt;AsInteger; 
  // Die Anzeige per Abfrage mit dem Datensatz aktualisieren, die die ID 'zufallsindex' hat
}
</code></pre>
<p>@ Joe : PostgreSQL ist sehr standardkonform. Leider finde ich keine unabhängige umfangreiche SQL-Standard-Referenz, um nachzuprüfen ob Random() nun im Standard ist oder nicht. Allerdings habe ich die Idee dazu hier <a href="http://thedailywtf.com/Articles/Finding_Random_Rows.aspx" rel="nofollow">her</a>, also ist es nicht nur in PostgreSQL enthalten.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208588</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 12 Jan 2007 11:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 11:31:12 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>bei MySQL ist es vermutlich rand<br />
bei Access - keine Ahnung - sollte man eigentlich nicht verwenden :p</p>
<p>Mfg<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208616</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Fri, 12 Jan 2007 11:31:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszugriff auf Datenbank on Fri, 12 Jan 2007 11:41:12 GMT]]></title><description><![CDATA[<p>Ja, eine rand-Funktion gibt es im Standard. Die erzeugt aber nur Zufallszahlen, somit wäre dann nicht die Reihenfolge der Tabelle zufällig, sondern nur die Spalte, nach der sortiert wird.</p>
<p>Nach ORDER BY wird normalerweise der Spaltenname angegeben, nach dem sortiert wird. Hierbei können aber auch Integer-Zahlen angeben werden, diese bezieht sich dann aber auf die Position der Spalte aus dem Select-Statement.<br />
Oder übersehe ich da etwas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1208626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208626</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 12 Jan 2007 11:41:12 GMT</pubDate></item></channel></rss>