Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Current Record in einer Query ermitteln. (https://www.delphipraxis.net/4820-current-record-einer-query-ermitteln.html)

Natalia 13. Mai 2003 09:39


Current Record in einer Query ermitteln.
 
Hi, :)

ich habe auf einem Formular ein DBGrid mit DataSourse QueryX
und mehrere DBEdit Felder mit DataSource TableY.

Qery und Table haben gleichen Wert in einer Spalte.
Wie kann ich auf den entsprechenden Record in der Tabelle springen, wenn ich im Grid(Query) die Zeilen markiere???

Natalia

MrSpock 13. Mai 2003 20:35

Hallo Natalia,

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

Die DataSource Komponente, die mit QueryX verbunden ist, stellt das Ereignis OnDataChange zur Verfügung, das ausgelöst wird, z.B. wenn sich der aktuelle Datensatz der zugehörigen Datenmenge ändert. Hier kannst du dann Code einfügen, der z.B. mit Locate den entsprechenden Datensatz aus der Tabelle auswählt.

Natalia 14. Mai 2003 06:46

Hi,MrSpock

Danke für den Tipp!
("Locate" war eine gute Idee) :D

MrSpock 15. Mai 2003 19:50

Hallo Natalia,

freut mich, dass es funktioniert. Neben locate solltest du dir auch einmal "Schlüssel" Felder (primary keys, foreign keys) und dazu die FindKey Methode. Wenn "ID" z.B. ein Schlüsselfeld ist (das auch ausgewählt sein muss), dann wählst du den Satz mit der ID 5 wie folgt aus:

Delphi-Quellcode:
if myTable.FindKey([5]) then
  { Satz gefunden und ausgewählt }
else
  { gibbet nich :-)) };

Natalia 16. Mai 2003 09:40

Hi, :)

Jetzt habe ich ein weiteres Problem :(

ich habe Query Artikel und Query Aufträge und suche für den bestimmten
Artikel offene Aufträge:

Code:
Delphi-Quellcode:
      artNr : integer;
     
      artN:=qrArtikelArtikelnummer.AsInteger;
      if not (qrAuftrag.Locate('artikelnummer',artNr, [])) then
      begin
        ShowMessage('Keine offene Aufträge');
        Exit;
      end;
SQL Query Auftrag:
Delphi-Quellcode:
      Select .....
      From Auftrag1 a, Auftrag2 b
      Where a.Artikelnummer=:artNr
Es wirt nichts gefunden
Was mache ich falsch? :?:

[edit=mrSpock]Code Tags hinzugefügt.[/edit]

MrSpock 16. Mai 2003 10:32

Hallo Natalia,

in deiner Query benutzt du den Ausdruck :artNr, dadurch wird artNr ein Parameter deiner Query. Du kannst ihn dir sogar in der Params Eigenschaft anschauen. Um deine Variable artNr jetzt diesem Parameter zuzuweisen, musst du folgendes schreiben:

Delphi-Quellcode:
qrAuftrag.ParamByName('artNr').AsInteger := artNr;
natürlich mit dem korrekten Querynamen...

Zuerst die Query schließen, dann die obigen Zuweisung an den Parameter. Anschließend kannst du die Query mit Open ausführen.

Natalia 16. Mai 2003 13:03

Danke, MrSpock!

Es funktioniert! :D

Natalia


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr.

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