Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Warnung bei doppeltem Datensatz (https://www.delphipraxis.net/44460-warnung-bei-doppeltem-datensatz.html)

elduchte 19. Apr 2005 19:42

Datenbank: Access • Version: 2000 • Zugriff über: ADO

Warnung bei doppeltem Datensatz
 
Hallo,

ich habe ein Problem, dass ich keine Daten doppelt eingeben möchte. Ich habe schon ein wenig hier im Forum geforscht, bin aber nicht so recht schlau daraus geworden:

Ich habe ein Tabelle die folgendermaßen aufgebaut ist:

lfd_Nr Name Str PLZ Ort Typ FarbCode


Die lfd_Nr ist der Primärschlüssel.

Nun möchte ich, dass der neue Datensatz mit den bereits abgelegten Datensätzen verglichen werden soll. Und zwar so:

Zuerst soll nach dem Typ gefiltert werden (denn der Typ darf doppelt sein) und dann innerhalb dieses Filters den Namen, Str, PLZ und Ort vergleichen.

Kann mir da bitte mal jemand einen Tipp geben?

Danke
Andreas

marabu 19. Apr 2005 19:55

Re: Warnung bei doppeltem Datensatz
 
Kannst du nicht ein unique constraint auf die Adress-Felder inklusive Typ legen?

elduchte 19. Apr 2005 20:11

Re: Warnung bei doppeltem Datensatz
 
Ich kenne mich in der Datenbank-Programmierung nicht so aus, das ist praktisch mein Übungsprojekt, welches ich so nebenbei mache...

Was bedeutet denn das Attribut "unique" in Verbindung mit "constraint".....

Ich finde da keine Angaben zu in meinem SQL-Buch.....

Und wenn das gehen sollte, wie stelle ich das eigentlich an? Und ab wievielen Datensätzen wird diese Überprüfung langsam?

Fragen über Fragen....

Vielleicht magst du mr noch weiterhelfen

Gruß
Andreas

marabu 19. Apr 2005 20:16

Re: Warnung bei doppeltem Datensatz
 
Hast du MS Access auf deinem Rechner installiert? Du kannst da irgenwo einen Index definieren, der die besagten Felder enthält. Dann kannst du noch ein Häkchen machen, dass der Indexeintrag eindeutig sein soll. Ich hoffe du kommst so zurecht, denn ich habe im Augenblick kein MS Access.

elduchte 19. Apr 2005 20:40

Re: Warnung bei doppeltem Datensatz
 
Ja, habe ich in der Version 2000. Komme aber damit nicht so klar. Ich dachte, das könnte man unter Delphi mit SQL abfragen....

War wohl ein Irrtum

marabu 19. Apr 2005 20:46

Re: Warnung bei doppeltem Datensatz
 
Es gibt in Access bestimmt so etwas wie einen Entwurfsmodus. In dem kann man dann die Tabellendefinition bearbeiten. Natürlich kannst du es auch mit Delphi abfragen, aber den unique index brauchst du dann doch noch. Stell dir vor du hast in einer Mehrplatzumgebung geprüft, ob der Eintrag eindeutig ist und zeitgleich mit einem zweiten User schreibst du dann deinen Satz...

elduchte 20. Apr 2005 07:05

Re: Warnung bei doppeltem Datensatz
 
Ich habe nun in Access in der Tabelle im Entwurfsmodus unter den Punkt "Indiziert" "ja (duplikate möglich) für meine Tabellenspalten eingetragen. Dabei habe ich nicht den Primärschlüssel geändert. Und wie muss ich jetzt weiter machen ?

marabu 20. Apr 2005 07:25

Re: Warnung bei doppeltem Datensatz
 
Im Toolbar (Access 2002) befindet sich ein Symbol für Indizes. Da musst du mal drauf hauen. In dem Index-Fenster willst du dann sehen:

Primärschlüssel: Lfd-Nr, Aufsteigend
MeinIndex: Name, Aufsteigend
MeinIndex: Str, Aufsteigend
MeinIndex: Plz, Aufsteigend
MeinIndex: Ort, Aufsteigend
MeinIndex: Typ, Aufsteigend

Statt MeinIndex kannst du einen fast beliebigen Namen eintragen.
Bei jedem Eintrag sollte Eindeutig=Ja festgelegt sein.
Ungewollte Indexe durch deine sonstigen Aktionen kannst du löschen.

[edit]Nur das erste Indexfeld bekommt den Indexnamen auch eingetragen![/edit]

Robert_G 20. Apr 2005 08:47

Re: Warnung bei doppeltem Datensatz
 
Ein kurzer Einwand...
Wenn du den Umgang mit DBs lernen willst ist Jet genau das FALSCHE!
Das Ding versteckt zuviel und kümmert sich einen feuchten um gängige standards an die sich sogar Querulant Oracle hält. (Und das mag was heißen :lol: )

Eine "richtige" und auch noch kostenfreie DB könnte Firebird oder PostGreSQL sein.
pgSQL hätte den Vorteil der sehr strikten Implementierung von SQL Standards und hat eine bessere Doku als FB.
Aber beide verderben den zukünftigen DB'ler nicht, wie es Jet (und schlimmer noch: Die Kombi Jet/Access :shock: ) macht... ;)


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