Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TDataset.Bookmark oder TDataset.GetBookmark verwenden ?????? (https://www.delphipraxis.net/113268-tdataset-bookmark-oder-tdataset-getbookmark-verwenden.html)

QuickAndDirty 5. Mai 2008 14:13

Datenbank: Alle • Zugriff über: native

TDataset.Bookmark oder TDataset.GetBookmark verwenden ??????
 
Hallo,
ich hab mal ne Frage,....

Rate ich da richtig wenn ich denke das der Vorteil von TDataset.Bookmark ist das ich kein FreeBookmark benötige?

Das wäre recht angenehm wenn das über eine art Referenzcounter passiert (Strings funktionieren so, oder?)

QuickAndDirty 5. Mai 2008 15:48

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Titel geändert

Phoenix 5. Mai 2008 15:50

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Zitat:

Zitat von QuickAndDirty
Titel geändert

Dann hättest Du auch gleich die zig überflüssigen Fragezeichen entfernen können :roll:

QuickAndDirty 5. Mai 2008 16:29

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
XD
Hast du ne Ahnung vom Thema,... zufällig?

marabu 5. Mai 2008 16:44

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Hallo,

Zitat:

Zitat von QuickAndDirty
... Rate ich da richtig wenn ich denke das der Vorteil von TDataset.Bookmark ist das ich kein FreeBookmark benötige? ...

gut geraten.

Grüße vom marabu

Peinhard 5. Mai 2008 19:07

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Es sollte aber auch klar sein, dass sich TDataset.Bookmark bei jedem Datensatzwechsel ebenfalls verändert. Wenn man sich also was 'merken' will, dann muss man doch wieder mit Get, GoTo und Free arbeiten.

marabu 5. Mai 2008 20:11

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Hallo,

GetBookmark() besorgt den benötigten Speicherplatz für das Bookmark mit GetMem() vom Heap, deshalb muss dieser Speicher irgendwann mit FreeBookmark() wieder freigegeben werden.

TDataSet.Bookmark benutzt einfach einen String zum Speichern derselben Information. Der Speicherplatz für Strings wird von Delphi ohne unser Zutun verwaltet. Das Lesen der Property entspricht GetBookmark(), das Schreiben entspricht GotoBookmark(), FreeBookmark() entfällt.

Freundliche Grüße

QuickAndDirty 6. Mai 2008 08:35

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Na das ist ja genau das was ich suche. Ich kann also z.b. jeden Datensatz der getrecord passiert bookmarken ohne die freigaben verwalten zu müssen und habe dennoch kein Memoryleak es sei denn ich stelle mich blöd an.

QuickAndDirty 6. Mai 2008 11:24

Re: TDataset.Bookmark oder TDataset.GetBookmark verwenden ??
 
Wenn man mit sharemem arbeitet funktioniert das nicht ganz so gut kann das sein?

Ich merke mir das Bookmark in einer Anwendung die holt es sich aus einer dll.

wenn ich nun das TDataset aus der DLL zerstöre muss ich zuvor alle Bookmark strings
:= ''
setzen sonst hagelt es Zugriffsverletzungen. Also muss ich die Bookmarks schon irgendwie verwalten so oder so.


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