[DELPHI] Kolommen 2 tabellen in 1 DBGRID

Pagina: 1
Acties:

  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
Hoe krijg ik kolommen uit 2 delphi Table objecten in 1 dbgrid?

of een andere optie, hoe krijg ik kolommen uit 2 table objecten in 1 table object

Het gaat bijvoorbeeld om de volgende tabellen:

klant: klantnummer; naam; adres; telefoonnummer
Opdracht: opdrachtnummer; klantnummer; datum aanname; etc.

DBgrid:

opdrachtnummer; klantnummer; adres; telefoonnummer; datum aanname;

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • hamburger
  • Registratie: April 2000
  • Niet online

hamburger

BOOOM!!!

Kan volgens mij niet standaard met een dbgrid. Hiervoor moet je of een andere component gebruiker of een 'join' query bouwen die dat doet.

  • miniBSD
  • Registratie: Augustus 2002
  • Laatst online: 20-12-2023
Er zijn daarvoor verschillende opties:

- Het maken van een lookup field in je dataset
of
- Een query component gebruiken en door middel van een 'JOIN' of een 'select' statement de kolommen laten zien.

In het eerste geval is het kwestie van een tweede dataset erbij zetten, en in je dataset door middel van 'fields' of dubbelklikken op het component, een veld toevoegen met als eigenschap 'loopup field'.

Wellicht moet je even de documentatie van Delphi hierop nazien, maar het is zeker niet zo ingewikkeld.

Quidquid latine dictum sit, altum sonatur (Whatever is said in Latin sounds profound).


Verwijderd

Zet 2 tables en 1 query op je form.
Dan heel simpel dit:
code:
1
2
3
4
5
6
7
8
begin
  with Query1 do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM '+table1.TableName+','+table2.TableName);
    Active := true;
  end;
end;

Verwijderd

Verwijderd schreef op 26 augustus 2002 @ 16:44:
Zet 2 tables en 1 query op je form.
Dan heel simpel dit:
code:
1
2
3
4
5
6
7
8
begin
  with Query1 do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM '+table1.TableName+','+table2.TableName);
    Active := true;
  end;
end;
Zo simpel is het dus niet kennelijk niet.
Dit geeft een veel te groot resultaat terug.

Je moet nl wel ervoor zorgen dat de de juiste klant aan de order gekoppeld worden.

Je moet de query vullen met de volgende sql:

select order.opdrachtnummer, klant.klantnummer, klant.adres, klant.telefoonnummer, order.datum aanname from klant, order where order.klantnummer = klant.klantnummer

  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
Bedankt allemaal ik ga het morgen uitproberen

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Zeus: Waarom heb je die 2 tables nodig? Dit is niet nodig hoor...
Je kan die tablenames gewoon hard-coded in je query zetten.

Verwijderd schreef op 26 augustus 2002 @ 16:53:
[...]


Zo simpel is het dus niet kennelijk niet.
Dit geeft een veel te groot resultaat terug.

Je moet nl wel ervoor zorgen dat de de juiste klant aan de order gekoppeld worden.

Je moet de query vullen met de volgende sql:

select order.opdrachtnummer, klant.klantnummer, klant.adres, klant.telefoonnummer, order.datum aanname from klant, order where order.klantnummer = klant.klantnummer

Inderdaad, anders krijg je een cartesiaans product, die join moet erin.

https://fgheysels.github.io/

Pagina: 1