AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi EDateBaseError: Feld ID kann nicht verändert werden
Thema durchsuchen
Ansicht
Themen-Optionen

EDateBaseError: Feld ID kann nicht verändert werden

Ein Thema von ereetzer · begonnen am 1. Apr 2008 · letzter Beitrag vom 1. Apr 2008
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: EDateBaseError: Feld ID kann nicht verändert werden

  Alt 1. Apr 2008, 11:09
Zitat von ereetzer:
Ja, habe AutoInc Felder benutzt. Das ist der Fehler? Also sollte ich dann die ID-Felder besser manuell mit Werten füllen?
Ja, das ist ein Problem, vorallem bei Master-Detail-Tabellen.
Angenommen du erzeugst einen neuen Datensatz in der Mastertabelle.
Dann darf man den Wert des AutoInc-Feldes nicht angeben, das macht die Datenbank.
Nur blöd, jetzt hast du einen neuen Datenssatz eingefügt und kennst den Primärschlüssel nicht !!
Man müsste den zuletzt eingefügten Datensatz nochmals lesen.
Da man aber den Primärschlüssel nicht kennt ist es eine unsichere Sache, da man dann einen Ersatzschlüssel braucht um den zuletzt eingefügten Datensatz zu erkennen.
Wie man es dreht und wendet: AutoInc-Felder sollte man unbedingt vermeiden, wenn man den Primärschlüssel noch für eine Detailtabelle braucht.



Zitat von ereetzer:
Zum besseren Verständnis: warum sollte ich die Bezeichnung DataModule weglassen? Ich konnte nicht feststellen, daß dadurch irgendwas nicht funktionieren würde?
1.) es ist unnötig, da ja der versteckte Parameter self vorhanden ist
2.) es ist regelrecht falsch. Wenn es mehrere Instanzen deines Datenmoduls geben würde, dann würdest du immer nur auf eine bestimmte Instanz zugreifen.
Es gibt zwar nur ein Datenmodul, aber du solltest dir solche falschen Zugriffe gleich abgewöhnen.
Bei mehreren Formularen der gleichen Klasse kann dies andernfalls ganz bösartige Fehler ergeben.
Andreas
  Mit Zitat antworten Zitat
 


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 01:23 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