AGB  ·  Datenschutz  ·  Impressum  







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

Arbeiten mit Records

Ein Thema von Erutan · begonnen am 4. Sep 2013 · letzter Beitrag vom 5. Sep 2013
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Arbeiten mit Records

  Alt 4. Sep 2013, 20:41
Ob ich nun eine ID habe oder einen Array- bzw. Listenindex, welchen Unterschied macht das?
Das merkst Du dann, wenn Du etwas aus der Liste entfernst oder einfügst. Der Instanzenzeiger ist nicht schlecht, aber beim Kopieren eines Records, z.B. zum Editieren mit der Möglichkeit, die Änderungen zu verwerfen, nicht mehr zu gebrauchen.

Davon abgesehen, das es einfach keine gute Idee ist, mit Records und Listen derartige Operationen durchzuführen, sollten Records einen Identifikator besitzen, so wie eigentlich jede Entität.

Aber davon abgesehen: Records? Nee.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Arbeiten mit Records

  Alt 5. Sep 2013, 06:36
Kleine Entwicklungsgeschichte von dBase...

Am Anfang gab es nur Records mit fester Satzlänge (in Pascal/Delphi als typisierte Datei bekannt).
Dann tauchte aber schon das erste Problem auf:
wie kann man einen Datensatz mitten in der Datei löschen ohne dass man unter Unständen viele Megabytes in der Datei verschieben muss?
Die Lösung ist, dass das 1 Byte im Record den Löschstatus angibt.
' ' bedeutet Datensatz gültig
'*' bedeutet Datensatz gelöscht bzw. als gelöscht markiert

Irgendwann muss man die als gelöscht markierten Datensätze wieder entfernen.
Daher braucht man ein Tool, dass die Recordlänge und die Datei kennt und dann nur die nicht-gelöschten Records in eine neue Datei kopiert.
Das Problem dabei ist falls die Recordlänge nicht stimmt ist das Ergebnis nur noch Datenmüll.

Der nächste Entwicklungsschritt war also dass die Datei einen Header bekommt in dem die Recordlänge vermerkt ist.
Im Header wird zusätzlich aber noch eine Feldliste geführt.
Für jedes Feld wird der Feldname (max 10 Zeichen), Feldlänge, Datentyp (C=Character, N=Numerisch, D=Datum, L=Logisch/Boolean) und ggf. Anzahl der Nachkommastellen gespeichert.
Im Header stehen noch weitere Infos wie z.B. die dBase-Version, Datum der letzten Änderung, Anzahl Datensätze, Zeichensatz, ...
http://www.dbase.com/Knowledgebase/INT/db7_file_fmt.htm

Die Datenfelder werden aus der Software auch nicht mehr über ihre feste Position im Record sondern über ihren Feldnamen angesprochen.
Diese Technik war vor vielen Jahren revolutionär und hat dBase zur Erfolgsgeschichte gemacht.
Durch die Feldbeschreibung im Header konnte man z.B. neue Felder hinzufügen oder die Reihenfolge ändern ohne dass die Anwendungen damit ein Problem bekommen.

Das ist aber noch nicht alles.
Um Datensätze schnell aufzufinden wurde parallel zur dBase Datendatei noch eine oder mehrere Indexdateien geführt.
Ausserdem gab es noch eine weitere Datei in der Felder mit variabler Länge (Memo Felder) gespeichert wurden.

Was ich hier beschrieben habe ist Stand der Technik im Jahr 1985 und die war den alten typisierten Dateien weit überlegen.
fork me on Github
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#3

AW: Arbeiten mit Records

  Alt 5. Sep 2013, 09:25
[OT]
@sx2008 Kann es sein, dass wir beide schon etwas älter sind, um nicht zu sagen, das MHD in greifbarer Nähe ist
[/OT]
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Arbeiten mit Records

  Alt 5. Sep 2013, 13:30
[OT]
@sx2008 Kann es sein, dass wir beide schon etwas älter sind, um nicht zu sagen, das MHD in greifbarer Nähe ist
[/OT]
Könnte schon sein, aber der neuronale Rechner arbeitet noch ganz gut
Ich lerne z.Zt. nebenher Scala - das ist sehr heftig wenn man bislang nur objektorientierte Programmiersprachen wie Delphi oder C++ benützt hat.
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz