Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensätze markieren? (https://www.delphipraxis.net/95184-datensaetze-markieren.html)

Meriones 2. Jul 2007 20:53

Datenbank: firebird • Version: 1.5 • Zugriff über: zeos

Datensätze markieren?
 
Hallo allerseits,


ich habe aus einem Virtual String Tree eine datensensitive Tabellen(Grid) Komponente gebastelt. Das funktioniert auch alles wunderbar.

Nun will ich das man bestimmte Datensätze in der Tabelle mit mit einer Checkbox markieren kann, so dass das Dataset anschließen durchgegangen werden kann und die markierten Datensätze verarbeitet werden können.


Meine Frage ist also:
Wie markiert man einzelne Datensätze in einem TDataset so, daß man sie auch ausserhalb der Komponente (wo sie markiert werden) als markierte Datensätze erkennen kann?

Viele Grüsse, meriones

mkinzler 2. Jul 2007 20:57

Re: Datensätze markieren?
 
Setze Bookmarks

Meriones 3. Jul 2007 10:19

Re: Datensätze markieren?
 
Danke für die Antwort,

das mit den Bookmarks hab ich mir fast schon gedacht aber weiss nicht wie man sie benutzt.
Ich muss also innerhalb meiner Komponente, beim OnCheck event (von der Checkbox) ein Bookmark auf den entsprechenden Datensatz setzen?

So wie ich das verstanden habe müsste das so irgendwie funktionieren:
Delphi-Quellcode:
//deklaration:
var
  MyBookmark: TBookmark;

//im OnCheck event:
  MyBookmark:=FDataLink.DataSet.GetBookmark;
Der Datensatz währe dann über:
Delphi-Quellcode:
FDataLink.DataSet.GotoBookmark(MyBookmark);
wieder zu erreichen?
Allerdings nur innerhalb der Komponente, da MyBookmark ja ein Objekt der Komponente ist, oder?
Wenn ich jetzt auf das Dataset mit einer anderen Komponente zugreife (z.B. ein anderes Grid), wie komme ich dann an die Bookmark infos rann? MyBookmark ist ja nicht verfügbar, weil die erste Komponente z.B. auf einer anderen Form liegen könnte?

Kann mir das jemand erklären?? :?:


Viele Grüsse, meriones

mkinzler 3. Jul 2007 11:58

Re: Datensätze markieren?
 
Es kommt darauf an, wo und wie du die liste der Lesezeichen speicherst

hoika 3. Jul 2007 12:07

Re: Datensätze markieren?
 
Hallo,

du könntest die einzelnen Ids (Primärschlüssel) der Datensätze
in eine TList schreiben
und beim Update dann einfach durchlaufen.


Heiko

Meriones 3. Jul 2007 13:10

Re: Datensätze markieren?
 
Danke nochmal für die Hilfen...

Das heißt ich muss eine gesonderte BookmarkListe mit mir rumschleppen ich kann die Datensätze nicht direkt im Dataset markieren?
Dann muss ich ja jeder Unit und Komponente die die markierten Datensätze verarbeiten soll immer das Dataset und die Bookmarkliste mitgeben :(

Tschö, Meriones

marabu 3. Jul 2007 17:20

Re: Datensätze markieren?
 
Hallo,

die Bookmarks werden eigentlich von deiner datensensitiven Komponente verwaltet und nicht "gesondert". Später übergibst du eine Referenz auf dein Grid - so kann jede Routine sich über DeinVirtualGrid.DataSource.DataSet die Datenmenge besorgen und analog zu DBGrid.SelectedRows sind dann die Bookmarks verfügbar. Auf diese Weise werden genau die Referenzen übergeben, die auch zusammen gehören.

Grüße vom marabu

Meriones 4. Jul 2007 08:07

Re: Datensätze markieren?
 
Hallo Marabu,

Danke nochmal für deine Erklärung, ich hab glaube ich langsam kapiert das ich um eine Bookmarksliste in der Komponente nicht drumherum komme.

Aber:
Zitat:

Später übergibst du eine Referenz auf dein Grid - so kann jede Routine sich über DeinVirtualGrid.DataSource.DataSet die Datenmenge besorgen und analog zu DBGrid.SelectedRows sind dann die Bookmarks verfügbar.
Genau hier liegt ja mein problem. Was ist denn wenn das Grid nichtmehr erreichbar ist (ausgeschaltet oder auf einer anderen Form) oder bereits ein anderes Dataset anzeigt? Dann hab ich zwar noch das erste Dataset aber die Bookmarks sind flöten gegangen, weil sie ja zur Komponente gehörten.

Trotzdem vielen Dank, meriones


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz