Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zerschossene Indexierung bei Paradoxtabellen (https://www.delphipraxis.net/23816-zerschossene-indexierung-bei-paradoxtabellen.html)

alfred 10. Jun 2004 08:49


Zerschossene Indexierung bei Paradoxtabellen
 
Hi Leute,

bei uns passiert es immer wieder, dass die Indizieung von Paradoxtabellen kaputt geht.
Kennt jemand das "Phänomen" ? Weiß jemand wann oder wie das passiert und vor allem was man
dagegen tun kann ? Wenn das kein hausgemachtes Problem ist, sollte man von Paradox lieber
die Finger lassen und stattdessen wieder zu dBase wechseln ? Ich bin für jede Meinung dankbar. :witch:

Gruss Alfred

franktron 10. Jun 2004 08:53

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Das ist eine macke von der BDE leider hab leider auch keine 100% lösung.

Ich hab das sogemacht dann ist nicht mehr ganz so schlimm

1. nach Jedem Post ein Flushtable
2. beim Programm Start (nur den 1. am Tag) alle Indexe prüfen ob noch heile wenn nicht schnell neumachen :-D

alfred 10. Jun 2004 09:06

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Hallo franktron,

Das ist ein ganz schöner Aufwand.
Sollte man da nicht lieber gleich die Finger von solchen Konstrukten lassen ?

:witch:

Gruss alfred

alfred 10. Jun 2004 09:25

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Sag mal franktron,

wie läuft das technisch ab ? Mit einer Flush - Tabelle habe ich bisher
noch nichts zu tun gehabt. Und die Indexierung neu erstellen - machst Du ein
delete auf die Inizies und dann ein über eine Query - Komponente
create index I$Tabelle_INDEX1 on Tabelle(Feld1,Feld2) ?

Gruss alfred

franktron 10. Jun 2004 09:41

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Also Flush geht so
Code:
function FlushTable(Tbl: TTable): Boolean;
begin
   Try
      WriteLog_Tab('FlushTable',Tbl.Name+';'+Tbl.TableName+';'+Tbl.Fields.Fields[0].AsString);
   except
   End;
   Result:=(DbiSaveChanges(Tbl.handle)=DBIERR_NONE);
end;
Und das mit den Index neu erstellen.

Hab ich eine Routine geschrieben die die Index erstellt.
DeleteIndex
und AddIndex

und die Finger von der Sache lasen kann ich nur sagen immer.
Ich würde Mysql oder Flashfiler benutzen je nachdem was man braucht single user oder Multiuser

alfred 10. Jun 2004 09:47

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Prima franktron,

da hast Du mir ein Stück weiter geholfen. - Danke !
Sag mal, von dBase bist Du wohl nicht begeistert ? Das ist zwar etwas der Zeit
hinterher - aber doch sehr stabil und einfach.

Gruss alfred

ak1 10. Jun 2004 10:09

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Indexe zerschießen doch oft bei Fehlern im Programm und/oder wenn Tabellen nicht richtig geschlossen werden. Da ist es oft ratsam mit "try" "finally" zu arbeiten und im Finally Block die tabellen zu schließen und evtl. freizugeben (wenn selbst erstellt). So mache ich das, habe seit dem keine Probleme mehr gehabt.

alfred 10. Jun 2004 10:41

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Hi ak1,

Du hattest das also auch schon ? Arbeitest Du in diesem Zusammenhang mit TTable. Ich arbeite
in der Regel nur mit TQuery. Wenn die Query ein close bekommt, sollte der Käse doch eigentlich
gegesssen sein.
Aber ich glaube, Du hast irgendwo recht. Wenn ich mich entsinne, dann ist das bei mir mal im Testbetrieb aufgetreten als ich das Programm mit dem Taskmanager abgeschossen habe. Nur ist das kein Trost. Wenn der Rechner den Geist aufgibt, das kann auch von einer anderen Anwendung ausgelöst werden, dann wird mein finally evtl. nicht mehr ausgeführt und der ganze Kram ist hin.

:witch:

Gruss alfred

ak1 10. Jun 2004 11:38

Re: Zerschossene Indexierung bei Paradoxtabellen
 
Hallo,

es waren immer TTable-Komponenten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz