![]() |
Datenbank: ADS • Version: 8.0 • Zugriff über: SQL
Table.Close und Bookmark
Hallo
was passiert mit einem Bookmark wenn ich nach dem Bookmarksetzen die Query schließe und wieder öffne. wenn ich versuche drauf zuzugreifen bekomme ich einen fehler! Mfg..Klaus |
Re: Table.Close und Bookmark
Wenn Du die ungeänderte Query schliesst und sofort wieder öffnest, dann sollte es gehen. Aber ein Bookmark ist als Pointer auf einen String definiert (jedenfalls bei ADS) und dieser kann durch das Schliessen der Datenmenge ungültig werden. Ein Bookmark ist auch keinesfalls persistent!
Bessere Lösungen:
|
Re: Table.Close und Bookmark
Das dachte ich mir schon.
Ist es mir möglich ein BsP zu posten. Danke Klaus |
Re: Table.Close und Bookmark
Hier ein Beispiel, wo Du die Auswirkungen der verschiedenen Vorgehensweisen siehst:
Delphi-Quellcode:
unit AdsBeispiel;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, adsdata, adsfunc, adstable, adscnnct; type Tta = class(TForm) AdsConnection1: TAdsConnection; AdsQuery1: TAdsQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; ButtonSaveBm: TButton; ButtonrestoreBm: TButton; CheckBoxActive: TCheckBox; CheckBoxUseBookMark: TCheckBox; procedure FormCreate(Sender: TObject); procedure CheckBoxActiveClick(Sender: TObject); procedure ButtonrestoreBmClick(Sender: TObject); procedure ButtonSaveBmClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } bm : TBookmark; Id : string; end; var ta: Tta; implementation {$R *.dfm} procedure Tta.ButtonSaveBmClick(Sender: TObject); begin bm := AdsQuery1.GetBookmark; Id := AdsQuery1.FieldByName('Id').AsString; end; procedure Tta.ButtonrestoreBmClick(Sender: TObject); begin if CheckBoxUseBookMark.Checked then begin if AdsQuery1.BookmarkValid(Bm) then AdsQuery1.GotoBookmark(bm); end else begin if id <> '' then AdsQuery1.Locate('ID', Id, []); end; end; procedure Tta.CheckBoxActiveClick(Sender: TObject); begin AdsQuery1.Active := TCheckBox(Sender).Checked; end; procedure Tta.FormCreate(Sender: TObject); begin AdsQuery1.Sql.Text := 'Select id, bkz, art, bezeich from bkz'; AdsQuery1.Active := true; Id := ''; end; end. |
Re: Table.Close und Bookmark
Ich bin begeistert...Danke und Weihnachten usw.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 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 by Thomas Breitkreuz