AGB  ·  Datenschutz  ·  Impressum  







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

unique?

Ein Thema von Sanguis · begonnen am 19. Sep 2005 · letzter Beitrag vom 22. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#1

unique?

  Alt 19. Sep 2005, 21:43
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
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?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: unique?

  Alt 20. Sep 2005, 06:34
Hallo Andy,

Zitat von Sanguis:
Ich habe schon euer Forum ein wenig durchsucht
ist doch auch dein Forum - oder?

Zitat von Sanguis:
Jedenfalls habe ich jetzt das Problem, das ich ein Unique Feld brauche.
Du kannst bei Paradox Tabellen nicht einfach einem Feld das Attribut UNIQUE zuweisen. Ab Paradox Version 5 wird aber das Indexattribut ixUnique unterstützt, welches beim Primärindex automatisch gesetzt wird. Du kannst also für dein String-Feld einen Sekundärindex definieren, den du als eindeutig festlegst. Das geht z.B. in der Datenbankoberfläche oder schau mal in der Delphi Online Hilfe unter TTable.AddIndex und TIndexOption.

Das Durchsuchen deiner Tabelle kannst du dir dann sparen und so vorgehen:

Delphi-Quellcode:
begin
  Table.Insert;
  Table.FieldByName('STRINGFELD').AsString := 'Nochmal';
  try
    Table.Post;
  except
    ShowMessage('Doppelter Wert');
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#3

Re: unique?

  Alt 20. Sep 2005, 11:44
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?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: unique?

  Alt 20. Sep 2005, 11:52
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
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#5

Re: unique?

  Alt 20. Sep 2005, 12:14
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" ?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: unique?

  Alt 20. Sep 2005, 12:22
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
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#7

Re: unique?

  Alt 20. Sep 2005, 12:37
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: unique?

  Alt 20. Sep 2005, 12:49
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: klick

marabu
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#9

Re: unique?

  Alt 20. Sep 2005, 12:57
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
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#10

Re: unique?

  Alt 21. Sep 2005, 00:28
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 ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:40 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