AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensätze markieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Datensätze markieren?

Ein Thema von Meriones · begonnen am 2. Jul 2007 · letzter Beitrag vom 4. Jul 2007
Antwort Antwort
Meriones

Registriert seit: 25. Feb 2007
33 Beiträge
 
#1

Datensätze markieren?

  Alt 2. Jul 2007, 21:53
Datenbank: firebird • Version: 1.5 • Zugriff über: zeos
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datensätze markieren?

  Alt 2. Jul 2007, 21:57
Setze Bookmarks
Markus Kinzler
  Mit Zitat antworten Zitat
Meriones

Registriert seit: 25. Feb 2007
33 Beiträge
 
#3

Re: Datensätze markieren?

  Alt 3. Jul 2007, 11:19
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:
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Datensätze markieren?

  Alt 3. Jul 2007, 12:58
Es kommt darauf an, wo und wie du die liste der Lesezeichen speicherst
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Datensätze markieren?

  Alt 3. Jul 2007, 13:07
Hallo,

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


Heiko
Heiko
  Mit Zitat antworten Zitat
Meriones

Registriert seit: 25. Feb 2007
33 Beiträge
 
#6

Re: Datensätze markieren?

  Alt 3. Jul 2007, 14:10
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Datensätze markieren?

  Alt 3. Jul 2007, 18:20
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
  Mit Zitat antworten Zitat
Meriones

Registriert seit: 25. Feb 2007
33 Beiträge
 
#8

Re: Datensätze markieren?

  Alt 4. Jul 2007, 09:07
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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