Freigeben über


Erstellen von Standardfeldwerten

Soll Visual FoxPro den Inhalt eines Feldes automatisch beim Hinzufügen eines neuen Datensatzes ausfüllen, können Sie für das betreffende Feld einen Standardwert erstellen. Dieser Standardwert wird unabhängig davon übernommen, ob Sie Daten mit Hilfe eines Formular, eines Datenblattfensters, einer Ansicht oder programmgesteuert eingeben. Der Standardwert bleibt für dieses Feld konstant, bis Sie einen neuen Wert eingeben.

Standardwerte erstellen Sie entweder im Tabellen-Designer oder mit der Programmiersprache. Sie können Standardwerte für jeden Datentyp mit Ausnahme des Typs Objekt festlegen.

So weisen Sie einem Feld in einer Datenbanktabelle einen Standardwert zu

  1. Wählen Sie die Tabelle im Datenbank-Designer aus.

  2. Klicken Sie im Menü Datenbank auf Ändern.

  3. Wählen Sie im Tabellen-Designer das Feld aus, dem Sie den Standardwert zuweisen möchten.

  4. Geben Sie in das Feld Standardwert den Feldwert ein, der in allen neuen Datensätzen angezeigt werden soll (schließen Sie Zeichenfelder in Anführungszeichen ein).

  5. Wählen Sie OK.

    - Oder -

  • Verwenden Sie den CREATE TABLE-Befehl mit der DEFAULT-Klausel.

Beispielsweise soll Ihre Anwendung die maximale Bestellmenge für einen neuen Kunden so lange begrenzen, bis Sie Zeit gehabt haben, seine Kreditfähigkeit zu überprüfen und seinen Kreditrahmen festzulegen. Das folgende Beispiel erstellt das Feld maxordamt mit einem Standardwert von 1000:

CREATE TABLE customer (cust_id C(6), company C(40), contact C(30), ;
                maxordamt Y(4) DEFAULT 1000)

Wenn Ihre Tabelle customer bereits die Spalte maxordamt enthält, können Sie einen Standardwert für die Spalte mit dem folgenden Befehl hinzufügen:

ALTER TABLE customer ALTER COLUMN maxordamt SET DEFAULT 1000

Verwenden von Standardwerten zur Beschleunigung der Dateneingabe

Mit Hilfe von Standardwerten können Sie die Dateneingabe für die Benutzer Ihrer Anwendung beschleunigen. Diese können ein Feld mit Standardwert überspringen, sofern sie keinen anderen Wert eingeben möchten. Wenn Ihre Firma z. B. hauptsächlich Inlandskunden hat, haben Sie die Möglichkeit, das Feld country/region in der Tabelle customer einer Datenbank automatisch mit dem Namen Ihres Landes/Ihrer Region auszufüllen. Falls Sie einen Datensatz für einen ausländischen Kunden eingeben müssen, können Sie den Namen Ihres Landes/Ihrer Region mit dem Namen des Landes/der Region des jeweiligen Kunden überschreiben.

Tipp   Wenn eine der Geschäftsregeln Ihrer Anwendung erfordert, dass ein Feld einen Eintrag enthalten muss, können Sie mit einem Standardwert sicherstellen, dass eine bestimmte Gültigkeitsregel auf Feld- oder Datensatzebene nicht verletzt wird.

Wenn Sie eine Tabelle aus einer Datenbank entfernen oder löschen, werden alle an diese Tabelle gebundenen Standardwerte ebenfalls aus der Datenbank gelöscht. Gespeicherte Prozeduren, auf die der entfernte oder gelöschte Standardwert verweist, bleiben jedoch weiterhin gespeichert.

Wenn Sie keinen Standardwert angeben, wird ein leerer Wert (wie für jeden Datentyp definiert) eingefügt, außer wenn SET NULL auf ON gesetzt ist. Diese Maßnahme erhält die Abwärtskompatibilität mit möglicherweise vorhandenem FoxPro-Code.

Falls das Feld NULL-Werte verwenden soll, können Sie .NULL. als Standardwert angeben. Dann fügt Visual FoxPro, unabhängig davon, ob SET NULL auf ON oder OFF gesetzt ist, .NULL. bei allen Befehlen mit Ausnahme von APPEND BLANK ein.

Zulässige Standardwerte

Sie können festlegen, dass Standardwerte entweder Skalarwerte (wie z. B. "eine Zahl") oder Ausdrücke sind, die zu einer skalaren Größe ausgewertet werden. Außerdem können Sie jeden gültigen Xbase-Ausdruck festlegen, der einen mit dem Datentyp für das Feld übereinstimmenden Wert zurückgibt.

Visual FoxPro wertet Ausdrücke zu Datentypen aus, wenn die Tabellenstruktur geschlossen ist. Stimmt der Datentyp mit dem dazugehörigen Feldtyp nicht überein, gibt Visual FoxPro eine Fehlermeldung aus. Wenn es sich bei dem Ausdruck um eine benutzerdefinierte Funktion (UDF = User Defined Function) handelt oder er eine UDF enthält, wird er nicht ausgewertet.

Wenn Sie den Standardwert mit der Programmiersprache erstellen und die Datentypen dabei nicht übereinstimmen, lösen die Befehle CREATE TABLE oder ALTER TABLE einen Fehler aus. Ist der Ausdruck eine UDF oder enthält er eine UDF, wird er zum Zeitpunkt der Erstellung nicht ausgewertet, und es wird kein Fehler zurückgegeben.

Wann Standardwerte übernommen werden

Bei Ausgabe der Befehle APPEND, APPEND BLANK oder INSERT werden Standardwerte (bei Bedarf) ausgewertet und in die passenden Felder eingefügt.

Wenn Sie Werte mit den Befehlen APPEND FROM oder INSERT - SQL zuweisen, weist Visual FoxPro allen nicht explizit zugewiesenen Feldern automatisch Standardwerte zu. In die Befehle APPEND****FROM und INSERT - SQL können ebenfalls Standardwerte einbezogen werden. Wenn einer dieser Befehle angewendet wird, überschreiben die Standardwerte jedoch nicht die in Feldern bereits vorhandenen Werte. Falls an- oder eingefügte Felder Werte enthalten, bleibt der vorhandene Wert erhalten, während der Datensatz an- oder eingefügt wird; der Standardwert wird nicht übernommen.

Verwenden von Standardwerten zum automatischen Erstellen von NOT NULL-Feldern

Standardwerte sind besonders nützlich zum automatischen Ausfüllen von Feldern, die keine NULL-Werte zulassen. Beim Hinzufügen eines neuen Datensatzes werden zuerst die Standardwerte übernommen. Anschließend wird jedes Feld in der Definitionsreihenfolge auf fehlende Informationen hin überprüft. Dieses Vorgehen stellt sicher, dass als NOT NULL gekennzeichnete Felder mit Standardwerten erstellt werden können, bevor die NOT NULL-Beschränkung übernommen wird.

Festlegen eines Eingabeformats

Durch die Verwendung von Eingabeformaten werden Zeichensetzung, Leerzeichen und andere Formateigenschaften von Werten bei deren Eingabe in das Feld definiert. Die Werte werden dadurch einheitlich gespeichert, wodurch Dateneingabefehler vermieden und die Verarbeitung effizienter gestaltet werden kann. Das Einrichten eines Eingabeformats für ein numerisches Feld, in dem Telefonnummern gespeichert werden, hilft dem Benutzenden, das Feld schnell auszufüllen, da die Zeichensetzung und die Leerzeichen bereits im Format vorgegeben sind.

So richten Sie ein Eingabeformat ein

  • Geben Sie im Tabellen-Designer unter Anzeige das gewünschte Format im Feld Eingabemaske ein.

    - Oder -

  • Verwenden Sie die DBSETPROP( )-Funktion zum Setzen der InputMask-Eigenschaft.

    Beispielsweise legt der folgende Code ein Eingabeformat für eine Postleitzahl fest:

    DBSetProp("orders.postalcode","field","InputMask", "99999-9999")
    

Siehe auch

Auswählen von Datentypen | Steuern der Anzeige von Feldern | Arbeiten mit Tabellen | Erzwingen von Geschäftsregeln | Tabellen-Designer | CREATE TABLE | Einschränken des Zugriffs auf Felder