Datei indizieren
-
- Beiträge: 6
- Registriert: Sa 4. Aug 2007, 18:42
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Schwedt/Oder
Datei indizieren
Hallo,
noch bin ich, wie Ihr sehen könnt, bei Euch der letzte Neue.
Kurzvorstellung - ich habe ehemals in TurboPascal Dos-Anwendungen (Hobby) geschrieben.
Lang ist es her.
Ich bin auf der Suche nach einem geeigneten Programmierwerkzeug, mit dem ich mir eine Datenbankverwaltung erstellen kann, um viele Daten zu verwalten.
Ein fertige Datenbankverwaltung kommt nicht in Frage, da die Struktur offen bleiben muss.
Als BS nutze ich Windows XP.
Aus den Beispielen lud ich mir das adress_book.
Dort stellte ich fest, dass eine Reindizierung fehlt.
Weiter gesucht - Nichts gefunden.
Mir gefällt "learning by doing" - so habe ich bisher jede Programmiersprache gelernt.
Anfängliche Hinweise auf Lauf/Denkrichtungen können aber sehr hilfreich sein.
Ich vermute, dass tiefer in den Units schon Denkansätze existieren müßten.
Wo aber suchen?
Mit Sicherheit,
wenn es mich hier hält, will ich nicht nur Fragen stellen!
Vielen Dank.
Diesen Thread vllt. in 'Datenbanken' verschieben?
noch bin ich, wie Ihr sehen könnt, bei Euch der letzte Neue.
Kurzvorstellung - ich habe ehemals in TurboPascal Dos-Anwendungen (Hobby) geschrieben.
Lang ist es her.
Ich bin auf der Suche nach einem geeigneten Programmierwerkzeug, mit dem ich mir eine Datenbankverwaltung erstellen kann, um viele Daten zu verwalten.
Ein fertige Datenbankverwaltung kommt nicht in Frage, da die Struktur offen bleiben muss.
Als BS nutze ich Windows XP.
Aus den Beispielen lud ich mir das adress_book.
Dort stellte ich fest, dass eine Reindizierung fehlt.
Weiter gesucht - Nichts gefunden.
Mir gefällt "learning by doing" - so habe ich bisher jede Programmiersprache gelernt.
Anfängliche Hinweise auf Lauf/Denkrichtungen können aber sehr hilfreich sein.
Ich vermute, dass tiefer in den Units schon Denkansätze existieren müßten.
Wo aber suchen?
Mit Sicherheit,
wenn es mich hier hält, will ich nicht nur Fragen stellen!
Vielen Dank.
Diesen Thread vllt. in 'Datenbanken' verschieben?
-
- Lazarusforum e. V.
- Beiträge: 7178
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich würde einfach ein Fertig Daten Bank System verwenden. Die sind dafür ausgelegt mit vielen Daten zu arbeiten. z.b. SQL-Lite oder MySql oder so.
Die sind auch alle soweit ich weiß offen. und du kannst das Format der Daten Bank ja offen legen. Also welche Tabellen du verwendest und wie sie aufgebaut sind.
Die sind auch alle soweit ich weiß offen. und du kannst das Format der Daten Bank ja offen legen. Also welche Tabellen du verwendest und wie sie aufgebaut sind.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6
- Registriert: Sa 4. Aug 2007, 18:42
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Schwedt/Oder
@Christian
wenn ich Rohdaten aus einer anderen Anwendung übernehmen muß, deren
Index aber nicht nutzen kann, muß ich den Index neu aufbauen.
(z.B. Textfile, Trennzeichen Kommata)
Es kann auch mal passieren, dass eine Indexdatei zerstört wird, weil das Programm unterbrochen wird, bevor zum neuen/geänderten Datensatz der Index angepaßt werden konnte.
Reindizieren ist insofern ein "Abfallprodukt" jedes Datenbanksystems.
Nur weiß ich noch nicht, wie ich es hier bewußt aufrufen kann.
@pluto
Es kann passieren, dass Teile von MySQL-Datenbanken bei mir in das Gesamtkonzept einfließen werden.
Im Moment aber steht einfach die Frage anders.
Wie baue ich bewußt den Index einer Datei (wieder) auf?
Vielen Dank für euer Mitdenken.
wenn ich Rohdaten aus einer anderen Anwendung übernehmen muß, deren
Index aber nicht nutzen kann, muß ich den Index neu aufbauen.
(z.B. Textfile, Trennzeichen Kommata)
Es kann auch mal passieren, dass eine Indexdatei zerstört wird, weil das Programm unterbrochen wird, bevor zum neuen/geänderten Datensatz der Index angepaßt werden konnte.
Reindizieren ist insofern ein "Abfallprodukt" jedes Datenbanksystems.
Nur weiß ich noch nicht, wie ich es hier bewußt aufrufen kann.
@pluto
Es kann passieren, dass Teile von MySQL-Datenbanken bei mir in das Gesamtkonzept einfließen werden.
Im Moment aber steht einfach die Frage anders.
Wie baue ich bewußt den Index einer Datei (wieder) auf?
Vielen Dank für euer Mitdenken.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Was willst du denn mit Textdateien ?
Erzähl doch erstmal was für ein Datenbanksystem du einsetzen willst.
Im Moment macht deine Frage keinen Sinn.
Und mann kann bei Serverbasierten DBS nicht von der Anwendung heraus reindizieren. Das ist jedoch auch nie nötig da sich darum der Datenbankserver kümmert.
Bei Tdbf z.b. geht das mit nem einzigen Funktionsaufruf ist aber auch nie nötig da die Indizien wie schon gesagt automatisch aktualisiert werden. Und das funktioniert.
Erzähl doch erstmal was für ein Datenbanksystem du einsetzen willst.
Im Moment macht deine Frage keinen Sinn.
Und mann kann bei Serverbasierten DBS nicht von der Anwendung heraus reindizieren. Das ist jedoch auch nie nötig da sich darum der Datenbankserver kümmert.
Bei Tdbf z.b. geht das mit nem einzigen Funktionsaufruf ist aber auch nie nötig da die Indizien wie schon gesagt automatisch aktualisiert werden. Und das funktioniert.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 7178
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich denke man müsste eine Datenbank bevor sie geändert wird sichern. und dann wieder zurück sichern, wenn die Änderung erfolgt reich war.
Die Frage ist wie ist dein Format aufgebaut ?
Ich würde jeden Eine eindeutige ID geben. Ich glaube der Index ist gar nicht mal so wichtig..... sondern wie das Format halt aussieht.... es hier entscheiden.
z.b. könntest du eine Tabelle haben mit Root Einträgen. Von dieser Tabelle gehen dann wieder zweige in anderen Tabellen. In ein Projekt was ich gerade vorbereite habe ich das so gelöst:
1. Es gibt eine Root-Tabelle diese Tabelle wird beim Laden zu erst geladen.
beim Laden wird geschaut gibt es zu dieser Tabelle. bzw. jeder Eintrag hat eine eindeutige ID die 10 Stellig ist.Gibt es ein Submenu dann mache ein + in der VST komponente
2. Hat ein Eintrag ein + Zeichen und es wird drauf geklickt wird einfach das submenu nach geladen beim entladen sollte es wieder freigeben werden.
3. Eine Änderung wird sofort übernommen.
4, Der Vorteil dieses Konzeptes ist, das ich einfach nachladen kann.
In meinem Fertigen Projekt nutze ich die Lade und Speicher Funktion der VST. und ich habe mir die Sorucen angesehen und ich glaube das beim Laden alles komplett geladen wird und beim speichern auch.
Noch ist es egal, aber die Datenbank wechst ja mit der Zeit. Und Irgendwann in ein paar Jahren evlt. wird das laden und speicher einfach zu lange dauern.
Die Frage ist wie ist dein Format aufgebaut ?
Ich würde jeden Eine eindeutige ID geben. Ich glaube der Index ist gar nicht mal so wichtig..... sondern wie das Format halt aussieht.... es hier entscheiden.
z.b. könntest du eine Tabelle haben mit Root Einträgen. Von dieser Tabelle gehen dann wieder zweige in anderen Tabellen. In ein Projekt was ich gerade vorbereite habe ich das so gelöst:
1. Es gibt eine Root-Tabelle diese Tabelle wird beim Laden zu erst geladen.
beim Laden wird geschaut gibt es zu dieser Tabelle. bzw. jeder Eintrag hat eine eindeutige ID die 10 Stellig ist.Gibt es ein Submenu dann mache ein + in der VST komponente
2. Hat ein Eintrag ein + Zeichen und es wird drauf geklickt wird einfach das submenu nach geladen beim entladen sollte es wieder freigeben werden.
3. Eine Änderung wird sofort übernommen.
4, Der Vorteil dieses Konzeptes ist, das ich einfach nachladen kann.
In meinem Fertigen Projekt nutze ich die Lade und Speicher Funktion der VST. und ich habe mir die Sorucen angesehen und ich glaube das beim Laden alles komplett geladen wird und beim speichern auch.
Noch ist es egal, aber die Datenbank wechst ja mit der Zeit. Und Irgendwann in ein paar Jahren evlt. wird das laden und speicher einfach zu lange dauern.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6
- Registriert: Sa 4. Aug 2007, 18:42
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Schwedt/Oder
@all
ich werde in mich gehen und mit der Lösung winken.
Dann erklärt sich das Ding ganz von selbst.
Ich habe noch keinen Server zur Verfügung.
Wir arbeiten p2p unter Windows XP.
Ich denke, eine MDX-Datei ist die zugehörige Indexdatei zu einer DBF-Datei (unter FreePascal) richtig?
@Christian
die Textdatei war nur ein Beispiel.....
(Excel Daten kann man zum Beispiel dorthin exportieren, getrennt durch Komma oder Semikolon)
Frage ich anders...
Wie kann ich unter FreePascal eine fremde Datei satzweise in eine noch leere Datei importieren?
Zwangsläufig baut sich der Index mit auf.
ich werde in mich gehen und mit der Lösung winken.
Dann erklärt sich das Ding ganz von selbst.
Ich habe noch keinen Server zur Verfügung.
Wir arbeiten p2p unter Windows XP.
Ich denke, eine MDX-Datei ist die zugehörige Indexdatei zu einer DBF-Datei (unter FreePascal) richtig?
@Christian
die Textdatei war nur ein Beispiel.....
(Excel Daten kann man zum Beispiel dorthin exportieren, getrennt durch Komma oder Semikolon)
Frage ich anders...
Wie kann ich unter FreePascal eine fremde Datei satzweise in eine noch leere Datei importieren?
Zwangsläufig baut sich der Index mit auf.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Pluto hör doch ma auf unsinn zu quatschen.
Er benutzt TDbf, das ist nun mal klar.
kommt natürlich auf das format deiner Fremden datei an aber prinzipiell so:
Dbf1.Insert;
Dbf1.FieldByName('FELD1').AsString := 'Feld1 aus meiner fremden datei';
Dbf1.FieldByName('FELD2').AsString := 'Feld2 aus meiner fremden datei';
Dbf1.FieldByName('FELD3').AsString := 'Feld3 aus meiner fremden datei';
Dbf1.Post;
Das ganze wiederholst du für jeden Satz in deiner fremden datei.
Er benutzt TDbf, das ist nun mal klar.
Wie kann ich unter FreePascal eine fremde Datei satzweise in eine noch leere Datei importieren?
Zwangsläufig baut sich der Index mit auf.
kommt natürlich auf das format deiner Fremden datei an aber prinzipiell so:
Dbf1.Insert;
Dbf1.FieldByName('FELD1').AsString := 'Feld1 aus meiner fremden datei';
Dbf1.FieldByName('FELD2').AsString := 'Feld2 aus meiner fremden datei';
Dbf1.FieldByName('FELD3').AsString := 'Feld3 aus meiner fremden datei';
Dbf1.Post;
Das ganze wiederholst du für jeden Satz in deiner fremden datei.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/