INDEX und Netzwerkbetrieb
Moderator: Moderatoren
INDEX und Netzwerkbetrieb
Hallo,
ich habe ein Programm, dass auf einem Server liegt und von mehreren Usern benutzt wird.
Sobald ich aber den INDEX neu aufbaue (REINDEX), dann fliegt mir das ganze um die Ohren, wenn mehr als ein User gerade angemeldet ist.
Wie kann ich den INDEX bei einer Netzwerkanwendung neu aufbauen und auch neu setzen mit SET INDEX?
Habe leider mit Netzwerkanwendungen noch keine Erfahrung.
ich habe ein Programm, dass auf einem Server liegt und von mehreren Usern benutzt wird.
Sobald ich aber den INDEX neu aufbaue (REINDEX), dann fliegt mir das ganze um die Ohren, wenn mehr als ein User gerade angemeldet ist.
Wie kann ich den INDEX bei einer Netzwerkanwendung neu aufbauen und auch neu setzen mit SET INDEX?
Habe leider mit Netzwerkanwendungen noch keine Erfahrung.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Josef.
Welche Xbase-Version? Schonmal mit Extended Locking versucht (ab Version 1.82.0294)? Mal die Lockretries hochgesetzt?
(Beispiele für DBFNTX).
Welche Xbase-Version? Schonmal mit Extended Locking versucht (ab Version 1.82.0294)? Mal die Lockretries hochgesetzt?
Code: Alles auswählen
DbeInfo(COMPONENT_ORDER,DBE_LOCKMODE,LOCKING_EXTENDED)
DbeInfo(COMPONENT_ORDER,NTXDBE_LOCKRETRY,20000000)
DbeInfo(COMPONENT_ORDER,NTXDBE_LOCKDELAY,10)
Herzlich,
Tom
Tom
Hi Tom,
bis jetzt hab ich die 1.80. Die 1.82 / 1.90 hab ich erst bestellt. Das update mach ich hauptsächlich wegen diesem Problem.
Noch was:
VX hab ich mir als Demo schon angeschaut. Ich hab mir da irgendwie was anderes vorgestellt. So wie Visual Basic oder so.
Anders gefragt: Ist es notwendig, VX zu haben?
bis jetzt hab ich die 1.80. Die 1.82 / 1.90 hab ich erst bestellt. Das update mach ich hauptsächlich wegen diesem Problem.
Noch was:
VX hab ich mir als Demo schon angeschaut. Ich hab mir da irgendwie was anderes vorgestellt. So wie Visual Basic oder so.
Anders gefragt: Ist es notwendig, VX zu haben?
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
zwar schon etwa älter, aber vielleicht interessiert es ja noch...
Alte Hasen haben alle eine Entwicklungsumgebung gekauft (Express...) oder selbst aus den Beispielen gebastelt (ich aus MDI-Beispiel). Hier wird es erst mal schwer werden mit der neuen IDE zurecht zu kommen.
Ob man das was zur Zeit kommt braucht ?
Im Moment nicht, es ist sowieso beta. Aber die VX 2.0 (scheint mir die nächste Version von Xbase++ 1.90 zu sein) soll die 2 GB DBF und Indexdateibegrenzung aufheben und das könnte Sinn machen.
Der große Wurf soll ja die VX 3.0 werden - da malt man die Dateizusammenhänge und Felder und erhält eine fertige Application (so habe ich das zumindest verstanden), ob die dann passt ist eine andere Frage .
Warten wir es ab, es wird uns sicher nicht so schnell überrennen - nach den bisherigen Erfahrungen.
zwar schon etwa älter, aber vielleicht interessiert es ja noch...
Alte Hasen haben alle eine Entwicklungsumgebung gekauft (Express...) oder selbst aus den Beispielen gebastelt (ich aus MDI-Beispiel). Hier wird es erst mal schwer werden mit der neuen IDE zurecht zu kommen.
Ob man das was zur Zeit kommt braucht ?
Im Moment nicht, es ist sowieso beta. Aber die VX 2.0 (scheint mir die nächste Version von Xbase++ 1.90 zu sein) soll die 2 GB DBF und Indexdateibegrenzung aufheben und das könnte Sinn machen.
Der große Wurf soll ja die VX 3.0 werden - da malt man die Dateizusammenhänge und Felder und erhält eine fertige Application (so habe ich das zumindest verstanden), ob die dann passt ist eine andere Frage .
Warten wir es ab, es wird uns sicher nicht so schnell überrennen - nach den bisherigen Erfahrungen.
Gruß
Hubert
Hubert
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
nach fast einem Jahr möchte ich dieses Thema noch einmal aufgreifen und aktualisieren...
Ich habe gelernt, dass der Aufbau und ein REINDEX nur bei EXCLUSIV geöffneten Datenbanken möglich ist.
Da ich aber des öfteren Index Probleme habe - vermutlich durch unsaubere Programmierung - habe ich mir angewöhnt, relativ oft ein OrdListRebuild() einzubauen. (automatisch nach Öffnen der Datenbanken und manuell durch ein eigenes Programm-Modul). Dies ist im Single-User Modus überhaupt kein Problem.
Dies führt aber zu Problemen im Multi-User-Betrieb (Netzwerk-Betrieb), wie oben schon geschildert. Nun meine Frage:
Kann ich ein USE cFile EXCLUSIV erzwingen (wenn z.b. bei anderen Usern oder in anderen WorkAreas die Datenbanken im Shared-Mode geöffnet sind) ?? Wenn ja, was passiert mit den im Shared-Mode geöffneten Datenbanken ?
Wie habt ihr dieses "Problem" gelöst ??
Gruß
Lutz
Ich habe gelernt, dass der Aufbau und ein REINDEX nur bei EXCLUSIV geöffneten Datenbanken möglich ist.
Da ich aber des öfteren Index Probleme habe - vermutlich durch unsaubere Programmierung - habe ich mir angewöhnt, relativ oft ein OrdListRebuild() einzubauen. (automatisch nach Öffnen der Datenbanken und manuell durch ein eigenes Programm-Modul). Dies ist im Single-User Modus überhaupt kein Problem.
Dies führt aber zu Problemen im Multi-User-Betrieb (Netzwerk-Betrieb), wie oben schon geschildert. Nun meine Frage:
Kann ich ein USE cFile EXCLUSIV erzwingen (wenn z.b. bei anderen Usern oder in anderen WorkAreas die Datenbanken im Shared-Mode geöffnet sind) ?? Wenn ja, was passiert mit den im Shared-Mode geöffneten Datenbanken ?
Wie habt ihr dieses "Problem" gelöst ??
Gruß
Lutz
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
nicht machen
damit ja nicht "behoben".
für das Netzwerk musst du dir ja eh eine eigene "Net_Use" schreiben.
da Cl*pper bei CDX Index Dateien die ja gleich mit aufgemacht hat,
was Xbase++ ja nicht tut, hab ich im meine "Net_Use" das öffnen von
"allen" dazugehörigen Index Dateien integriert (auch NTX). Sollte man
dann mal den Index erweitern so muss man auch "nur" in das "Net_Use"
Modul was auch eine CreateDBF/CreateCDX/CreateNTX enthält.
Somit kann man eigendlich keinen Index "vergessen" und Xbase++
sollte die alle "anfassen" sodas DBF & Index das selbe Datum/Zeit
haben "sollten" (jaja ich weiss das es darüber andere Meinungen gibt)
zum Netzwerk sollte man noch sagen das man das "timing" in der
DBESYS.PRG "anpassen" kann. Besonders bei "gemischten" Workstationen
mit verschiedenem OS oder, "langsam/schnellen" Workstationen "kann"
es bei einem SKIP (!) mit Index schon zu einem XppError kommen.
... und Op´s Lock bei M$ Netzwerken nicht vergessen. für Novell evtl.
Turbo-FAT abschalten und den "richtigen" NW-Client nehmen.
gruss by OHR
Jimmy
nope, solange die irgend jemand die geöffnet hat, kan man exclusivLutz Rübe hat geschrieben: Da ich aber des öfteren Index Probleme habe ...
...
Dies führt aber zu Problemen im Multi-User-Betrieb (Netzwerk-Betrieb),
...
Kann ich ein USE cFile EXCLUSIV erzwingen
nicht machen
... man könnte ja FLock() benutzen, aber dein eigendliches Problem wirdLutz Rübe hat geschrieben: Wie habt ihr dieses "Problem" gelöst ??
damit ja nicht "behoben".
für das Netzwerk musst du dir ja eh eine eigene "Net_Use" schreiben.
da Cl*pper bei CDX Index Dateien die ja gleich mit aufgemacht hat,
was Xbase++ ja nicht tut, hab ich im meine "Net_Use" das öffnen von
"allen" dazugehörigen Index Dateien integriert (auch NTX). Sollte man
dann mal den Index erweitern so muss man auch "nur" in das "Net_Use"
Modul was auch eine CreateDBF/CreateCDX/CreateNTX enthält.
Somit kann man eigendlich keinen Index "vergessen" und Xbase++
sollte die alle "anfassen" sodas DBF & Index das selbe Datum/Zeit
haben "sollten" (jaja ich weiss das es darüber andere Meinungen gibt)
zum Netzwerk sollte man noch sagen das man das "timing" in der
DBESYS.PRG "anpassen" kann. Besonders bei "gemischten" Workstationen
mit verschiedenem OS oder, "langsam/schnellen" Workstationen "kann"
es bei einem SKIP (!) mit Index schon zu einem XppError kommen.
... und Op´s Lock bei M$ Netzwerken nicht vergessen. für Novell evtl.
Turbo-FAT abschalten und den "richtigen" NW-Client nehmen.
gruss by OHR
Jimmy
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Jimmy,
darf ich mal fragen, wie Deine Net_Use aussieht und funktioniert ? Da ich ja vorher nur unter Clipper ein Netzwerk-Programm geschrieben habe, habe ich in dieser Beziehung kaum Erfahrung.
Ich möchte nicht das Rad noch mal neu erfinden, wenn es schon irgendwo erfolgreich rollt (und keine Copy-Rights drauf sind )
Gruß
Lutz
das funktioniert leider nicht, da ja EXCLUSIV auch beim REINDEX gesetzt sein muß.... man könnte ja FLock() benutzen, aber dein eigendliches Problem wird
damit ja nicht "behoben".
darf ich mal fragen, wie Deine Net_Use aussieht und funktioniert ? Da ich ja vorher nur unter Clipper ein Netzwerk-Programm geschrieben habe, habe ich in dieser Beziehung kaum Erfahrung.
Ich möchte nicht das Rad noch mal neu erfinden, wenn es schon irgendwo erfolgreich rollt (und keine Copy-Rights drauf sind )
Gruß
Lutz
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Danke Hubert,
für die extrem schnelle Antwort und Hilfe...
sieht so aus als ob Du grade Zeit hättest ?
Wenn Du Dich da schon so gut auskennst, wie kann ich die Zitate aus den anderen Beiträgen eigentlich in meinen Beitrag aufnehmen ohne ein zweites Fenster aufzumachen ? Und dann noch der Hinweis "xxx schrieb:" hinzufügen ?
gruß
Lutz
für die extrem schnelle Antwort und Hilfe...
sieht so aus als ob Du grade Zeit hättest ?
Wenn Du Dich da schon so gut auskennst, wie kann ich die Zitate aus den anderen Beiträgen eigentlich in meinen Beitrag aufnehmen ohne ein zweites Fenster aufzumachen ? Und dann noch der Hinweis "xxx schrieb:" hinzufügen ?
gruß
Lutz
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Lutz,
eine kurze Frage am Rande: Machst Du immer nur einen Reindex, oder baust Du den Index richtig neu auf?
PS: Zitat übernehmen kannst Du, indem Du oben rechts den Button Zitat drückst, des jeweiligen Verfassers.
eine kurze Frage am Rande: Machst Du immer nur einen Reindex, oder baust Du den Index richtig neu auf?
PS: Zitat übernehmen kannst Du, indem Du oben rechts den Button Zitat drückst, des jeweiligen Verfassers.
Zuletzt geändert von Manfred am Mo, 29. Jan 2007 13:07, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Hubert,
ich hab da noch kein eigenes Konzept entwickelt. Ich hab' den REINDEX nachträglich dort eingebaut, wo ich es für nötig hielt. Aber es kann auch passieren, dass ich ihn total neu aufbaue (und in mind. einem fall auch prüfe, ob er schon existiert).
also von allem etwas...
ein grundsätzlicher Neu-Aufbau empfiehlt sich wegen des EXCLUSIV Modus ja auf keinen Fall. Bei Programmstart läuft eine CH_DBF, die auf Existenz der Datenbanken und ihrer Indizes checkt und beides ggf. wieder neu aufbaut...
Gruß
Lutz
ich hab da noch kein eigenes Konzept entwickelt. Ich hab' den REINDEX nachträglich dort eingebaut, wo ich es für nötig hielt. Aber es kann auch passieren, dass ich ihn total neu aufbaue (und in mind. einem fall auch prüfe, ob er schon existiert).
also von allem etwas...
ein grundsätzlicher Neu-Aufbau empfiehlt sich wegen des EXCLUSIV Modus ja auf keinen Fall. Bei Programmstart läuft eine CH_DBF, die auf Existenz der Datenbanken und ihrer Indizes checkt und beides ggf. wieder neu aufbaut...
Gruß
Lutz
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Lutz,
da ich Dir die Frage gestellt hatte, denke ich einmal Du hast Dich nur im Namen verhaspelt.
Also, REINDEX würde ich überhaupt nicht benutzen. Damit werden keine Fehler im Dateiheader z.B. behoben. (Handbuch) Also, immer komplett neu aufbauen.
da ich Dir die Frage gestellt hatte, denke ich einmal Du hast Dich nur im Namen verhaspelt.
Also, REINDEX würde ich überhaupt nicht benutzen. Damit werden keine Fehler im Dateiheader z.B. behoben. (Handbuch) Also, immer komplett neu aufbauen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Ergänzend zu Manfred: Ich habe davon gehört, daß CDX u.U. Indexfehler weiterschleift, wenn man einfach nur neu reindexiert. Also: Indexdatei mit FErase() löschen, erst dann neu aufbauen.
@Lutz: Wenn Du reindexierst und darob Tabellen exclusiv öffnest, hast Du nicht nur an dieser Stelle das Problem, daß die Tabellen geöffnet sein können (NetErr() feuert), sondern auch umgekehrt an allen anderen Stellen, weil ja jemand versuchen kann, eine Tabelle "shared" zu öffnen (Standard), die gerade reindexiert wird (auch hier feuert NetErr() und die Dateiöffnung wird verweigert). Entweder schaffst Du also eine Struktur, die nur dann das Reindexieren erlaubt, wenn kein anderer Benutzer im Programm ist, oder Du setzt (so machen wir das) für alle Tabellen, die reindexiert werden sollen, einen Flag, und sobald es möglich ist, sie exclusiv zu öffnen, werden sie dann reindexiert (Flag wird wieder gelöscht). Beides erfolgt durch eine eigene Fassung von DbUseArea().
@Lutz: Wenn Du reindexierst und darob Tabellen exclusiv öffnest, hast Du nicht nur an dieser Stelle das Problem, daß die Tabellen geöffnet sein können (NetErr() feuert), sondern auch umgekehrt an allen anderen Stellen, weil ja jemand versuchen kann, eine Tabelle "shared" zu öffnen (Standard), die gerade reindexiert wird (auch hier feuert NetErr() und die Dateiöffnung wird verweigert). Entweder schaffst Du also eine Struktur, die nur dann das Reindexieren erlaubt, wenn kein anderer Benutzer im Programm ist, oder Du setzt (so machen wir das) für alle Tabellen, die reindexiert werden sollen, einen Flag, und sobald es möglich ist, sie exclusiv zu öffnen, werden sie dann reindexiert (Flag wird wieder gelöscht). Beides erfolgt durch eine eigene Fassung von DbUseArea().
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Jepp,
habe ich in der Hektik vergessen. Und was auch wichtig ist zu wissen, CDX knallt bei einer Nichtlöschung der Indexdatei alles hinten dran. Dann wächst das Teil recht fröhlich vor sich hin.
habe ich in der Hektik vergessen. Und was auch wichtig ist zu wissen, CDX knallt bei einer Nichtlöschung der Indexdatei alles hinten dran. Dann wächst das Teil recht fröhlich vor sich hin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Manfred,
bitte höflichst um Entschuldigung für die Verwurschtelung....
Meine nächste Frage als Anfänger: wo ist der Unterschied zwischen CDX und NTX ? Und wo ist der Vorteil ?
Ich komme aus der alten Clipper-Welt und da kenne ich nur NTX...
Ich werde also das REINDIZIEREN nach Möglichkeit einstellen. Warum gibt es dann überhaupt diese Funktion, wenn es keinen wirklichen Sinn macht ?
Gruß
Lutz
Lutz
bitte höflichst um Entschuldigung für die Verwurschtelung....
Meine nächste Frage als Anfänger: wo ist der Unterschied zwischen CDX und NTX ? Und wo ist der Vorteil ?
Ich komme aus der alten Clipper-Welt und da kenne ich nur NTX...
Ich werde also das REINDIZIEREN nach Möglichkeit einstellen. Warum gibt es dann überhaupt diese Funktion, wenn es keinen wirklichen Sinn macht ?
Gruß
Lutz
Lutz
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Lutz,
kein Problem, das passiert hier öfter, das Namen verwechselt werden im Eifer des Gefechtes.
Nun, CDX ist ein komprimierter Index und er enthält TAGS, sprich mehrere "Indexdateien" in einem. Du brauchst also nur 1 Datei zu öffnen und hast alles zur Verfügung. Lies am besten einmal im Handbuch die Unterschiede durch und dann entscheide selbst.
Reindex.... Naja, ich weiß auch nicht warum das noch drin ist. Evtl. aus alten Clipperzeiten? Es ist aber noch etliches drin, was eigentlich nicht (mehr) benötigt wird. Aber wer weiß warum, ich weiß es nicht so genau.
kein Problem, das passiert hier öfter, das Namen verwechselt werden im Eifer des Gefechtes.
Nun, CDX ist ein komprimierter Index und er enthält TAGS, sprich mehrere "Indexdateien" in einem. Du brauchst also nur 1 Datei zu öffnen und hast alles zur Verfügung. Lies am besten einmal im Handbuch die Unterschiede durch und dann entscheide selbst.
Reindex.... Naja, ich weiß auch nicht warum das noch drin ist. Evtl. aus alten Clipperzeiten? Es ist aber noch etliches drin, was eigentlich nicht (mehr) benötigt wird. Aber wer weiß warum, ich weiß es nicht so genau.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
@Lutz: REINDEX erzeugt alle bereits mit der Tabelle geöffneten Indexdateien neu, wohingegen INDEX ON ... TO (oder OrdCreate) das nacheinander "händisch" macht, ohne daß die Indexe mit den Tabellen geöffnet werden müssen. Der Vorteil von OrdCreate besteht darin, daß die Indexe neu erzeugt werden können, auch wenn sie beschädigt sind, REINDEX funktioniert nur dann, wenn die Indexe unbeschädigt sind.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Nun, REINDEX hat schon seine Vorteile. Es ist in jedem Fall schneller, als wenn man die Indexdateien neu erstellen muß. Und ich glaube, es wurde auch ein File-Handle weniger benötigt. Was ja unter DOS durchaus noch ein wichtiger Aspekt war.
Und prinzipiell ist der Befehl ja nicht falsch. Aber es ist wie mit Set Relation: Hat man erstmal Probleme damit gehabt, dann vermeidet man das nach Möglichkeit in Zukunft. Und REINDEX hat nun einmal Probleme mit zerschossenen Index-Dateien. Sind die in Ordnung gibt es keinerlei Probleme damit.
Jan
Und prinzipiell ist der Befehl ja nicht falsch. Aber es ist wie mit Set Relation: Hat man erstmal Probleme damit gehabt, dann vermeidet man das nach Möglichkeit in Zukunft. Und REINDEX hat nun einmal Probleme mit zerschossenen Index-Dateien. Sind die in Ordnung gibt es keinerlei Probleme damit.
Jan
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
ups,
sieht so aus, als wenn ich jetzt eine Grundsatzdiskussion über die Indizierung von Datenbanken angezettelt habe... Es gibt also unterschiedliche Meinungen darüber...
also, was ich jetzt und hier verstanden habe ist:
vermeide REINDEX so weit wie möglich, öffne Datenbanken grundsätzlich mit allen Indices und bevor du einen REINDEX machst, lösche den bestehenden und baue ihn neu auf, aber dann möglichst an einer stelle in der Anwendung, wo nix passieren kann..
Danke.
Gruß
Lutz
sieht so aus, als wenn ich jetzt eine Grundsatzdiskussion über die Indizierung von Datenbanken angezettelt habe... Es gibt also unterschiedliche Meinungen darüber...
also, was ich jetzt und hier verstanden habe ist:
vermeide REINDEX so weit wie möglich, öffne Datenbanken grundsätzlich mit allen Indices und bevor du einen REINDEX machst, lösche den bestehenden und baue ihn neu auf, aber dann möglichst an einer stelle in der Anwendung, wo nix passieren kann..
Danke.
Gruß
Lutz
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
soweit ich weiß wird auch bei einem Reindex die komplette Datei neu eingelesen. Somit dürfte es heute keine Vorteile von reindex mehr geben !
Ich vermute, dass reindex nur den Vorteil unter dbase hatte, dass man mit einem Befehl (reindex) den Index neu erzeugen konnte, ohne die Indexbeding neu eingeben zu müssen. Für einen Interpreter ist das ja ganz nett, aber Clipper oder Xbase++ Programme kennen den Indexbegriff genau ! Ich kann mich natürlich auch irren, aber ich habe reindex nie benutzt.
Vorteile von DBFNTX
- die DBF ist immer compatibel zu den alten DOS Welten
- man muss keine neuen DBEs einbinden.
- das kennt man halt
Vorteile von DBFCDX
- die DBF ist immer compatibel zu den alten DOS Welten, nicht aber der Index
- die CDX Indexe sind viel kleiner als die NTX
Vorteile von FOXCDX
- man kann reine ANSI DBFs erstellen und somit OEM / ANSI Konvertierung ausschalten
- man kann spezielle Datentypen verwenden (FOX...)
- die Memodateien sind wesentlich kleiner und effizienter.
...
soweit ich weiß wird auch bei einem Reindex die komplette Datei neu eingelesen. Somit dürfte es heute keine Vorteile von reindex mehr geben !
Ich vermute, dass reindex nur den Vorteil unter dbase hatte, dass man mit einem Befehl (reindex) den Index neu erzeugen konnte, ohne die Indexbeding neu eingeben zu müssen. Für einen Interpreter ist das ja ganz nett, aber Clipper oder Xbase++ Programme kennen den Indexbegriff genau ! Ich kann mich natürlich auch irren, aber ich habe reindex nie benutzt.
Vorteile von DBFNTX
- die DBF ist immer compatibel zu den alten DOS Welten
- man muss keine neuen DBEs einbinden.
- das kennt man halt
Vorteile von DBFCDX
- die DBF ist immer compatibel zu den alten DOS Welten, nicht aber der Index
- die CDX Indexe sind viel kleiner als die NTX
Vorteile von FOXCDX
- man kann reine ANSI DBFs erstellen und somit OEM / ANSI Konvertierung ausschalten
- man kann spezielle Datentypen verwenden (FOX...)
- die Memodateien sind wesentlich kleiner und effizienter.
...
Gruß
Hubert
Hubert