![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
unique?
Hi,
ich habe da ein kleines Problem. Ich habe schon euer Forum ein wenig durchsucht, aber nicht das gefunden was für mich passt. Ich arbeite mit einer Paradox Datenbank über die BDE (ja, ich weiss das die ADO Komponenten besser sind.. ich benutze in dem fall aber trotzdem die BDE)... Jedenfalls habe ich jetzt das Problem, das ich ein Unique Feld brauche. Ich habe ein ID Feld welches als Primärschlüssel auch hochzählt und irgendwo sicherlich Unique ist. Aber ich brauche noch für ein anderes Feld in dem ein String gespeichert wird, das da nix doppelt vorkommt. Ich finde nur nirgens die Möglichkeit das bei der Paradox Tabelle zu machen. Muss ich tatsächlich selbst manuell bei jedem neuen Eintrag die Datenbank durchsuchen? |
Re: unique?
Hallo Andy,
Zitat:
Zitat:
Das Durchsuchen deiner Tabelle kannst du dir dann sparen und so vorgehen:
Delphi-Quellcode:
Grüße vom marabu
begin
Table.Insert; Table.FieldByName('STRINGFELD').AsString := 'Nochmal'; try Table.Post; except ShowMessage('Doppelter Wert'); end; end; |
Re: unique?
Hi,
erstmal danke für deine Antwort. Ich habe gestern stundenlang die Datenbankoberfläche durchsucht.. ich habe sogar ein anderes Freeware Tool runtergeladen für die Datenbankverwaltung. Aber ich habe das nirgens gefunden. Auch die Hilfe hat mir leider nicht weitergeholfen. Suche ich denn richtig, wenn ich einfach nur was suche wo ich nen Haken machen kann, quasi? Danke für deinen Quellcode. Die Methode ist für mich irgendwie auch neu. Ich habe Datensätze bisher immer richtig per SQL eingefügt.. das ist also eigentlich garnicht nötig? |
Re: unique?
Hi,
in der Datenbankoberfläche findest du die Indexoptionen, wenn du beim Umstrukturieren oder Neuanlegen einer Tabelle "Sekundärindizes" aus der Combobox Tabelleneigenschaften auswählst und dann einen Index definierst oder änderst. Ob du SQL Statements für die Datenmanipulation verwendest oder es wie in meinem Beispiel machst - beides geht. So richtig Bedeutiúng bekommt diese Entscheidung aber erst, wenn du von einer local database auf einen sql server umsteigst. marabu |
Re: unique?
Hi,
also ich glaube ich hab gefunden was du meinst. Ich habe dann auch mal einen Index definiert, allerdings ohne weitere Optionen anzuklicken (Eindeutig, Groß/Kleinschreibung usw...).. Aber da hatte ich keine Wirkung. Hab direkt in der Datenbankoberfläche nen neuen Datensatz angelegt der in dem einen Feld eine Dublette hatte.. Und ich habe keine Fehlermeldung bekommen und es wurde alles angelegt. Dann habe ich versucht den Index nochmal zu ändern und "Eindeutig" mit nem haken zu versehen. Als ich das speichern wollte, bekomme ich den Fehler "Ungültiger Indextyp" ? |
Re: unique?
Hi,
wenn du deine Tabelle in der Datenbankoberfläche mit "Umstrukturieren" oder "Strukturinfo" öffnest, dann siehst du in der Titelzeile des Fenster welcher Tabellentyp vorliegt. In der Delphi Online Hilfe unter TIndexOption findest du einige Hinweise, welche Tabellentypen welche Indexoptionen unterstützen. Für Paradox-Tabellen benötigst du minimal Version 4. marabu |
Re: unique?
Hi,
Es ist definitiv Paradox 7. Und laut Delphi Hilfe wird der Typ "Eindeutig" auch unterstützt (sonst würde ich da auch keinen Sinn drin sehen).. nur eben die anderen beiden zur auswahl stehenden Typen nicht. Die brauche ich aber auch nicht. Trotzdem bekomme ich wenn ich die Option anklicke eine Fehlermeldung. Ohne die Option bekomme ich keinen Fehler, kann aber weiterhin Dublikate einfügen. Irgendwie verwirrt mich das *g* Tut mir auch leid das ich hier solche komischen, warscheinlich Anfängerfragen, stelle.. aber ich komme einfach nicht weiter.. Andy |
Re: unique?
Merke dir doch mal die Indexdefinition und den Namen, lösche den Index und lege ihn anschließend neu an. Eventuell ist ja eine Datei korrupt. Wenn du keine Paradox-Vollversion besitzt, dann kannst du hiermit reparieren:
![]() marabu |
Re: unique?
Hi,
danke.. auch für den Link. Ich muss jetzt leider zu nem Geburtstag. Aber ich werde das heute Abend weiter ausprobieren und danach nochmal schreiben ob es geht oder nicht. Andy |
Re: unique?
Hi,
also ich hab das Tool drüberlaufen lassen. Es hat keine Fehler gefunden. Aaaber, überraschung.. Danach konnte ich den Index ohne Probleme anlegen und er wurde auch gespeichert ohne das ich eine Fehlermeldung bekommen habe. NUR: Es bringt nichts. Ich kann weiterhin in der Datenbankoberfläche 2 gleiche Datensätze in dem Feld eingeben ohne das gemeckert wird. Wird alles gespeichert. Muss ich das ganze doch jedesmal per Hand durchsuchen ? :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz