AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stringgrid oder dbgrid

Ein Thema von Luckner · begonnen am 19. Mär 2015 · letzter Beitrag vom 21. Mär 2015
 
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Stringgrid oder dbgrid

  Alt 19. Mär 2015, 13:26
@Luckner:

Firebird erzeugt eine Id für einen neuen Record automatisch, wenn man das beim Erstellen der Tabelle angegeben hat: Im IbExpert beim Erstellen des Id-Feldes einfach die CheckBox AI im Feldeditor anklicken, danach erscheint eine Dialogbox, in der du Generator, Procedure und Trigger erstellst. Voreingestellt ist der Trigger auf BeforeInsert, du kannst aber auch AfterInsert wählen, was aber nicht ratsam und auch nicht notwendig ist. Meiner Erfahrung nach wird ein erzeugter Generatorwert wieder gelöscht, wenn auf ein Append ein Cancel folgt, wenn du also den neu erzeugten Record verworfen hast. Beim Löschen von Records stellt der Generator den gelöschten Id-Wert natürlich nicht mehr zur Verfügung, da er einfach nur hochzählt (incrementiert).

Dein Sparsamkeitsgedanke hinsichtlich der Generatorwerte ist völlig sinn- und zwecklos. Du wirst wohl kaum die Anzahl der Aufträge erreichen, um hier auch nur bei Integer (über 4 Milliarden Aufträge) an die Grenze zu kommen, bei BigInt schon gar nicht – es sei denn, deine Lebenserwartung beträgt das Vielfache des Durchschnittsmenschen, so ein paar tausend Jahre würdest du wohl brauchen

Firebird-Datentypen

Dein Problem mit dem DBGrid und der angeblich notwendigen temporären Tabelle habe ich nicht wirklich verstanden. Aber ich versuch's mal:

Wenn du via DBGrid eine Tabelle anzeigen läßt, du aber die einzelnen Felder in Edits bearbeiten willst, mußt du selbst dafür sorgen, daß der Anwender eben nur in den Edits arbeiten kann. Dazu versetzt du das DBGrid vor dem Bearbeiten in den Disabled-Mode (MyDBGrid.Enabled := False), nach Post oder Cancel wieder Enabled := True. Die Editfelder setzt du für gewöhnlich auf ReadOnly := True, das Grid ebenfalls. Im Edit-Modus setzt du die Editfelder auf ReadOnly := False.

Sollte das DBGrid die Änderungen nicht automatisch übernehmen, kannst du mit einem MyQuery.Refresh nachhelfen. Befinden sich in deiner Tabelle ForeignKeys, die auf Einträge in Subtabellen verweisen, verwendest du für das DBGrid ein View und stellst in dessen AfterScroll-Behandlung sicher, daß ein Scrollen im View stets den jeweiligen Record in der Ursprungstabelle selektiert.

Geändert von Perlsau (19. Mär 2015 um 13:35 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:25 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-2025 by Thomas Breitkreuz