Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DataSet an anderes Formular übergeben (https://www.delphipraxis.net/180516-dataset-anderes-formular-uebergeben.html)

machstuhl 26. Mai 2014 10:07

Datenbank: Oracle • Version: 11 • Zugriff über: Direct Oracle Access

DataSet an anderes Formular übergeben
 
Hallo,
ich habe zwei Fenster. Auf einem wird per DataSet und DataSource ein DBGrid befüllt.
Um die Query nicht nochmal ausführen zu müssen, will ich die abgefragten Daten an das andere Formular (ebenfalls in ein DBGrid mittels DataSet->DataSource) übergeben.

Delphi-Quellcode:
procedure TForm1.uebergeben(var tods: TOracleDataSet);
begin
//
end;
funktioniert nicht, ebenso wie
Delphi-Quellcode:
Form1.OracleDataSet1 := OracleDataSet2;
hat irgendwer ne kluge idee?

vagtler 26. Mai 2014 10:09

AW: DataSet an anderes Formular übergeben
 
Wenn unsere User "funktioniert nicht" schreiben, rastet unsere Hotline regelmäßig aus...

Der schöne Günther 26. Mai 2014 10:10

AW: DataSet an anderes Formular übergeben
 
Ich frag mich auch, was denn "nicht funktioniert" ist. Wahrscheinlich "Er zeigt andere Dinge an, als ich erwartet hätte".

Der DBGrid hängt am TDataSource. Das zeigt auf ein TDataSet. Übergib doch einfach eine Referenz welches DataSet zu haben willst und bieg den TDataSource um.

machstuhl 26. Mai 2014 10:11

AW: DataSet an anderes Formular übergeben
 
sorry :oops:

es wird keine fehlermeldung ausgegeben. er füllt einfach das Dataset nicht.

egal wie rum ichs mache.

baumina 26. Mai 2014 10:24

AW: DataSet an anderes Formular übergeben
 
Versuchs mal mit

Delphi-Quellcode:
  MeineGrid.DataSource := AnderesForumlar.MeineDataSource;

machstuhl 26. Mai 2014 10:28

AW: DataSet an anderes Formular übergeben
 
Zitat:

Zitat von baumina (Beitrag 1260221)
Versuchs mal mit

Delphi-Quellcode:
  MeineGrid.DataSource := AnderesForumlar.MeineDataSource;

thx!

so nah und doch so fern.... :wall:

himitsu 26. Mai 2014 12:16

AW: DataSet an anderes Formular übergeben
 
Zitat:

Zitat von machstuhl (Beitrag 1260216)
funktioniert nicht, ebenso wie
Delphi-Quellcode:
Form1.OracleDataSet1 := OracleDataSet2;

Das ändert nur Zugriffe, welche im Code manuell auf OracleDataSet1 zugreifen.
Die Verlinkungen der Komponenten auf der Form werden davon aber nicht beeinflusst.
Ein Problem deibei entsteht, daß man im Code nun auf OracleDataSet1 zugreift, darin aber eigentlich OracleDataSet2 drin verlinkt ist, aber die Oberfläche dennoch ein (anderes) OracleDataSet1 besitzt, und die Komponenten auf der Form natürlich immernoch auf die OracleDataSet1 zugreifen.


Zitat:

Delphi-Quellcode:
procedure TForm1.uebergeben(var tods: TOracleDataSet);

Warum VAR? Du willst doch nur die Verlinkung reingeben geben und nicht die Variable verändern, welche an tods beim Aufruf von "uebergeben" übergeben wurde.

Außerdem hattest du bei dem Code natürlich vergessen zu zeigen was in "uebergeben" nun eigentlich gemacht wird.




Fazit: Das "uebergeben" (ohne VAR) war schon OK, aber du mußt es auch da natürlich der DataSource zuweisen und nicht der DataSet-Variable.


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