expertenaustausch > microsoft.* > microsoft.fox

Rainer Dalibor (06.02.2004, 14:02)
Hi Newsgroup,

ich habe ein Programm zur Anwendung im Netwerk erstellt, auf das
verschiedene Nutzer zugreifen sollen.

In den diversen .dbf häufen sich mit der Zeit zahlreiche mit "DELETE"
gekennzeichnete Datensätze an.

Ich möchte das "PACK" automatisieren.

Leider sind die Tabellen mit "EXLUSIVE=.F." vereinbart.

Wie kann ich abfragen, wer sonst noch mit der Tabelle arbeitet?
Dann könnte ich "ECLUSIVE=.T." setzen und die Tabelle packen.

Danke und Gruß

Rainer
Peter Stiens (06.02.2004, 14:22)
Hallo Rainer,

> Ich möchte das "PACK" automatisieren.
> Leider sind die Tabellen mit "EXLUSIVE=.F." vereinbart.


erstelle dir eine kleine methode, beispielsweise in einem timer.

falls du mit VFP 8 arbeitest:
try
use meinetabelle exclusive
pack
use
catch
* man muss hier mix machen, es arbeitet halt noch
* jemand mit der tabelle
endtry

falls du mit VFP < 8 arbeitest:
m.lcOlderror = on("ERROR")
on error *
use meinetabelle exclusive
pack
use
on error &lcOlderror

HTH
Peter (06.02.2004, 16:07)
Wird nichts neues sein, aber ich "verbrauche" die alten
Sätze wieder.
Jochen Kirstaetter (06.02.2004, 19:39)
Hallo Rainer,

> In den diversen .dbf häufen sich mit der Zeit zahlreiche mit "DELETE"
> gekennzeichnete Datensätze an.
> Ich möchte das "PACK" automatisieren.


Hmm, vielleicht könnte PK-Recycling interessanter sein. Falls dir der
Ansatz zusagen sollte, lass' mal Google über diese Newsgroup laufen, Woody
hat hier schon mehrfach eine entsprechende Recycling-Methode
veröffentlicht...

Oder du probierst mal direkt per Mail

Oder: "Spiel's noch einmal, Woody."

Bis denne, JoKi
Olaf Doschke (15.02.2004, 14:31)
Hallo Jochen,

Datensatzrecycling ist ja noch OK, aber
Primärschlüssel zu recyclen könnte u.U.
zu sehr merkwürdigen Verweisen auf ganz
falsche Daten führen.

Insofern: Index auf DELETED(), dann kann
man mit SEEK ganz schnell den ersten gelöscht
markierten Datensatz finden und diesen RECALLEn.

Direkt im Anschluß würde ich aber einen neuen
PK generieren lassen...

Tschüß, Olaf.
Olaf Doschke (15.02.2004, 14:39)
> Direkt im Anschluß würde ich aber einen neuen
> PK generieren lassen...


Dazu fällt mir noch ein, daß man dann aber vorsichtig mit
RI-Code sein muß, denn schließlich will man damit weder
eine Aktualisierungsweitergabe auslösen noch sich an einer
Änderungsunterdrückungsregel die Zähne ausbeißen...

Tschüß, Olaf.
Ähnliche Themen