VFP9 SP2 und Index Befehl

23/04/2008 - 16:30 von Jörg Schneider | Report spam
Moin Leute!

Ich hab hier was seltsames festgestellt.
VFP9 SP1:
use table
Index on lfdnr tag lfdnr

VFP9 SP2:
use table
Index on lfdnr tag lfdnr
Fehlermeldung: File must be opened exclusively

Bitte? Was soll das? Warum ist hier die Funktionalitàt geàndert worden?
Es ist zwar logischer das, eine Tabelle beim indexieren exclusiv
geöffnet werden muss, aber die können doch nicht mitten in einem SP die
Funktionalitàt àndern? Vor allem finde ich in der Doku zu SP2 nichts
darüber! Mein Code an dieser Stelle làuft seit VFP7 so! Und nur duch
zufall bin ich drauf gestoßen.
Was wurde noch alles undokumentiert geàndert?
So kann ich keinen Kunden guten gewissens SP2 geben!

Grüße
Jörg Schneider
 

Lesen sie die antworten

#1 Jürgen Wondzinski
23/04/2008 - 16:57 | Warnen spam
Hi Jörg

Ist korrektes Verhalten, das war ein Bugfix, der im SP2 reinkam.
die können doch nicht mitten in einem SP die Funktionalitàt àndern





ach? SPs sind nun mal zum Bugfixen da!

Wenn du bislang nen Index erstellt hast, ohne dass die Tabelle exclusiv
geöffnet war, hast du einfach nur Glück gehabt, bzw hast die dadurch
entstandenen Probleme (noch) nicht bemerkt... ;)

Also mal überlegen:
Tabelle ist Shared offen. Zwei User sind drauf und geben Daten ein. User2
drückt nen Knopf, der dann nen INDEX ON ausführt. Da dieser Index erst mal
nur dem User2 bekannt ist, werden alle Änderungen, die User1 macht, NICHT in
den neuen Index eingetragen! Danach is Feierabend, und beide User
schliesssen die App, und gehn heim. Am nàchsten Morgen starten beide die App
wieder, und nun hat auch User1 die Inof über den Index, und nun àndern beide
die Indexxeintràge. Aber: User1 findet die gestern eingebenen Daten nicht,
denn die wurden gestern ja noch nicht im Index gespeichert. Also müsste man
jetzt nen reindex machen, und dazu braucht man was? jawoll: Exclusiven
Zugriff.

Warum also nicht gleich den Index im Exclusiv-Modus anlegen?

Hintergrund: Bislang konnnte man einen CDX-Index auch im Shared-Betrieb
anlegen, wenn noch überhaupt _kein_ Index vorhanden ist. Sobald ein CDX da
ist gehts eh nicht.

Man kann auch weiterhin lokale temp-Indices anlegen:

Use Tabelle Shared
INDEX on Feld1 TO xy.idx
INDEX on Feld1 TAG Feld1 OF test.cdx

nur das hier geht nicht:
INDEX ON Feld1 TAG feld1


Siehe dazu auch:
http://blogs.msdn.com/calvin_hsia/a...48893.aspx
Anno 2005!




Jürgen Wondzinski

Microsoft Visual FoxPro Technologieberater
Microsoft Most Valuable Professional seit 1996
"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

Ähnliche fragen