Autor Beitrag
hofer333
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 24.10.04 11:38 
Hallo zusammen

ich bin ganz neu auf dem gebiet datenbanken und habe daher folgendes Problem.

ich habe eine paradox datenbank erstellt und kann sie in delphi mit einem dbgrid anzeigen. ich habe in dieser datenbank namen gespeichert und möchte einen zufälligen namen in einem label oder so ausgeben. dazu muss ich aber erst einen zufälligen wert suchen (ich denke mit random) und dann nach der indexzahl suchen. ich habe es mit einem query versucht, aber das problem ist die ausgabe.

könnt ihr mir helfen?

danke im voraus :D
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: So 24.10.04 18:10 
Das Problem ist die Ausgabe?
Du benötigst ein TQuery, ein TDataSource und ein paar TDBEdit-Felder.
Die TDBEdit-Felder verknüpfst du mit der TDataSource genauso, wie du es mit einem TDBGrid machen würdest. Zusätzlich muss du in den TDBEdit-Feldern noch angeben, welches Tabellenfeld dort angezeigt werden soll.
In der TQuery definierst du eine SQL-Abfrage, die dir den gewünschten Datensatz liefert. Wenn das TQuery und TDataSource korrekt miteinander verknüpft sind, solltest du dann in den TDBEdit-Feldern die Daten sehen können.
hofer333 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 24.10.04 20:31 
Danke erstmal für die schnelle antwort!

Ich glaube aber dass das Problem nicht die ausgabe ist sondern die SQL-Abfrage.
Ich habe habe versuch mit diesem code den datensatz zu finden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
 
Query1.close;
Query1.sql.text:='SELECT nr FROM namen WHERE (nr=2);
Query1.open;


Mit diesem code wird immer nur der erste Datensatz im DBEdit angezeigt.

Danke nochmals
hwb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91

Win98 SE, Win2000
D5 Prof
BeitragVerfasst: So 24.10.04 21:41 
Meinst Du das erste Feld des Datensatzes mit der Nr = 2 ?
Wenn du Felder gezeigt haben willst dann:

ausblenden Quelltext
1:
Query1.sql.text:='SELECT * FROM namen WHERE (nr=2);					


oder eben nur bestimmt Felder:

Query1.sql.text:='SELECT nr, Feld2, Feld3  FROM namen WHERE (nr=2);

Hans
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 25.10.04 08:18 
Zur Begriffsklärung (damit man hier nicht aneinander vorbei redet):
Datenbank: Ist das Ding, wo alle Daten drin stehen und verwaltet werden.
Tabelle: Ist eine der Listen in der Datenbank. Wird von Anfängern oft mit Datenbank verwechselt, da diese am Anfang nur eine Tabelle haben. Beispiel: Wenn ich zu einer CD eine Tabelle mit Titel und Interpret habe, brauche ich eine zweite Tabelle für die Titel.
Feld: Ist ein Element einer Tabelle. Beispiel: Titel und Interpret wären dann zwei Felder.

Ein Anfänger hat mit der Datenbank normalerweise fast nichts zu tun.

Das ist seeeehr vereinfacht. Aber ich hoffe, dass die Frage dann klarer vormuliert werden kann.

Bei deiner SQL-Abfrage solltest du im Normalfall auch nur einen Datensatz bekommen. das ist dann zwangsläufig der Erste.
Du musst für jedes Tabellen-Feld ein DBEdit auf die Form packen.
In der Select-Klausel müssen die sichtbaren Felder dann auch angegeben werden. Oder * für alle Felder.
Sieh dir das Beispiel von hwb dazu an.