Entwickler-Ecke

Datenbanken - Index schreibgeschützt???


foxy - Fr 24.01.03 13:19
Titel: Index schreibgeschützt???
hi ich habe manuell in der Datenbankoberfläche ein Index erstellt nun sagt der wenn ich einen neuen datensatz eingebe index ist schreibgeschützt was ist das?? :?


opfer.der.genauigkeit - Fr 24.01.03 13:23

Versuchst du nen Wert zu ändern oder nen neuen Eintrag vorzunehmen?

Ersteres dürfte sich schwierig gestallten, wenn du nicht weißt wie man nen Index manuell neu aufbaut. (sollte der gleiche sein wie vorher)


foxy - Fr 24.01.03 13:30

ich will doch einfach nur meine db sortieren :( .... ja habe einen eintrag gemacht


opfer.der.genauigkeit - Fr 24.01.03 14:23

Eigentlich sollte deine Datenbank sich schon sortieren lassen.
Zumindest was die anderen Zeilen bis auf die erste betrifft.

Ich glaub üder den ersten Eintrag in deiner Datenbank wird der Index aufgebaut.
Deshalb lohnt es sich dort normalerweise nen PrimaryKey zu verwenden.

Und wenn das nicht der Grund ist, dann prüf mal ob deine Datenbank von einem Programm grad benutzt wird od. anders geöffnet ist.


smiegel - Fr 24.01.03 14:36

Hallo,

@foxy

was hast Du für einen Index erstellt. Was für eine DB? Paradox oder DBF? Ist der Index gewartet oder ein Zähler? Machst Du Append oder Edit bevor Du Daten in die DB schreibst? Wird die DB evtl. im ReadOnly-Modus geöffnet? :?!?:


foxy - Fr 24.01.03 14:37

also sonstwo benutzt wird sie nicht ... deswegen kann ich mir das auch nicht erklären .... :?
ich weis ja auch nicht was das ist ich sitz da schon den ganzen tag dran ...

was für options muss ich den bei dem index eingeben ixPrimary was n och?


grayfox - Fr 24.01.03 22:11

hallo heiko!

eigentlich genügt 'ixPrimary', ausser der index soll eindeutig auch noch sein, dann kannst ein 'ixUnique' hinzufügen..


Quelltext
1:
 Add('', 'Field1', [ixPrimary, ixUnique]);                    


unter 'TIndexOptions' findest eine beschreibung in der OH

mfg, stefan


foxy - Mo 27.01.03 09:17

hmm also ich habe Paradox DB und habe den index einfach manuell eingefügt mit hilfe der dboberfläche.... sonst hab ich nichts gemacht dann den index gesetzt und fertig war aber ich kann mit dem DBnavigator nix einfügen....


grayfox - Mo 27.01.03 18:41

hallo heiko!
Zitat:
und habe den index einfach manuell eingefügt

wie hast ihn eingefügt? hoffentlich ist es das erste feld in deiner tabelle und du hast lediglich in der spalte 'schlüssel' auf die leertaste gedrückt. danach siehst du dort ein sternchen. welches feld hast als indexfeld genommen? und für welchen feldtypen ist es definiert?

wenn du jetzt die tabelle in der DBO öffnest und im menü auf 'tabelle - daten editeren' klickst, solltest schon werte eintragen können. gib ein paar werte durcheinander ein, dann siehst, ob nach dem index sortiert wird und ein paar doppelte, damit ein Indexfehler auftaucht.

Zitat:
dann den index gesetzt

wo? wie? was? warum? wobei? ;) einen primär-index brauchst im OI des tables nicht eintragen, das weiss delphi automatisch. nur sekundärindizes werden dort vermerkt.

leider kann ich deinen fehler nicht reproduzieren, daher ist es am einfachsten, du löscht das sternchen und setzt es nochmal neu. dann muss es aber klappen...

und wie willst du mit dem navigator was einfügen? lässt sich mit den cursortasten im DBGrid kein neuer eintrag anlegen?

mfg, stefan


foxy - Di 28.01.03 10:43

japp geht soweit nur er bringt die kleinbuchstaben am ende.... wie kann ich das machen, das er diese eben nach buchstaben sortiert, aber nicht auf klein/Grossschreibung achtet?


grayfox - Di 28.01.03 17:38

hallo foxy! :)

freut mich, dass es soweit geht...
bei meinem table ist es genau umgekehrt. reiht er die kleinen buchstaben vor die grossen.
bist du ganz sicher, dass du auch vom primärindex und nicht vom sekundärindex redest?

beim händischen erstellen eines tables ist der parameter [ixCaseInsensitive] beim
primären index nicht möglich, nur bei sekundärindizes...

mfg, stefan