Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DbGrid1 -> soll Einträge von DbGrid2 filtern ->funzt nicht (https://www.delphipraxis.net/29244-dbgrid1-soll-eintraege-von-dbgrid2-filtern-funzt-nicht.html)

TheConConBug 6. Sep 2004 14:54


DbGrid1 -> soll Einträge von DbGrid2 filtern ->funzt n
 
Hi,

ich wollte zwei Paradox Datenbanken auslesen. in der einen Stehen ua. Name und KundenNummer und in der anderen BenutzerNummer und detailDaten.

ich wollte nun über eine dbGrid-komponente einen Benutzer auswählen und wenn ich nun (per TabSheet) zur 2. Tabelle wechsle sollten nur die daten vom in Tabelle 1 ausgewählten Kunden stehen.

aber der filter filtert einfach nicht. stattdessen stehen nun trotzdem alle einträge da

ich habe also nun im AfterScroll-Event von Table1 folgendes Geschrieben:

<< procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
<< begin
<< Table2.Active:=false;
<< Table2.Filter:='KdNr = ' + QuotedStr(IntToStr(Table1KdNr.Value));
<< Table2.Active:=True;
<< end;

würde mich freuen, wenn ihr mir helfen könntet.. ich habe nämlich keine ahnung, was ich da falsch gemacht haben könnt..

Helld_River 6. Sep 2004 15:11

Re: DbGrid1 -> soll Einträge von DbGrid2 filtern ->fun
 
Hi !
Warum machst du das denn überhaupt über einen Filter ?!?!?!?!?!

Benutze doch einfach die Eigenschaften MasterSource und MasterField der 2ten Tabelkomponente. Setze die einfach auf das entsprechende Feld der ersten Table-Komponente und auf die DataSource, dann brauchst du dir da überhaupt keine Gedanken mehr zu machen !

Gruß, Helld

TheConConBug 6. Sep 2004 15:35

Re: DbGrid1 -> soll Einträge von DbGrid2 filtern ->fun
 
Hui...
das ist ja mal spaßig... davon steht leider in meinem "tollen,preiswerten" delphi7 buch garnichts drinn..

danke!

aber eine frage habe ich noch: wenn ich jetzt einen kunden lösche,?,lösche ich dann gleichzeitig alle detailInformationen aus der 2. liste... oder muss ich dafür ne extra procedure schreiben, damit da keine überreste in der tabelle bleiben?

ciao..
..Con

Helld_River 6. Sep 2004 15:45

Re: DbGrid1 -> soll Einträge von DbGrid2 filtern ->fun
 
Hi !
Wenn Du Daten löscht, dann geht das ja erst mal nur auf Tabellenebene, d.h. du löscht nur einen DAtensatz. Da bei dir die Daten in 2 Tabellen (oder Datenbanken) stehen, musst du dir wohl oder übel eine Procedure schreiben !

Gruß, Helld

shmia 6. Sep 2004 16:04

Re: DbGrid1 -> soll Einträge von DbGrid2 filtern ->fun
 
Zitat:

Zitat von TheConConBug
aber eine frage habe ich noch: wenn ich jetzt einen kunden lösche,?,lösche ich dann gleichzeitig alle detailInformationen aus der 2. liste... oder muss ich dafür ne extra procedure schreiben, damit da keine überreste in der tabelle bleiben?

Wenn die Datenbank kaskadierendes Löschen oder auch Löschweitergabe beherrscht, dann brauchst du nichts programmieren.
Bei Paradox musst du dazu auf Tabelleneigenschaften gehen (in der Datenbankoberfläche) und
rechts Referenzintegrität auswählen.
Eine neue Beziehung definieren (zwischen Master- und Detailtabelle) und Aktualisierungsregel
"Weitergeben" wählen.
Allerdings muss man bei Paradox immer Angst haben, dass dabei etwas in die Hosen geht. :roteyes:

TheConConBug 9. Sep 2004 08:07

Re: DbGrid1 -> soll Einträge von DbGrid2 filtern ->fun
 
@shmia: ..das klingt lustig...aber gefährlich...
ich hatte Paradox7 benutzt, da in meinem buch so'ne anleitung war.. also mein einstieg
sozusagen.
was meinst du könnte man noch benutzen (habe viele versch. meinungen zu datenbanken
gehört/gelesen und bin immer noch nicht schlauer)

@Held_River:
erstmal danke.. die procedure is auch schon geschriebn(kein ding) aber eine sache is noch..
Zitat:

Hi !
Warum machst du das denn überhaupt über einen Filter ?!?!?!?!?!
ich kann mit deiner methode die Daten, die im dbGrid angezeigt werden nicht richtig im RaveEditor/Druck anzeigen/drucken. da wird mir immer alles aus dieser DB angezeigt, deshalb musste ich doch erstmal nen filter bei meinem bRvOnCLick()-Event (also der button, der dann die druckvorschau zeigt) einbauen

hast du vieleicht dafür auch noch ne elegantere lösung?

ciao..
..Con


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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