Reihenfolge beim UPDATE

25/11/2008 - 16:20 von Matthias Kahlert | Report spam
Habadere mitanander,

Folgender UPDATE:
UPDATE c_test SET feld1 = VAL(SUBSTR(feld2,2)), feld2 = ""

Kann mir irgendjemand sagen, ob der hier gezeigte UPDATE immer
funktioniert? Oder besser gesagt: Ist es sichergestellt, dass bei einem
mehrfachen UPDATE wie hier dieser immer von Links nach Rechts
abgearbeitet werden, oder könnte es vorkommen dass VFP hier etwas
"rumoptimiert"?

Hintergrund: Ich muss Werte aus einem Textfile importieren, und diese
dann etwas bearbeiten und zwischen Feldern rumwerfen inkl.
Typkonvertierung oder Zeichengeschnippel. Ich würde hier gerne mit einem
einzigen UPDATE arbeiten, ich denke das dürfte etwas flotter ablaufen
als mehrere UPDATEs nacheinander (das oben ist nur ein vereinfachtes
Beispiel).

Matthias Kahlert
[MaxPro] Software
http://www.max-pro.de
 

Lesen sie die antworten

#1 Olaf Doschke
25/11/2008 - 16:51 | Warnen spam
Hintergrund: Ich muss Werte aus einem Textfile importieren, und diese dann
etwas bearbeiten und zwischen Feldern rumwerfen inkl.



Die Hilfe spzifiziert dazu nichts, es sieht so aus, als würden
die Zuweisungen nacheinander abgearbeitet werden,
aber ich würd mich nicht nur nicht darauf verlassen, ich
hàtte keine Lust mir die Reihenfolge unbedingt so ausdenken
zu müssen, daß sich die Felder nur so geordnet aktualisieren,
daß insgesamt nichts durcheinadner geràt. Ziel<>Quelle
ist doch einfach immer übersichtlicher.

Also warum Updates in derselben Tabelle?

An und für sich hast Du soweit ich das sehe in der einen Tabelle
dann ja ein "echtes" Feld und ein Textfeld zum importieren aus der
Textdatei. Ich würde das einfach in eine Import- und eine Ziel-
tabelle splitten und so machen:

Try
Use Importtabelle Exclusive

Append From <<File>>

Use Zieltabelle In 0

Insert Into Zieltabelle (feld1, feld2);
Select;
Umwandlung1(Importtabelle.feld1,Importtabelle.feld2) As feld1;
Umwandlung2(Importtabelle.feld1,Importtabelle.feld2) As feld2;
From Import

Zap in Importtabelle
Catch
? "Es wird gerade woanders importiert"
Finally
Use in Select("Importtabelle")
Endtry

Wenn man sich an gewissen Normen hàlt, kann die Importtabelle
sogar schon einige Felder im korrekten Feldtyp haben. So wird
von einer SDF-Textdatei ein Datum im Format YYYYMMDD
korrekt in ein Datumsfeld gewandelt.

Tschüß, Olaf.

Ähnliche fragen