![]() |
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 |
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. |
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 |
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.
|
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. |
Re: zufällige datenbankabfrage
Zitat:
|
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 |
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 } |
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 |
Re: zufällige datenbankabfrage
Delphi-Quellcode:
RT*M bitte index unter TTAble und dann Methoden->BeispieleClientDataSet1.Insert; ClientDataSet1.FieldByName('QUANTITY').AsInteger := StrToInt(Edit1.Text); ClientDataSet1.Post; 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 19:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz