AGB  ·  Datenschutz  ·  Impressum  







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

ID im Datagrid -1

Ein Thema von Alfredo · begonnen am 2. Jul 2021 · letzter Beitrag vom 3. Jul 2021
Antwort Antwort
Alfredo

Registriert seit: 4. Mär 2008
Ort: München
274 Beiträge
 
Delphi 12 Athens
 
#1

ID im Datagrid -1

  Alt 2. Jul 2021, 11:09
Datenbank: Mariadb • Version: 10.3.10 • Zugriff über: Firedac
Ich habe in einer Testanwendung(Delphi 10.4.1) auf dem Formular

FDConnection1, FDQuery1, Datasource1, DBGrid1, DBNavigator1

Die Tabelle hat ein Feld ID(Primarykey, AUTO_INCREMENT) und NAME(Char)

Beim Einfügen(DBNavigator1 + oder FDQuery1.Insert) eines neuen Datensatzes steht in der Spalte ID -1.
Nach dem Abspeichern die richtige nächste ID.

Die Spalte ID visible no funktioniert nur im Designmodus.
Startet man das Programm ist die Spalte ID jedoch sichtbar.
  Mit Zitat antworten Zitat
hoika

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

AW: ID im Datagrid -1

  Alt 2. Jul 2021, 11:49
Hallo,
dann setze die Spaltenbreite zur Laufzeit doch auf 0.

DBGrid.Columns[0] := 0

oder so ähnlich
Heiko

Geändert von hoika ( 2. Jul 2021 um 11:55 Uhr)
  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
 
#3

AW: ID im Datagrid -1

  Alt 2. Jul 2021, 11:59
Die Spalte ID visible no funktioniert nur im Designmodus.
Startet man das Programm ist die Spalte ID jedoch sichtbar.
Einstellungen an dynamisch erzeugten Feldern und Spalten sind zur Laufzeit nicht wirksam. Dazu müssen die Felder statisch im Designer angelegt sein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ID im Datagrid -1

  Alt 2. Jul 2021, 12:13
TDataSet.Insert erstellt nur "lokal" den Datensatz/Record.
Die AUTOINC- und DEFAULT-Felder werden aber erst beim INSERT-Statement in der Datenbank gefüllt, also im DataSet.Post .
DataSet.Post schickt nur die "gefüllten" Felder beim INSERT ab. Alles was nicht explizit im Statement steht (DEFAULT/AUTOINC), wird dabei von der Datenbank gefüllt.



Du kannst aber im DataSet.AfterInsert von der Datenbank diese DEFAULT/GENERATOREN abfragen und bei dir eintragen, dann sehen auch die User das schon vor dem Post.

Die Tabellen/Feld-Definition von der Datenbank abfragen, dort das nehmen, was beim DEFAULT steht,
und dann SELECT {derTextVomDefaultDesFields} AS {FieldName}, ... .

Bedenke aber, dass bei einem CANCEL, dann eine Lücke entsteht, wenn der AUTOINC-Wert dann doch nicht verwendet wird.
$2B or not $2B

Geändert von himitsu ( 2. Jul 2021 um 12:21 Uhr)
  Mit Zitat antworten Zitat
Alfredo

Registriert seit: 4. Mär 2008
Ort: München
274 Beiträge
 
Delphi 12 Athens
 
#5

AW: ID im Datagrid -1

  Alt 2. Jul 2021, 15:50
Vielen Danke für eure Hinweise.

Im onCreate des Formulares eine Prozedure mit

DBGrid1.Columns[0].width := 0;

und die Spalte ist weg.
  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
 
#6

AW: ID im Datagrid -1

  Alt 2. Jul 2021, 17:17
Ein FDQuery1.Fields[0].Visible := False wäre da vielleicht etwas angemessener.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Alfredo

Registriert seit: 4. Mär 2008
Ort: München
274 Beiträge
 
Delphi 12 Athens
 
#7

AW: ID im Datagrid -1

  Alt 3. Jul 2021, 01:21
  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 08:24 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