Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi wie kann man einen zufälligen datensatz auswählen? (https://www.delphipraxis.net/15987-wie-kann-man-einen-zufaelligen-datensatz-auswaehlen.html)

PhöniX 8. Feb 2004 14:59

Re: wie kann man einen zufälligen datensatz auswählen?
 
:wiejetzt:
ich benutze eine tabelle und paradox 7...

Sharky 8. Feb 2004 15:03

Re: wie kann man einen zufälligen datensatz auswählen?
 
TTable, TQuery TADOQuery usw. sind alles nachfahren von TDateSet und sollten darum alle die Funktion .RecordCount haben.

Wobei die Methode von GeorgeWNewbie natürlich die beste bei einem Query ist.

Es müsste aber so aussehen:

SQL-Code:
 SELECT count (*) AS reccount FROM tabelle

Robert_G 8. Feb 2004 15:05

Re: wie kann man einen zufälligen datensatz auswählen?
 
TTable habe ich noch nie benutzt... :gruebel:
Das ganze müsste aber auch mit einer BDE-Query funktionieren.
In RecCount (welch' Überraschung) steht dann die Anzahle der Einträge.
( natürlich "'FROM Tabelle';" durch deinen Tabellennamen ersetzen. )

PhöniX 8. Feb 2004 15:17

Re: wie kann man einen zufälligen datensatz auswählen?
 
musses dann so aussehen??:
Delphi-Quellcode:
var
maxi: integer;
zufallszahl: integer;
[...]
randomize;
maxi := SELECT count (*) AS reccount FROM tabelle;
zufallszahl := random(maxi);
select * from tabelle limit ' + zufallszahl + ',1';

Robert_G 8. Feb 2004 15:30

Re: wie kann man einen zufälligen datensatz auswählen?
 
Wie gesagt, ich habe keine Ahnung von TTable, aber ich denke es müsste so aussehen:
Delphi-Quellcode:
...
  Query.SQL.Text :=
    'SELECT COUNT(*) RecCount' + #10 + 
    'FROM  Tabelle';
  Query.Open;
  RecCount := Query.FieldValues['RecCount'];
  Randomize;
  ZufallsZahl := Random(RecCount);
  Table.SQL.Text :=
    'SELECT *' + #10 + 
    'FROM  Tabelle' + #10 +
    'LIMIT ' + ZufallsZahl + ', 1';
...

PhöniX 8. Feb 2004 16:21

Re: wie kann man einen zufälligen datensatz auswählen?
 
ne das geht nicht..

PhöniX 8. Feb 2004 16:27

Re: wie kann man einen zufälligen datensatz auswählen?
 
so...hab was gefunden:
Delphi-Quellcode:
Anzahl := Table1.RecordCount;
ganz simpel

PhöniX 8. Feb 2004 17:24

Re: wie kann man einen zufälligen datensatz auswählen?
 
Delphi-Quellcode:
 var
  maxiEng: Integer;
  zufallszahl: Integer;
 [...]
 begin
  maxiEng := FormVocsEng.TableEng.RecordCount;
  zufallszahl := random(maxiEng);
  'select * from FormVocsEng.TableEng limit' + IntToStr(zufallszahl) + ',1'; //<- Fehler Hier
 end;
 [...]
Hier gibts noch einen Fehler:
Anweisung erforderlich, aber Ausdruck vom Typ 'String' gefunden.

Wenn ich die ' weglasse weiß er nicht was select ist:
Undefinierter Bezeichner: 'select'

[edit]Hab herausgefunden, dass Delphi5 Prof. anscheinen kein select kennt..muss man da was downloaden?[/edit]

Kann mir da jemand helfen?

Robert_G 8. Feb 2004 17:49

Re: wie kann man einen zufälligen datensatz auswählen?
 
Du kannst ihm nicht einfach ein SELECT-Statement geben.
Delphi weiß doch gar nicht, was es damit machen soll.
Wenn du dir meinen Code angeschaut hast, müsste dir das aufgefallen sein:
Delphi-Quellcode:
  Table.SQL.Text :=
    'SELECT *' + #10 +
    'FROM  Tabelle' + #10 +
    'LIMIT ' + IntToStr(ZufallsZahl) + ', 1';
Damit gibst du der Table1 (Typ TTable) ein SELECT-Statement. Ich bin mir aber nicht sicher, wie man es bei TTable ausführt ( :gruebel: ). Höchstwahrscheinlich mit Table1.Open oder Table1.Refresh.

PhöniX 8. Feb 2004 18:05

Re: wie kann man einen zufälligen datensatz auswählen?
 
was ist mit TQuery??
Delphi-Quellcode:
Query.Active:=false;
Query.Sql.Clear;
Query.Sql.Add('SELECT Deutsch FROM FormVocsEng.TableEng WHERE ?? ');//<---HIER!!
Query.Active:=true;
Was muss an der markierten Stelle hinter WHERE eingefügt werden wenn man wissen will WO die Datensatznummer ist, die zufällig gewählt wurde?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz