Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi aus tdatasource Data lesen (https://www.delphipraxis.net/111594-aus-tdatasource-data-lesen.html)

sniper_w 6. Apr 2008 06:26


aus tdatasource Data lesen
 
Wie kann man aus TDataSource per Code alle Daten auslesen und z.B. in ein Memo ausgeben OHNE dass man die methoden First/Next benutzt ? Also die ganze Ergebnissmenge auslesen.

sx2008 6. Apr 2008 08:48

Re: aus tdatasource Data lesen
 
Das geht nicht !!!
Sowieso ist TDataSource nur ein verbindendes Hilfsobjekt um datensensitive Steuerelemente anzubinden.
Über [TDataSource].DataSet kommt man an das TDataSet-Objekt; hier spielt die Musik.
Delphi-Quellcode:
procedure TForm1.Datasource2Memo(ADatasource:TDataset; Amemo:TMemo);
var
  ds : TDataset;
begin
  ds := ADatasource.Dataset;
  ds.First;
  while not ds.Eof do
  begin
    Amemo.lines.Add(ds['Feld1'] + #9 {<= Tab} + ds['Feld2']);
    ds.next;
  end
;

Der.Kaktus 6. Apr 2008 08:56

Re: aus tdatasource Data lesen
 
Zitat:

Zitat von sniper_w
Wie kann man aus TDataSource per Code alle Daten auslesen und z.B. in ein Memo ausgeben OHNE dass man die methoden First/Next benutzt ? Also die ganze Ergebnissmenge auslesen.

@sx2008 Er schrieb OHNE First/Next :roll:

sx2008 6. Apr 2008 09:06

Re: aus tdatasource Data lesen
 
Zitat:

Zitat von Der.Kaktus
Zitat:

Zitat von sniper_w
Wie kann man aus TDataSource per Code alle Daten auslesen und z.B. in ein Memo ausgeben OHNE dass man die methoden First/Next benutzt ? Also die ganze Ergebnissmenge auslesen.

@sx2008 Er schrieb OHNE First/Next :roll:

Und ich schrieb "das geht nicht" DREI AUSRUFEZEICHEN.

Der.Kaktus 6. Apr 2008 09:18

Re: aus tdatasource Data lesen
 
@sx2008 ups :shock: ...OK... :cheers: Schuldigung *g*

sniper_w 6. Apr 2008 11:03

Re: aus tdatasource Data lesen
 
Zitat:

Zitat von sx2008
Das geht nicht !!!

Wenn du 100% sicher bist, dann bitte noch einmal bestätigen. Irgendwie muss sich die DBGrid auch die Daten holen, nur ich habe jetzt hier nicht die Sources.
Danke auf jedem Fall.

Hansa 6. Apr 2008 11:09

Re: aus tdatasource Data lesen
 
Die verwenden "DataLinks". Nachzulesen bei Marco Cantu oder in DBGrids.pas. :mrgreen:

sx2008 6. Apr 2008 13:58

Re: aus tdatasource Data lesen
 
Zitat:

Zitat von sniper_w
irgendwie muss sich die DBGrid auch die Daten holen, nur ich habe jetzt hier nicht die Sources.

Das DBGrid versetzt das DataSet in einen speziellen Status, in dem keine OnScroll-Events ausgelöst werden. TDataset.State hat dann den Wert dsBlockRead.

Ausserdem merkt sich das DBGrid die aktuelle Position im Dataset (TBookmark).
Das Grid bewegt sich im Dataset über die Move() - Methode. Das ist aber nur ein kleine Erweiterung zu Prev() und Next() und im Grunde das Gleiche.
Hat das Grid seine Daten, wird auf den Bookmark gesprungen und TDataset.State wieder nach dsBrowse zurückgesetzt.

Wenn man mehrere/alle Records aus dem Dataset holen möchte, sollte man vorher [TDataset].DisableControls aufrufen und am Ende EnableControls.
Man könnte auch statt DisableControls das Property BlockReadSize auf einen positiven Wert setzen, aber das ist eher für Leute, die gerne experimentieren.

sniper_w 6. Apr 2008 15:59

Re: aus tdatasource Data lesen
 
Das wollte ich wissen. Einfach danke.
Immernoch das beste Delphi-Forum !


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