Hi Mechtilde,

es freut mich, dass Du Dich auch zu diesem Thema äusserst.

Mechtilde schrieb:
Hallo Marino,
Marino Salvalaggio schrieb:
Hi,

habe mir  das Ganze noch mal durchdacht.

Bei MS-Access wird in der Regel erst inkrementiert, wenn die erste Zeile
gefüllt ist und mit "Rtn" geschlossen wird, bez. wenn mit "Tab" aus dem
letzten Feld der Zeile herausgesprungen wird.

Auch bei der internen HSQL DB von Base wird erst inkrementiert, wenn der
Datensatz verlassen wird.

Das hatte ich auch angenommen, konnte mir nur nicht erklären, warum das Zeitweilig zu versagen scheint.... In der Zwischenzeit habe ich das Ganze soweit eingekreist, dass dieses Verhalten nur bei zweispaltigen Tabellen auftritt.

Dabei erscheint nun im Auto-Feld der nächsten Zeile bereits die nächste
ID-Nummer.
Diese Aussage gilt bei MS-Access.

Bei mir erscheint dort (bei Verwendung der internen HSQl-DB) "<AutoFeld>".

Bei OO-Base entspricht es auch bei mir genau Deiner Aussage. Das war ja der Grund meiner Bemerkung, dass ich nach Korrekturen zum Teil nicht mehr wusste, auf welche Stelle der Zeiger verweist.
Was aber grundsätzlich (auch bei Access) fehlt ist die Möglichkeit,
durch eine "Funktion" alle ungenutzten ID's generell zu löschen, d.H.
den Zähler zu "nullen" und eine erneutes Durchnummerieren zu erzwingen.
Wie ich durch Thomas erfahren habe, ist die Funktion bei MS-Access zu dem Teil erfüllt, dass das "Nullen" bei einer leeren Tabelle möglich ist. Was also bedingt, dass alle Datensätze gelöscht sein müsse. Da kann man ja gleich so weiterfahren, die Tabelle löschen und neu erstellen... :-P

Das ist und wird bei relationalen Datenbank-Management-Systemen nicht
ohne Weiteres möglich werden.

Dieses - von Dir gewünschte Verhalten - steht im Widerspruch einer
Datenintegrität.

Mir ist dabei schon klar, dass dadurch die Konsistenz der Daten
gefährdet ist. Daher müsste diese "Funktion" nur solange möglich sein,
wie die Tabelle noch Unverknüpft ist bez. die Verknüpfungen vorher
gelöst wurden.
Und dies kommt bei Datenbanken nur äußerst selten vor. So dass die
Prüfung, ob so etwas im konkreten Fall durchgeführt werden dürfte viel
zu viele Resourcen bei der Prüfung schlucken würde.

Da hast Du sicherlich recht!

Darum wird ein lösen der Verknüpfung zur Freigabe eines solchen Prozedur äusserst komplex und sprengt wahrscheinlich die Möglichkeiten. Beim Erstellen und Erfassen *vor* der Bindung an andere Tabellen hingegen sollte es durchaus möglich sein.
Der Vorteil wäre, dass dadurch die Hierarchie, sollte sie einmal falsch
angelegt sein, direkt korrigiert werden kann indem die Zeilen verschoben
nun neu in die richtige Reihenfolge gebracht werden können.
Welche Hierarchie?
Das gilt in der Regel ja nur für Auswahltabellen. Bei diesen ist es ja oft wichtig, dass die Reihenfolge eingehalten wird. Natürlich kann das auch nachträglich mit einer Abfrage korrigiert werden, nur wenn die Auswahl weder Alphabetisch noch Numerisch sortiert werden kann wird' s problematisch. Nimm nur mal die Monatsnamen oder Haltestellen einer Bahnlinie, wenn keine Lauf-Nummer dazu verknüpft ist - wie willst du die dann in die richtige Reihenfolge sortieren.
Wenn Du eine Ziffer für eine Sortierung benötigst, solltest Du eine
zusätzliche Spalte einfügen.

Dazu bin ich schliesslich auch übergegangen, da die genannten Probleme auftraten :-D
Sonst bleibt nur die Möglichkeit prinzipiell auf "Autowert" zu
verzichten und statt dessen die ID händisch zu erzeugen, oder eine
zweite Spalte für eine durchgängige ID einzurichten.
Genau das ;-)

Dann aber fehlt in Base der Parameter "keine Duplikate", wenn z.B.
mehrere Schlüsselfelder gebunden angewandt werden sollten.
Diese Funktion  "keine Duplikate" steht aber auch für Felder nicht zur
Verfügung, die keine Schlüsselfelder sind. Das ist eine Einschränkung,
die es schwierig macht, die gewünschten Ziele mit einfach Mitteln zu
erreichen.
Wie andreas schon sagte, geht das mit Indices.

Hab ich getestet - funktioniert! Ich Blödkopf hatte diese Möglichkeit leider nicht gesehen.
Mir ist klar, dass ich da Wünsche äussere, die sehr tief greifen. Doch
bin ich überzeugt, dass solche Anpassungen dem Nomal-user den Zugang zu
Base wesentlich vereinfachen würde. Da ich mich immer dafür einsetzte,
Aufgaben mit den richtigen Werkzeugen zu lösen, finde ich das Base
weiter verbreitet werden soll. Dazu muss man sich wohl mit solchen
Problemen auseinandersetzten.
Aber auch mit den Grundlagen von relationalen
Datenbank-Management-Systemen, für die interne HSQL-DB steht es hier

www.hsqldb.org

Das liebe Mechtilde ist mir schon klar - Was ich hier bezwecke ist, ohne zusätzliche Programmierung zum Ziel zu kommen. Ich verweise dabei auf den Diskurs: /Re: [de-users] Interaktiven Fragebogen erstellen/

Ich möchte nicht Ratschläge erteilen, ohne das selber getestet zu haben...
Wenn ich dabei selber auf Probleme stosse, suche ich hier eben Hilfe....

lieben Gruss Marino

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org

Antwort per Email an