Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid zur Laufzeit aktualisieren (https://www.delphipraxis.net/6463-dbgrid-zur-laufzeit-aktualisieren.html)

jschade 11. Jul 2003 13:05


DBGrid zur Laufzeit aktualisieren
 
hi leute,

bin neu hier. hab nämlich folgendes problem und suche hilfe.
also, ich hab ein formular in zwei teile geteilt.

1. im oberen teil werden daten in verschiedene tabellen eingetragen (mit hilfe von dblookupcombobox(en) habe ich diese "verknüpft". mit hilfe der dbnavigator kann ich diese problemlos einpflegen.

2. im unteren teil werden diese daten (aus datenbank durch adoquery ausgewählt) in einem dbgrid dargestellt. dieses dbgrid möchte ich aktualisiert bekommen, wenn ich änderungen aus dem oberen teil übernehme, oder evtl durch einen zusätzlichen button die aktualisierung ausführen.

wie kann ich dieses dbgrid zur laufzeit aktualisieren?

danke für eure hilfe!

mfg jan :?:

TimmA 11. Jul 2003 13:26

Re: DBGrid zur Laufzeit aktualisieren
 
Hi,

evtl. über den Refresh-Button dees DBNavigator's ?

jschade 11. Jul 2003 13:55

Re: DBGrid zur Laufzeit aktualisieren
 
hab ich schon versucht. als datasource gebe ich meine adoquery an. wenn ich dann zu laufzeit den refresh-button betätige bekomme ich folgende meldung: "Insufficient key column information for updating or refreshing."

Niko 11. Jul 2003 14:16

Re: DBGrid zur Laufzeit aktualisieren
 
Probier mal die Methode repaint des DBGrids. Ich weiß allerdings nicht ob dadurch auch die Daten neu gelesen werden.

Sharky 11. Jul 2003 14:27

Re: DBGrid zur Laufzeit aktualisieren
 
Zitat:

Zitat von Niko
Probier mal die Methode repaint des DBGrids. Ich weiß allerdings nicht ob dadurch auch die Daten neu gelesen werden.

Neu eingelesen wird über die Refresh Funktion des Grid.
Aber das Problem liegt wohl tiefer da er ja eine Fehlermeldung bzgl. des Schlüssels bekommt.

Hast Du schon einmal versucht deine Query die das Grid mit Daten versorgt einfach zu schließen und dann wieder zu öffnen?

Niko 11. Jul 2003 15:26

Re: DBGrid zur Laufzeit aktualisieren
 
Zitat:

Zitat von Sharky
Neu eingelesen wird über die Refresh Funktion des Grid.

Zumindest bis Delphi 4 ruft TDBGrid.Refresh lediglich TDBGrid.Repaint auf.
Falls diese Methoden nicht funktionieren, führt auf jeden Fall die Refresh-Methode der zugrundeliegenden Datenmenge zum erneuten Abrufen der Daten.
Was die Fehlermeldung anbelangt hast du sicher damit recht, dass dieses Problem wo anders liegt.

jschade 14. Jul 2003 08:20

Re: DBGrid zur Laufzeit aktualisieren
 
vielen dank leute, hab's dank eurer hilfe hinbekommen.
binde die aktualisierung vorübergehend an nen butten. bei klick führt er dann nur folgendes aus:

Code:
procedure TSchulungen.Button1Click(Sender: TObject);
begin
ADOQuery1.Requery();
DBGrid1.Repaint;
end;
und schon funktionierts :D

tauchen bestimmt noch 'n paar fragen auf, also bis denne...

...und nochmal vielen dank!

struppelohr 2. Jun 2005 10:02

Re: DBGrid zur Laufzeit aktualisieren
 
wofür steht das requerey?

shmia 2. Jun 2005 10:13

Re: DBGrid zur Laufzeit aktualisieren
 
Zitat:

Zitat von jschade
bei klick führt er dann nur folgendes aus:
Code:
procedure TSchulungen.Button1Click(Sender: TObject);
begin
ADOQuery1.Requery();
DBGrid1.Repaint;
end;
und schon funktionierts :D

DBGrid1.Repaint ist überflüssig.
Das DBGrid merkt von selbst, dass sich die unterliegene Datenmenge geändert hat.


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