Hallo Marino,

Salvalaggio Marino schrieb:
> Hi Mechtilde,

> 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.

Ich habe es nochmal mit HSQL DB getestet. Zweispaltige Tabellen machen
da keine Ausnahme.
> 
>>> Dabei erscheint nun im Auto-Feld der nächsten Zeile bereits die nächste
>>> ID-Nummer.  
>>    
> Diese Aussage gilt bei MS-Access. 

Das entspricht nicht meinen Erfahrungen mit Access. Aber vielleicht hat
MS das verändert. Es wurde ja auch das darunterliegende Backend gewechselt.

> 
>> 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.

Das muss du genauer erklären, was du mit Zeiger meinst. Wie gibst Du
überhaupt Werte ein?

>>> 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.

Datenbank-Management-Systeme (DBMS) sollten darauf ausgelegt sein, die
Daten-Integrität selber zu verwalten. Daher wirst Du von
Datenbank-"Designern" immer wieder erfahren, dass DBMS, die dies nicht
erfüllen, unbrauchbar sind.

>> 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.

Das macht man normalerweise nicht.

Der professionelle Weg eine Datenbank zu erstellen, ist, zunächst am
Reißbrett die Struktur und Abhängigkeiten der Tabellen zu entwerfen.
Dies dann auf das gewünschte DBMS zu übertragen. Anschließend wird das
benötigte Frontend erstellt.

>>> 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.

Warum?

> 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.

Warum?

>> 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/

Sich mit www.hsqldb.org zu beschäftigen, heißt nicht, sich auch mit
Programmierung zu beschäftigen.

Das *kann* kommen, *muss* aber nicht. Ich habe mich auch mehrere Jahre
mit MySQL beschäftigt, ohne an Programmierung nur zu denken.

> 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....

Gruß

Mechtilde


-- 
Dipl. Ing. Mechtilde Stehmann
## http://de.openoffice.org
## Ansprechpartnerin für die deutschsprachige QA
## Freie Office-Suite für Linux, Mac, Windows, Solaris
## Meine Seite http://www.mechtilde.de
## PGP encryption welcome! Key-ID: 0x53B3892B


Attachment: signature.asc
Description: OpenPGP digital signature

Antwort per Email an