| |
|
|
Michael Wodrich | Erfolg% = @db("PutField",I1,S2)
Syntax vor v10.0: Erfolg% = @dbPutField(I1,S2)
Der String P:S2 wird in Feld Nummer P:I1 des aktuellen Datensatzes geschrieben.
Parameter: P:I1 - Nummer des Feldes P:S2 - Neuer Inhalt
Der Rückgabewert ist 1, wenn der Befehl erfolgreich war. Er ist 0 (null), wenn ein Fehler auftrat (s.u.) oder wenn versucht wurde, mit @DBPUTFIELD ein Memo-Feld zu schreiben. Hierfür ist LINK:[dbPutMemo] zu verwenden.
Während @dbPutField bis Version 6.x alles kritiklos in die Datentabelle geschrieben hat, was dann bei der Indizierung (insbesondere bei numerischen Feldern) zu Problemen führte, so wird jetzt alles überprüft und ggf. korrigiert und formatiert:
T: Textfelder werden - wie bisher - ggf. auf die Feldlänge gekürzt. Kein Fehler. N: Numerische Felder werden überprüft und korrekt formatiert abgespeichert (rechtsbündig mit führenden Leerzeichen und der definierten Anzahl Nachkommastellen). Wenn der mit dbPutField übergebene String nicht numerisch auszuwerten ist, wird dbPutField nicht ausgeführt und gibt 0 zurück. L: Logische Felder: Hier wird das erste Zeichen der Eingabe ausgewertet. Die Buchstaben YyJjTt werden als wahr gewertet und als "T" in die Tabelle geschrieben; bei NnFf wird ein "F" geschrieben. D: Datumsfelder müssen im richtigen db-Format (also wie bisher "JJJJMMTT") eingegeben werden. Außerdem muss das Datum ein gültiges gregorianisches Datum sein. Im Fehlerfall gibt dbPutField 0 (null) zurück.
Im Fehlerfall erfolgt keine Fehlermeldung, sondern der Rückgabewert der Funktion muss vom Programmierer ausgewertet werden: Bei 1 war alles OK, bei 0 ist ein Fehler aufgetreten.
Bei numerischen Feldern kann der Datenbank-Inhalt mit LINKF:[Val] in eine Zahl umgewandelt werden, mit LINKF:[Str] wird wieder ein String daraus.
Für die Umwandlung von Datumsfeldern gibt es die Funktionen LINKF:[DToC] (String nach Datum) und LINKF:[CToD] (Datum nach String). Dieser Befehl betrifft nur die "Arbeitskopie" des Datensatzes im Speicher. Erst mit LINK:[dbPutRec] wird er endgültig in die Datenbanktabelle geschrieben.
Die Datenbankfelder speichern alle Daten als String. Benutzen Sie die eingebauten Umwandlungsfunktionen.
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 19.01.2038 ▲ |
|
|
|