| |
|
|
Michael Wodrich | Erfolg% = @db("Put",S1,S2)
Syntax vor v10.0: Erfolg% = @dbPut(S1,S2)
Der String P:S2 wird in Feld P:S1 des aktuellen Datensatzes geschrieben.
Parameter: P:S1 - Name 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 LINK:[DBPUT] ein Memo-Feld zu schreiben. Hierfür ist LINK:[dbPutMemo] zu verwenden.
Während dbPut 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 Felflä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 dbPut übergebene String nicht numerisch auszuwerten ist, wird dbPut nicht ausgeführt und gibt 0 (null) 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. Ausserdem muss das Datum ein gültiges gregorianisches Datum sein. Im Fehlerfall gibt dbPut 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 (null) ist ein Fehler aufgetreten.
(in XBase bekannt unter: REPLACE S1 WITH S2)
Um mit der Feldnummer in das Datenfeld zu schreiben wird LINK:[dbPutField] eingesetzt.
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 LINKF:[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 ▲ |
|
|
|