AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DBCtrlGrid - Neuen Satz einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

DBCtrlGrid - Neuen Satz einfügen

Ein Thema von Trafel21 · begonnen am 16. Nov 2018 · letzter Beitrag vom 24. Jan 2022
Antwort Antwort
Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#1

DBCtrlGrid - Neuen Satz einfügen

  Alt 16. Nov 2018, 09:02
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.
Miniaturansicht angehängter Grafiken
bild1.png   bild2.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: DBCtrlGrid - Neuen Satz einfügen

  Alt 16. Nov 2018, 09:13
Nimm doch einfach Append statt Insert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: DBCtrlGrid - Neuen Satz einfügen

  Alt 16. Nov 2018, 09:23
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.
  Mit Zitat antworten Zitat
Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#4

AW: DBCtrlGrid - Neuen Satz einfügen

  Alt 16. Nov 2018, 09:59
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.

Sortiert sollte es eigentlich nach den Contact_Typ (Telefon, Fax, E-Mail etc.).
Was auch funktioniert.
  Mit Zitat antworten Zitat
16. Nov 2018, 10: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

Registriert seit: 16. Nov 2018
69 Beiträge
 
#6

AW: DBCtrlGrid - Neuen Satz einfügen

  Alt 28. Nov 2018, 11:45
Edit. falscher Thread. Sorry.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: DBCtrlGrid - Neuen Satz einfügen

  Alt 24. Jan 2022, 18:53
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;
$2B or not $2B
  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 14:53 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