AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Grid - letzter Datensatz

Offene Frage von "MarcRB75"
Ein Thema von MarcRB75 · begonnen am 9. Apr 2019 · letzter Beitrag vom 9. Apr 2019
Antwort Antwort
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#1

DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 12:05
Hallo,
ich habe mit einem DB-Grid ein Darstellungsproblem:

Ich setze einen Filter in einer DB und wenn ich den Filter entferne, wird im DB-Grid der letzte Datensatz leer dargestellt, obwohl es einen letzten Datensatz noch gibt.

Setze ich wieder einen Filter, dann werden alle Datensätze angezeigt. Wenn ich ihn wieder entferne, fehlt mir die letzte Zeile.

Kennt jemand das Problem oder hat davon schon gehört? Warum wird mir der DS nicht angezeigt?

Könnte mir da bitte jemand weiterhelfen?
Miniaturansicht angehängter Grafiken
frage.jpg  
Marc
  Mit Zitat antworten Zitat
hoika

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

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 12:57
Hallo,
mache nach dem Filter setzen ein

Lösung1:
DataSet.Close;
DataSet.Open;

oder
Lösung2:
DataSet.First;

DataSet = deine Query oder Table
Heiko

Geändert von hoika ( 9. Apr 2019 um 14:25 Uhr)
  Mit Zitat antworten Zitat
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#3

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 13:39
Danke für Deine Nachricht.

Ahhh... okay ... das werde ich gleich mal versuchen.
Marc
  Mit Zitat antworten Zitat
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#4

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 14:01
Also es ist mal wieder alles sehr seltsam ....

Die ursprüngliche Lösung:
Einmal geht es, einmal nicht.

Die neue Lösung:
Bis jetzt gibt's keine Problem.
Wäre ja super, wenn es so bleibt.

Danke nochmal.
Marc
  Mit Zitat antworten Zitat
hoika

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

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 14:24
Hallo,
welche der beiden Lösungen hast du benutzt, 1 oder 2?
Heiko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#6

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 15:11
Lösung 3?

Nach dem Filtersetzen / -aufheben dem Grid sagen, es möge sich bitte neu zeichnen?

Close und Open sind sicherlich eine Lösung und bei vielen Datensätzen erhöht es vermutlich den Kaffeekonsum

Wenn ich zum Filtern schon Close und Open nutze, kann ich auch statt des Filters direkt eine per SQL entsprechend angepasste Datenmenge selektieren
  Mit Zitat antworten Zitat
hoika

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

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 15:13
Hallo,
Zitat:
Wenn ich zum Filtern schon Close und Open nutze, kann ich auch statt des Filters direkt eine per SQL entsprechend angepasste Datenmenge selektieren
Dann kann ich aber nicht das schöne AutoEdit der TTable-Komponente benutzen ..., so
Heiko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#8

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 15:19
Wieso nicht, mach' ich bei den Querykomponenten auch immer, hat immer funktioniert.

Egal ob TQuery, TADOQuery, TZQuery ...

Egal wo die Daten herkommen, bei meinen DBGrids kann ich immer im Grid die Daten bearbeiten.

Ausnahme: Man hat im SQL Daten mehrere Tabellen zusammengejoint, dann geht ein Autoedit nicht mehr bzw. beim Post fragt die Datenbank an, was das denn bitteschön soll. Teilweise funktioniert aber selbst das, wenn man im SQL sicherstellt, dass von allen betroffenen Tabellen alle Schlüsselspalten mit in der Ergebnismenge sind. (Und nein: Elegant und/oder empfehlenswert ist das nicht.)

Bei 'nem Select * from Tabelle where Spalte = :Wert klappt das wunderbar.
  Mit Zitat antworten Zitat
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#9

AW: DB-Grid - letzter Datensatz

  Alt 9. Apr 2019, 20:15
Also ich habe das jetzt anders gelöst:

Zum einen verwende ich:
DBGrid.DataSource.DataSet.EnableControls;
DBGrid.DataSource.DataSet.DisableControls;

Und dann benutze ich zwei Tabellen bei der Datenbank.
Die eine ist die "für das sichtbare Grid".

Und die 2. Tabelle, sich für das - unsichtbare Grid -. Also das erstelle ich bei der Laufzeit.
Beide filtere ich mit dem selben Filter.

Dann benutze ich die unsichtbare Tabelle, ändere, das ggf. beim Datensatz zu ändern ist und dann aktualisiere ich das
sichtbare Grid wieder und schon fehlt mir keine Zeile mehr und vor allem, die Zeile springt mir nicht mehr zur Mitte, sondern
der zu ändernde Datensatz bleibt im sichtbaren Grid dort, wo er vor der Anderung war.
Ich muss dazu aber sagen: ich ändere nur Datensätze und lösche keine oder füge neue hinzu.

(Diese Hopserei/Springerei, war ja auch schrecklich)
Marc
  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 07:48 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