Microsoft Access DB

Diskutiere Microsoft Access DB im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, vorerst ein kleines Beispiel: Ich habe eine Access Datenbank, darin sind jede menge Datensätze gespeichert. Wenn ich einen Datensatz...
  • Microsoft Access DB Beitrag #1
A

axel_foley

Bekanntes Mitglied
Dabei seit
02.05.2007
Beiträge
130
Reaktionspunkte
0
Hallo,

vorerst ein kleines Beispiel:

Ich habe eine Access Datenbank, darin sind jede menge Datensätze gespeichert. Wenn ich einen Datensatz lösche, dann entsteht in der mdb Datei ein leerraum. Wenn ich die Datenbank dann Komprimiere und Repariere, wird eine neue Datenbank angelegt und die Daten rüberkopiert.
Dadurch kann in der neuen Datenbank nicht nachgewiesen werden, dass etwas gelöscht wurde, die Datenbank arbeitet dadurch auch schneller und fehler wurden behoben.

Nun folgendes Problem, der Komprimierungsvorgang legt eine neue datei an, kopiert die daten, löscht die alte datei und benennt die neue datei zur alten um.
theretisch kann mir keiner nachweisen, dass ich etwas gelöscht habe, aber genau betrachtet, gibt es die alte DB noch, wenn ich die unbrauchbar mache, dann kann mir keiner nachweisen, dass ich etwas gelöscht habe, oder?

tut mir leid, dass ich so vielgeschrieben habe, bin aber leider in einer kräftigen diskussion mit meinem freund und hab gewettet, dass man es nicht nachvollziehen kann.

hätte gerne gewusst, ob man es nachvollziehen kann...

leider weis ich auch nicht die passende kategorie.

cu
axel
 
  • Microsoft Access DB Beitrag #2
M

mupuwu

Bekanntes Mitglied
Dabei seit
24.02.2007
Beiträge
59
Reaktionspunkte
0
also wenn du ne spalte für den autowert hast und dann irgendwo ne zeile löschst wird zwar die zeile gelöscht aber der wert wird nicht wieder benutzt.
kleines beispiel damit du das auch verstehst ^^

Autowert | Daten
________________
1 | blabla bla
2 | blabla bla <- diese Zeile willst du löschen !!!
3 | blabla bla
4 | blabla bla

nachdem du die zeile mit den autowert 2 gelöscht hast und neue daten angeben willst sieht es so aus

Autowert | Daten
________________
1 | blabla bla
3 | blabla bla
4 | blabla bla
5 | blabla bla
6 | blabla bla

hoffe das ihr das alle versteht, ich drück mich manchma bissl komisch aus ^^
 
  • Microsoft Access DB Beitrag #3
A

axel_foley

Bekanntes Mitglied
Dabei seit
02.05.2007
Beiträge
130
Reaktionspunkte
0
also wenn du ne spalte für den autowert hast und dann irgendwo ne zeile löschst wird zwar die zeile gelöscht aber der wert wird nicht wieder benutzt.
kleines beispiel damit du das auch verstehst ^^

Autowert | Daten
________________
1 | blabla bla
2 | blabla bla <- diese Zeile willst du löschen !!!
3 | blabla bla
4 | blabla bla

nachdem du die zeile mit den autowert 2 gelöscht hast und neue daten angeben willst sieht es so aus

Autowert | Daten
________________
1 | blabla bla
3 | blabla bla
4 | blabla bla
5 | blabla bla
6 | blabla bla

hoffe das ihr das alle versteht, ich drück mich manchma bissl komisch aus ^^


Hallo,

ich danke dir einmal, muss aber noch etwas hinzufügen.

der autowert wird nicht 1,2,3,4 nacheinander generiert, sondern per zufall, löst das nicht das problem?

cu
axel
 
  • Microsoft Access DB Beitrag #4
M

mupuwu

Bekanntes Mitglied
Dabei seit
24.02.2007
Beiträge
59
Reaktionspunkte
0
also meiner Meinung nach wird der Autowert net nach zufall generiert sondern ist die nächst höhste zahl nach den letzten dateznsatz.

also wenn du 100 hattest und davon 90 löschst dann hat der nächste datensatz den wert 101.
 
  • Microsoft Access DB Beitrag #5
A

axel_foley

Bekanntes Mitglied
Dabei seit
02.05.2007
Beiträge
130
Reaktionspunkte
0
also meiner Meinung nach wird der Autowert net nach zufall generiert sondern ist die nächst höhste zahl nach den letzten dateznsatz.

also wenn du 100 hattest und davon 90 löschst dann hat der nächste datensatz den wert 101.

Bei einem Autowert-Feld mit der Feldgröße Long Integer werden die Werte automatisch bei jedem neuen Datensatz um den Wert 1 erhöht. Man erhält dadurch eine fortlaufende Datensatznummerierung. Diese Nummerierung bringt aber Nachteile mit sich, wenn mehrere Personen auf eine Tabelle zugreifen und neue Datensätze eingeben. Es kann sein, dass zwei verschiedene Datensätze dieselbe Primärschlüsselnummer erhalten. Ein Konflikt ist so unvermeidbar.

Wenn Sie ein neues Autowert-Feld angelegt haben, können Sie im Register Allgemein die Eigenschaften des Feldes einstellen. Wählen Sie im Feld Neue Werte den Eintrag Zufall aus. Beim Anlegen eines neuen Datensatzes wird dann ein zufälliger Wert vergeben. Die Wahrscheinlichkeit, dass die Datensatznummern von zwei Datensätzen gleich sind, ist sehr gering.

Hauptsächlich wird die Einstellung Zufall bei der Replikation von Datenbanken benutzt. Der Zweck ist der gleiche wie oben beschrieben.

von fullaccess.

das problem ist aber behoben.

axel
 
  • Microsoft Access DB Beitrag #6
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Bei einem Autowert-Feld mit der Feldgröße Long Integer werden die Werte automatisch bei jedem neuen Datensatz um den Wert 1 erhöht. Man erhält dadurch eine fortlaufende Datensatznummerierung. Diese Nummerierung bringt aber Nachteile mit sich, wenn mehrere Personen auf eine Tabelle zugreifen und neue Datensätze eingeben. Es kann sein, dass zwei verschiedene Datensätze dieselbe Primärschlüsselnummer erhalten. Ein Konflikt ist so unvermeidbar.
Ohne die Access-DB zu kennen, behaupte ich mal das Gegenteil.
Ein Primärschlüssel kann und wird niemals doppelt vergeben. Darum ist es ja ein Primärschlüssel.
Der Zweck eines solchen Autoincrements oder Sequenz in Postgres ist genau der, auch bei konkurrierenden Zugriffen eindeutige IDs zu vergeben. Es wird also mit Sicherheit keinen Konflikt geben wenn von 2 Seiten aus gleichzeitig neue Datensätze in die DB geschrieben werden.
 
  • Microsoft Access DB Beitrag #7
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Mir erscheint auch die Idee, zufällige Werte zu nehmen, weil dann eine geringe Wahrscheinlichkeit zur Doppelvergabe besteht, etwas komisch. Üblicherweise verlässt man sich bei tendenziell wichtigen Dingen wie Datenbanken auf Vorgangsweisen, die garantiert funktionieren, und nicht auf solche, die das mit hoher Wahrscheinlichkeit tun.
 
Thema:

Microsoft Access DB

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben