Datenbank sortiert speichern

Rotkohleintopf

Grünschnabel
Hallo,

Ich komm mal gleich zur Sache...
Und zwar habe ich folgendes Problem:
Ich habe eine Access - Datenbank, mit vb 6 erstellt. Dieser werden nun Daten mit Datum hinzugefügt, diese jedoch nicht zwangsläufig chronologisch. In der Datenbank würde ich nun aber gerne die, mit SQL sortierten, Daten so abspeichern, daß sie zunächst chronologisch dort abgelegt werden und dann in der Reihenfolge auch eine "Adress"-Zuweisung (vielleicht mit AutoIncr?) über einen Primärindex bekommen.
Oder kurz gesagt:
Ich hätte gerne eine Datenbank deren Daten mit der meiner sortierten Tabelle übereinstimmen. Und die Zeilennummern meiner Tabelle den Adressnummern der Datenbank entsprechen...


Hat mich jemand verstanden? :(

Vielen Dank schonmal für eure Hilfe
 
Original geschrieben von Rotkohleintopf


In der Datenbank würde ich nun aber gerne die, mit SQL sortierten, Daten so abspeichern, daß sie zunächst chronologisch dort abgelegt werden und dann in der Reihenfolge auch eine "Adress"-Zuweisung (vielleicht mit AutoIncr?) über einen Primärindex bekommen.
Oder kurz gesagt:
Ich hätte gerne eine Datenbank deren Daten mit der meiner sortierten Tabelle übereinstimmen. Und die Zeilennummern meiner Tabelle den Adressnummern der Datenbank entsprechen...

Hat mich jemand verstanden? :(

Nein. Ich hab´s jetzt 3 mal durchgelesen und trotzdem nicht geblickt.

Ich versuchs trotzdem zu beantworten.

Datenbank nach Datum sortieren: einen Index darauf erstellen und mit diesem Index öffnen.

Zeilennummer soll Adressnummer entsprechen? Möglich, aber Blödsinn, wenn du einen Datensatz in der Tabelle löscht, würden alle anderen Datensätze dadurch eine neue Adressnummer erhalten. Ausserdem: wenn die Adressnummer 7stellig sein soll, wieviel leer DS würde er dann wohl produzieren. Auch dort einen Index drauf und gut.
 
Hm,

Ersteinmal Danke überhaupt für die Antwort!

Also die Zeilennummer sollte der Adressnummer entsprechen, damit, falls etwas in der Tabelle verändert wird, ich direkt über die Zeile den richtigen Datensatz ansprechen kann.

Das Problem der Neuzuweisung bei einem neuen Eintrag ist mir bewußt. Deswegen hatte ich gehofft es durch einen Tipp vielleicht umgehen zu können. Scheint wohl nicht so zu sein...

Aber so werd ich's wohl dann so machen, daß ich einen Index über die Adressnummer lege und dann halt jedesmal jene zum Speichern abfrage...
 
Original geschrieben von Rotkohleintopf
Hm,
Das Problem der Neuzuweisung bei einem neuen Eintrag ist mir bewußt. Deswegen hatte ich gehofft es durch einen Tipp vielleicht umgehen zu können. Scheint wohl nicht so zu sein...

Aber so werd ich's wohl dann so machen, daß ich einen Index über die Adressnummer lege und dann halt jedesmal jene zum Speichern abfrage...

Im Gegensatz zum guten alten dBase erhält unter VB ein Record kein "gelöscht"-Flag, sondern er ist weg. Der Platz wird allerdingfs wie beim alten dBase erst beim nächsten REORG freigegeben.
 
So ersteinmal entschuldigt, ich war die letzten paar Tage nicht da...

Im Gegensatz zum guten alten dBase erhält unter VB ein Record kein "gelöscht"-Flag, sondern er ist weg. Der Platz wird allerdingfs wie beim alten dBase erst beim nächsten REORG freigegeben.

Also ehrlich gesagt, habe ich davon dann doch nicht so viel Ahnung... Aber wie funtkioniert dieses REORG? Ist das eine Access-Datenbank-Sache, die man eh nicht beeinflussen kann, oder geht es dabei nur darum den Platz wieder freizugeben? Oder kann man diese Funktion vielleicht auch aus VB nutzen und manipulieren

Nochmal zu dem eigentlichen Gedanken. Ich kann das fast nicht glauben, daß es so eine Möglichkeit/Funktion nicht gibt, in einer Datenbank die Datensätze in einer anderen Reihenfolge zu speichern.
Man sollte denken, daß sowas öfter gebraucht werden würde... (z.B.: Wenn man eine Datenbank erstellt, verändert oder bearbeitet, diese dann speichert und sich dann jemand Anderes diese Datenbank mit z.B. Access anschauen möchte .... und sie nicht erst selbst neu sortieren möchte.)

Naja, Schönen Gruß und Danke für die Mühen...
 
Rotkohleintopf hat gesagt.:
Also ehrlich gesagt, habe ich davon dann doch nicht so viel Ahnung... Aber wie funtkioniert dieses REORG?

Nochmal zu dem eigentlichen Gedanken. Ich kann das fast nicht glauben, daß es so eine Möglichkeit/Funktion nicht gibt, in einer Datenbank die Datensätze in einer anderen Reihenfolge zu speichern.

jo hi.

Ich sehe, du hast das Model Datenbank noch nicht ganz verstanden.

Also eine Datenbank ist generell eine Funktion, die Daten aufnimmt und nach Bedarf wieder herausspukt. Der ehemalige ReORG aus guten alten dBasezeiten existiert heute eigentlich immer noch... aber der direkte Zugriff auf die DB eigentlich nicht mehr. Begründung: unter SQL heißt löschen -> nicht mehr notwendig -> weg. Unter dBase hieß das "Set Deleted=off "gelöschte ausblenden". VB kennt über die jeweiligen connectoren eigentlich nur die SQL-Statements um zur DB zugriff zu nehmen. Wenn du also nicht deine eigene DB schreiben willst, musst du dich mit diesem Zustand erstmal abfinden.

Durch dieses Model hast du aber eingentlich nur Vorteile ein Zugriff auf mehrere Datenfelder aus verschiedenen Tabellen ist mit SQL eigentlich kein Problem.
"get Felder from Datenbank where Suchbegriff=suchfeld order by sortierbaresFeld" sollte es als Beispiel verdeutlichen. und die Performance ist im Netzwerk sowieso ohne gleichen, da der eigentliche Zugriff vom Server direkt ausgeführt wird und nicht von deinem PC.
 
Du hast Recht, den eigentlichen Aufbau von Datenbanken hab ich wohl nicht wirklich verstanden gehabt... Dafür auf jeden Fall mal Danke!
Ich hab früher(zu 286er-Zeiten) viel mit Basic geschrieben und dann lange Zeit alles Ruhen lassen, bis ich vor kurzem die Gelegenheit bekam Visual Basic mal auszuprobieren...Nun ja, seitdem bringe ich es mir mehr oder weniger erfolgreich selbst bei... Das Ergebnis siehst Du ja! ;-)
Vielen Dank auf jeden Fall für die Mühen. Inzwischen habe ich mein Problem so gelöst, daß ich vor dem Speichern eines Datensatzes halt die Adressnummer der Zeile abfrage und so den Datensatz in der Datenbank anspreche.

Wundern tue ich mich trotzdem...(Halt aus dem Grund, daß es eigentlich möglich sein sollte...Aber lassen wir das! ;-) )
Vielen Dank also und bis zur nächsten Frage!
 
Zurück