![]() |
Datenbank: MySQL • Version: 5.5 • Zugriff über: REMObject
Lazarus TDBGrid Scrol funktion
Hallo zusammen
Ich habe in meiner Anwendung ein TDBGrid und alles funktioniert einwandfrei. Die Datenbank ist im Internet. Das Problem ist das wenn ich im Grid Scrolle wird sofort der nächste Datensatz geladen. ( In allen dazugehörigen Edit Feldern. ) Das ist bei einer lokalen DB ok aber hier weniger.:wink: Habe das TKDBGrid getestet, welches erst beim auswählen eines Eintrags im Grid die Daten lädt. ![]() Ist dies nicht auch mit der normalen TDBGrid möglich? |
AW: Lazarus TDBGrid Scrol funktion
Gibt es den generell eine Routine oder sowas, dass die Felder in den Edits füllt, wenn du im Grid was auswählst? Wie machst du das? Denn wenn das normale DBEdits sind, die an der selben DataSource hängen wie beim Grid, dann muss doch beim Datensatzwechsel nichts nachgeladen werden.
|
AW: Lazarus TDBGrid Scrol funktion
Zitat:
|
AW: Lazarus TDBGrid Scrol funktion
Verstehe ich nicht: Genau das passiert doch, wenn du einen Eintrag im DBGrid anwählst – vorausgesetzt, DBGrid und DBEdits hängen am selben DataSource. Sobald eine Datenmenge aktiv ist, existiert auch ein Datensatz-Zeiger. Gewöhnlich zeigt der beim Aktivieren einer Datenmenge auf den ersten Record, also den Record mit der RecNo 1. Was also meinst du genau, wenn du schreibst: "... wenn ich im Grid Scrolle wird sofort der nächste Datensatz geladen." Das ist doch genau das Verhalten, das du hier forderst:
Zitat:
Das Scrollen im DBGrid entspricht einer Weiterbewegung des Datensatzes. Wenn du ein anderes Verhalten wünschst, dann mußt du auf DBGrid verzichten und StringGrid verwenden. Oder du bastelst dir dein eigenes DBGrid, das beim Scrollen keinen Datensatzwechsel auslöst. Wenn es dir jedoch lediglich darum geht, unnötigen Traffic zu vermeiden, dann halte die erforderliche Datenmenge im Speicher vor. Gewöhnlich gibt es dafür das Property FetchAll im jeweiligen TQuery oder TDataSet: Damit holst du alle Datensätze auf einmal ab. Voraussetzung ist natürlich, daß du über ausreichend Ram verfügst. |
AW: Lazarus TDBGrid Scrol funktion
Zitat:
Das StringGrid wäre dann eine Variante. Dachte mir nur wenn sich da "normale" verhalten des DBGrid das beim scrollen automatisch der Datensatz-Zeiger "mit bewegt" wird anpassen liesse wäre es ein schritt weniger.. |
AW: Lazarus TDBGrid Scrol funktion
Jetzt sag doch mal: Ging es dir nicht in erster Linie darum, unnötigen Traffic zu vermeiden, weil die Datenbank ja nur über eine Internetverbindung erreichbar ist? Zumindest hatte ich den Eindruck, da du ja oben im Eingangsposting geschrieben hast: "Das ist bei einer lokalen DB ok aber hier weniger." Dann wäre die Sache mit dem datenzeigerbewegenden DBGrid nämlich wurscht, weil du dann andere Lösungen ins Auge fassen könntest.
|
AW: Lazarus TDBGrid Scrol funktion
Zitat:
Zitat:
|
AW: Lazarus TDBGrid Scrol funktion
Zitat:
![]() Zitat:
|
AW: Lazarus TDBGrid Scrol funktion
Zitat:
Zitat:
Zitat:
Werde mich halt ein wenig mit dem TKDBGrid auseinandersetzten. Shalom Manfred |
AW: Lazarus TDBGrid Scrol funktion
Zitat:
Zitat:
Abgesehen davon verstehe dich dich noch immer nicht: Wenn du in einem DBGrid einen Record darstellen willst, dann muß der doch zuvor aus der Datenbank geladen werden. Kannst du das nicht nachvollziehen? Du kannst doch keinen Record im DB-Grid anklicken, der noch gar nicht aus der Datenbank geholt wurde! Wenn DB-Edits, die mit demselben Datasource verbunden sind, wie das DBGrid, mit dessen Hilfe du durch die Records blätterst, den neu angewählten Record anzeigen, dann beziehen sie ihre Daten aus demselben zugrundeliegenden Query wie das DBGrid. Dabei kommt es, wie bereits erwähnt, auf die Einstellungen der Properties an, ob beim Scrollen Daten nachgeladen werden müssen oder nicht. Das mit dem Traffic ist selbstverständlich so zu verstehen, daß unter Umständen bei jedem Datensatzwechsel Daten über's Internet angefordert werden müssen, was die Bedienbarkeit einer Anwendung verschlechtern würde. Werden dagegen alle Daten gleich beim Programmstart geladen, Änderungen an den Tabellen zwischengespeichert und diese auf einmal z.B. während eines Idle-Zustands in der entfernten Datenbank aktualisiert, bleibt die Bedienbarkeit des Programms weitgehend erhalten. Ich hoffe, mich diesmal verständlich genug für dich ausgedrückt zu haben und daß jemand anderes herauszufinden in der Lage ist, worum's hier wirklich geht. Ich fühle mich davon überfordert und gebe auf. :cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 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