Discussion:
Private Datasession
(zu alt für eine Antwort)
Walter Sponagel
2010-05-08 17:05:15 UTC
Permalink
Hallo
Ich habe mal mit privaten Datasessions herumgespielt. Bisher benutze ich das
noch nicht.
Da ich verschiedene Datenbestände habe, muss ich innerhalb des Programm beim
Aufruf der Form zwischen den Datenbeständen herumschlaten können. Jetzt
passiert folgendes.
Wenn ich mit "use daten1\datei1.dbf index cdx1\datei1.cdx order 1" im init
der Form eine Tabelle öffne ist alles ok.
Rufe ich die Form erneut auf, dann verliert die Tabelle in der ersten Form
einfach ihre Order. Wobei die Indizes immer noch vorhanden sind. Ich kann
also mit "set order to1" das wieder setzen.

Kann ich verhindern, dass das passiert?

Gruß Walter
Olaf Doschke
2010-05-08 19:50:46 UTC
Permalink
Probiere es mal ohne INDEX ...CDX, sondern gebe nur den Tagnamen an:
Use Tabelle ORDER Tagname ...

Die Order in den privaten Datasessions sollte genauso unabhängig voneinander
sein, wie die Order in verschiedenen Workareas derselben Datasession (bei
USE AGAIN mit anderem Alias), da gibt es keine Seiteneffekte.

Tschüß, Olaf.
Jürgen Wondzinski
2010-05-10 06:49:34 UTC
Permalink
Hallo Walter,
Post by Walter Sponagel
Wenn ich mit "use daten1\datei1.dbf index cdx1\datei1.cdx order 1"
Du willst sagen, daß du die drei Bestandteile einer Tabelle in
unterschiedlichen Verzeichnissen speicherst? WOZU? WESHALB? Merkregel
Nummer 1: Alle Teildateien einer Tabelle (dbf, fpt, cdx) gehören immer
zusammen und werden immer zusammen umbenannt, kopiert oder gelöscht.
Dadurch entfällt dann auch die Angabe der Indexdatei, weil diese
normalerweise beim USE automatisch mit geöffnet wird (genauso wie auch die
FPT mit geöffnet wird)

Merkregel Numemr 2: Niemals mit dem NUMERISCHEN Order arbeiten, da sich die
Sequenz einzelner Tags innerhalb der CDX bei einem MODI STRU ändern kann.
Immer den TAG-NAMEN verwenden! Also "ORDER TAG KundenNr" Der Name eines
Index ändert sich nicht, wohl aber desssen Reihenfolge in der CDX.

Ich vermute mal, dass deine Beobachtung seine Ursache in deinem hmm...
"kreativen" Umgang mit den Tabellen-Bestandteilen liegt. Im Normalfall
setzt man das Property für PrivateDatasession in der Entwicklungsumgebung,
zieht die Tabelle in die Datenumgebung, setzt dort seine Sortierung und
alles is gut. Wie genau bzw in welchem CodeTeil öffnest du deine Tabelle?
--
wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009



"*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
..·`.Visual FoxPro: It's magic !
(¸.·``··*
Walter Sponagel
2010-05-10 08:46:03 UTC
Permalink
Ich habe mein Programm so gebaut, dass ich bei Änderungen der Struktur die
alte Tabelle umbennene, eine neue Tabelle anlege inclusive der Indizes und
dann aus der umbenannten Tabelle die Werte wieder einlese, einfach um vor
Ort nichts groß machen zu müssen, damit macht das mit der Indexnummer kein
Problem.

Also ich habe das im Init probiert. Habe aber auch einfach mal eine Form
geöffnet, dann im Befehlsfenster auf die Datasessesion umgeschaltet und
manuell den Befehl eingegeben. Gleiches Verhalten.
Post by Jürgen Wondzinski
Hallo Walter,
Post by Walter Sponagel
Wenn ich mit "use daten1\datei1.dbf index cdx1\datei1.cdx order 1"
Du willst sagen, daß du die drei Bestandteile einer Tabelle in
unterschiedlichen Verzeichnissen speicherst? WOZU? WESHALB? Merkregel
Nummer 1: Alle Teildateien einer Tabelle (dbf, fpt, cdx) gehören immer
zusammen und werden immer zusammen umbenannt, kopiert oder gelöscht.
Dadurch entfällt dann auch die Angabe der Indexdatei, weil diese
normalerweise beim USE automatisch mit geöffnet wird (genauso wie auch die
FPT mit geöffnet wird)
Merkregel Numemr 2: Niemals mit dem NUMERISCHEN Order arbeiten, da sich
die Sequenz einzelner Tags innerhalb der CDX bei einem MODI STRU ändern
kann. Immer den TAG-NAMEN verwenden! Also "ORDER TAG KundenNr" Der Name
eines Index ändert sich nicht, wohl aber desssen Reihenfolge in der CDX.
Ich vermute mal, dass deine Beobachtung seine Ursache in deinem hmm...
"kreativen" Umgang mit den Tabellen-Bestandteilen liegt. Im Normalfall
setzt man das Property für PrivateDatasession in der Entwicklungsumgebung,
zieht die Tabelle in die Datenumgebung, setzt dort seine Sortierung und
alles is gut. Wie genau bzw in welchem CodeTeil öffnest du deine Tabelle?
--
wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009
"*Žš)
ž.·Žž.·*Žš) ž.·*š)
(ž.·Ž. (ž.·` *
..·`.Visual FoxPro: It's magic !
(ž.·``··*
Loading...