Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBCtrlGrid - Neuen Satz einfügen (https://www.delphipraxis.net/198584-dbctrlgrid-neuen-satz-einfuegen.html)

Trafel21 16. Nov 2018 08:02

DBCtrlGrid - Neuen Satz einfügen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,

ich hoffe jemand kann mir weiter helfen. Ich hab innerhalb eines Frames ein DBCtrlGrid eingefügt um mir Daten aus meiner Datenbank bearbeiten zu können. (Siehe Bild1)

Mit dem Blauen + Wird ein neuer Datensatz dem CtrlGrid hinzugefügt. Das Problem ist, der neue Datensatz wird über über dem + eingefügt. (Siehe Bild2)

Gibt es eine Möglichkeit dem CtrlGrid zu sagen, es soll bei einem Insert, den Datensatz darunter einfügen? Ich verwende Firebird 2.5.

Beim + Imageclick wird folgendes ausgelöst.

Code:
  if IB_CONTACT.State in dsEditModes then
    IB_CONTACT.Post;
  lContact_type_inckey:= IB_CONTACTCONTACT_INCKEY.AsInteger;
  IB_CONTACT.Insert;
  IB_CONTACTAfterEdit(IB_CONTACT);
  IB_CONTACTCONTACTTYPE_INCKEY.AsInteger := lContact_type_inckey;
IB_CONTACTAfterEdit() setzt nur Pflichtfelder in die Datenbank.
IB_Contact ist das Dataset.

Uwe Raabe 16. Nov 2018 08:13

AW: DBCtrlGrid - Neuen Satz einfügen
 
Nimm doch einfach Append statt Insert.

TigerLilly 16. Nov 2018 08:23

AW: DBCtrlGrid - Neuen Satz einfügen
 
Append fügt ganz am Ende ein, as ist hier möglicherweise nicht erwünscht. Vielleicht so:

Code:
...
Next;
Insert;
...
Besser wäre es, wenn es ein Kriterium für die Reihenfolge gäbe, zB Zeitpunkt oder eine laufende Nummer.

Trafel21 16. Nov 2018 08:59

AW: DBCtrlGrid - Neuen Satz einfügen
 
Vielen Dank TigerLilly. Genauso wollte ich es. :) Jetzt wird bei + Betätigung ein Datensatz direkt darunter eingefügt.
Nur kam noch ein Problem hinzu - bei Bestätigter DB Transaktion aber direkt an das Ende des Grids. Öffne ich das Fenster erneut, ist es aber wieder richtig sortiert. :lol:

Sortiert sollte es eigentlich nach den Contact_Typ (Telefon, Fax, E-Mail etc.).
Was auch funktioniert.

DP-Maintenance 16. Nov 2018 09:18

Dieses Thema wurde am "16. Nov 2018, 10:18 Uhr" von "Luckie" aus dem Forum "Algorithmen, Datenstrukturen und Klassendesign" in das Forum "Datenbanken" verschoben.

Trafel21 28. Nov 2018 10:45

AW: DBCtrlGrid - Neuen Satz einfügen
 
Edit. falscher Thread. Sorry.

himitsu 24. Jan 2022 17:53

AW: DBCtrlGrid - Neuen Satz einfügen
 
Ich weiß, ein bisschen alt, aber falls mal wieder wer danacht sucht...

Nur Next und dann Insert kann auch nicht immer passen, denn wenn es schon der letzte Datensatz ist, würde es doch nicht danach gemacht,
also müsste man dann wohl doch wieder Append verwenden.

Delphi-Quellcode:
Dataset.Next;
if Dataset.EoF then
  Dataset.Append
else
  Dataset.Insert;


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