AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

Ein Thema von Michael Habbe · begonnen am 21. Okt 2008 · letzter Beitrag vom 24. Okt 2008
Antwort Antwort
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 21. Okt 2008, 18:09
Datenbank: ADS,PDX,... • Zugriff über: ...
Hallo Leute, Admin,

ich weiss, das dieses Crossposting nicht sehr gewünscht ist, aber ich um Beachtung des Beitrages: http://www.delphipraxis.net/internal...t.php?t=144690

Da es vielleicht viele DB-Entwickler betrifft, bitte einmal schauen und prüfen.


@admin
Dieser Beitrag kann meinetwegen geschlossen werden oder später auch gelöscht.


Danke schön


Michael
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 21. Okt 2008, 19:30
Hallo Michael,

das hört sich an wie dieses Problem http://www.delphipraxis.net/internal...nstantgardener

mfg

ConstantGardener
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 21. Okt 2008, 23:03
Hi,

schönen Dank für den Hinweis.
Da habe ich die Suche mit "DBGrid" verwendet und diesen Thread übersehen.

Habe es mal ausprobiert, wie Du es beschrieben hast. Aber ein CheckBrowseMode postet den Datensatz, welches ich nicht nicht gebrauchen kann.

Werde aber mal einen Vergleich der Sourcen von D7 und TD starten.


Michael
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 23. Okt 2008, 00:41
Ich habe mir jetzt mal die Quellen von D7 und TD vorgenommen.
Die Unterschiede sind nicht sehr groß. Zumindest was die dbgrids.pas angeht. Ob aber hier tatsächlich der Fehler liegt, das liegt ausserhalb meiner Zeit, dieses zu ermitteln.


So habe ich mir einen Workaround ausgeheckt.

Zuerst bin ich auf die neue Property OnMouseActivate gestossen, womit man das Setzen des Fokus eines Steuerelements unterbinden kann.
Z. B. in dieser Form:
Delphi-Quellcode:
procedure TForm1.DBGrid1MouseActivate(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y, HitTest: Integer;
  var MouseActivate: TMouseActivate);
begin
  if Table1.State in [dsEdit, dsInsert] then
    if HitTest = HTCLIENT then
      MouseActivate := maNoActivateAndEat;
end;
Dies ist aber sehr restriktiv, da man auch nicht mehr zu einem anderen Datensatz springen kann. Ich stellte mir schon das Telefon vor, wie es heissklingelt, weil die Kunden nicht mehr wie gewohnt ins Grid klicken können...
Eigentlich wollte ich aber nur verhindern, dass man nicht mehr darunter klicken kann. Das wird aber leider nicht unterschieden, ob man auf einen DS oder den Freiraum klickt.


Bin dann letzten Endes doch zu der Überlegung gekommen, dass es vielleicht doch am sinnvollsten ist, den Datensatz zu speichern, wenn das Grid angeklickt wird.
Delphi-Quellcode:
procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
  if Table1.State in [dsEdit, dsInsert] then
    Table1.Post;
end;
procedure TForm1.Table1AfterEdit(DataSet: TDataSet);
begin
  DBEdit1.SetFocus;
end;
Das TableAfterEdit ist wichtig, da GridEnter ja nur ausgelöst wird, wenn man auch wirklich das Grid betritt.


Das ist meines Erachtens nicht die schönste Lösung, aber immer noch besser wie verlorene Daten.


Mal gucken, was Borland so als nächstes auf Lager bereithält. Hatte schon überlegt, auf Delphi 2009 upzugraden, ich glaube, damit warte ich noch ein wenig.



Gruß
Michael
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 23. Okt 2008, 07:39
Ich würde Dir empfehlen, ein anderes Grid zu verwenden, das auch hinsichtlich seiner Grundfunktionalität wesentlich mehr kann, als das doch sehr generische TDBGrid. Ich meine z.B. Filtern, Sortieren, Spalten verschieben, ein- und ausblenden, Zeilen unterschiedlich einfärben, in Excel exportieren, mehrzeilige Anzeige eines Datensatzes, Checkboxen als Boolean-Spalten usw.

Wenn Du GUI-lastige Anwendungen schreibst, würde ich auch an eine alternative Sammlung von Eingabefeldern verwenden, die dem Kunden die Arbeit erleichtern.

Ich habe mich vor etlichen Jahren mit den Komponenten von Developer Express angefreundet, sehr viel Geld ausgegegeben, und dieses Geld nach 14 Tagen wieder eingespielt, weil ich eine 'kleine' Anwendung damit erstellt und es einem Kunden vorgeführt habe. Der hat es sofort gekauft. Aber auch so hat sich die Sammlung schnell rentiert, weil einfach die Entwicklungszeit drastisch verkürzt wird.

Ich will DevExpress nicht unbedingt in den Vordergrund stellen, denn es gibt auch die freie 'TVirtualStringTree'-Komponente, die sehr weit verbreitet ist. Sie bringt zwar keinen extra Satz an Eingabefeldern mit, ist aber unglaublich flexibel.

Weitere Kandidaten sind TMS, JVCL usw.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 24. Okt 2008, 18:44
Ich habe vor einigen Jahren mit den Quantumdingern gearbeitet.
Vollgepackt mit Funktionalität sind die natürlich erste Sahne.
Ich hatte aber glaube ich Probleme beim Filtersetzen (ja ich weiss...) auf eine große Tabelle (>300.000 DS), so dass ich das dann kurzerhand über Bord geworfen habe (war eh nur noch ein Grid).

Davon ab, müsste für diesen Fehler aber erstmal ermittelt werden, wo er überhaupt auftritt. Schließlich greifen auch Fremdkomponenten auf die VCL zurück.

Zitat:
alternative Sammlung von Eingabefeldern
Was hast Du denn da anzubieten?

Gruß
Michael
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Fehler im DBGrid, Hilfe bei der Verifizierung benötigt.

  Alt 24. Okt 2008, 19:34
Die Grids implementieren ihre Funktionalität i.a. von Grund auf selbst. Hier sollte der Fehler also in der Form nicht auftreten. Das cxGrid von Developer Express z.B. verwendet die VCL überhaupt nicht. Die Editorensammlung ist hier zu begutachten.

Der Ansatz, 300.000 Datensätze zu filtern ist per se falsch. Wozu lädst Du so viele Daten in den Hauptspeicher? Die wird sich doch niemals jemand in Gänze anschauen. Zumal dauert das doch...

Natürlich sollte man Fehler dieser Art zunächst analysieren:
Der Fehler tritt auch beim Editieren eines Datensatzes auf. Klicke im Grid auf einen Datensatz, verändere unten irgendeinen Wertdie SpeciesNo und klicke anschließend auf den freien Bereich im Grid=> gleiches Phänomen.

Noch besser: Editiere Category im Grid, drücke Tab (oder klicke auf die Spalte 'Length (cm)' im gleichen Datensatz und anschließend auf den freien Bereich im Grid nun versucht das arme Grid, den Wert aus der 'Category' in das Feld 'Length' zu speichern, was eine Exception auslöst. Mir scheint, das Teil ist Schrott.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 04:39 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