Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi zufällige datenbankabfrage (https://www.delphipraxis.net/35774-zufaellige-datenbankabfrage.html)

schmodi 11. Dez 2004 16:38


zufällige datenbankabfrage
 
Hallo zusammen

Ich habe ein problem.
Noch zum sagen ich programmiere erst seit etwa einem halben jahr, das heisst ich möchte die programiersprache erlernen jetzt hoffe ich das ihr mir weiter helfen könnt

Ich möchte eine zufällige abfrage aus einer Datenbank machen. Aber ich habe das bis jetzt einfach noch nicht geschafft.
Wenn ich das programm starte sollte im DB text 1 der erste datensatz erscheinen wenn man weitermacht sollte dann ein zufälliger datensatz erscheinen aber nie der gleiche wie schon einmal gekommen ist.
Wie ist das möglich ?
Schon mal vielen dank für eure hilfe.

Gruess Schmodi

MrSpock 11. Dez 2004 16:56

Re: zufällige datenbankabfrage
 
Hallo schmodi,

zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum.

Enthält deine Tabelle eine ID oder einen anderen eindeutigen Schlüssel?

Dann könntest du die ID per Random Funktion ermitteln lassen und den entsprechenden Datensatz anzeigen. In einer Liste merkst du dir alle bisher angezeigten Datensätze (über ihrne Schlüssel), so dass du denselben Datensatz nicht noch einmal anzeigst.

schmodi 11. Dez 2004 17:16

Re: zufällige datenbankabfrage
 
Vielen dank einmal.

Ich habe eine Paradox 7 datenbank erstellt.
Dort stehen im ersten feld die Anzahl datensäte und ganz am schluss steht schlüssel
aber in diesem Feld kann ich nur ein sternchen hineinsetzten.
Wie heisst den der befehl mit dem ich dieses feld ansprechen kann?

Gruess Schmodi

Albi 11. Dez 2004 17:24

Re: zufällige datenbankabfrage
 
Dieses Sternchen bedeutet nichts anderes als das dein Autozähler (Primary Key) dieses Feld wird bei POST automatisch generiert. Ansprechen kannst Du es wie jedes andere Feld auch.

MrSpock 11. Dez 2004 17:49

Re: zufällige datenbankabfrage
 
Hallo Albi,

das ist nicht ganz richtig :mrgreen: . Der Stern sagt nur, dass dieses Feld alleiniges oder Teil eines zusammengesetzen Schlüssels (Primary Key) ist. Das muss aber kein AutoInc (bzw. Zähler bei Paradox) sein.

Albi 12. Dez 2004 08:25

Re: zufällige datenbankabfrage
 
Zitat:

Zitat von MrSpock
Hallo Albi,

das ist nicht ganz richtig :mrgreen: . Der Stern sagt nur, dass dieses Feld alleiniges oder Teil eines zusammengesetzen Schlüssels (Primary Key) ist. Das muss aber kein AutoInc (bzw. Zähler bei Paradox) sein.

Hast ja recht. :oops:

schmodi 4. Jan 2005 21:35

Re: zufällige datenbankabfrage
 
Hallo

Ich habe völig den überblick verloren.....

Muss ich das ganze mit einer SQL abfrage machen oder kann ich das mit der ganz noemalen Programiersprache erledigen.
Wie kann ich die felder ansprechen
Ich habe hier einen SQL text : SELECT [spalten] FROM [tabelle] WHERE id=Random(anz)
aber wo muss ich ihn einsetzten?
Ich hoffe Ihr könnt mir helfen.

Ich bin am :wall:

Gruess Schmodi

MrSpock 4. Jan 2005 21:47

Re: zufällige datenbankabfrage
 
Hallo Schmodi,

du kannst eine SQL Abfrage nehmen, aber auch mit FindKey arbeiten.

Delphi-Quellcode:
ranID := Random(anz);
if myTable.FindKey([ranID])then
  { Datensatz mit der ID ranID gefunden und als aktuellen Datensatz ausgewählt }
else
  { Datensatz existiert nicht }

schmodi 5. Jan 2005 11:45

Re: zufällige datenbankabfrage
 
Hallo
erst einmal vielen dank das hat einmal geklappt
jetzt bin ich aber am nächsten problem ich möchte den angezeigten datensatz oder z.b. nur die ID nummer des datensatzes abspeichern in einer Neuen Tabele, das ich beim nächsten zugriff abfragen kann ob dieser Datensatz schon einmal aufgerufen wurde?
Soviel wie ich gelesen habe muss ich den Quelltext so anfangen table1.insert;
Aber mit diesem Befehl weiss der Computer Ja nicht wohin er die ID numer speichern muss. Wie kann man das Lösen?

Gruess Schmodi

QuickAndDirty 5. Jan 2005 12:04

Re: zufällige datenbankabfrage
 
Delphi-Quellcode:
 
  ClientDataSet1.Insert;
  ClientDataSet1.FieldByName('QUANTITY').AsInteger := StrToInt(Edit1.Text);
  ClientDataSet1.Post;
RT*M bitte index unter TTAble und dann Methoden->Beispiele
Trotzdem Herzlich willkommen.
Lies dir am bestendie komplette Hilfe zu TTable und
die Beispiele durch. Wirst auch machen müssen wenn dir
jetzt hier geholfen wird.

Ich vermute das du mit datenbanken noch garnichts anfangen kannst.
Wenn das so ist, ist es das beste wenn du dir ein paar Grundlagen aus Büchern
aneignest(Primary Key, Key, Tabelle, Datensatz, Datentypen, SQL vs ISAM, Anomalien).
Leider ist es eignetlich nicht möglich mal eben so Datenbanken zuverstehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.
Seite 1 von 2  1 2      

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