Erstellung einer Klasse für StorableObjects

Erstellen einer Tabellen-Klasse:

[SOTable('CUSTOMER')] // Name der Tabelle in der Datenbank 
TCustomer = class(TStorableObject)
private
  sName : String;
public
  [SOField('CUS_ID', ftAutoInc, 0, 'ID', [sflPrimaryKey])]
  property ID; // Ist bereits in der Basisklasse TStorableObject deklariert und muss nur veröffentlicht werden.

  [SOField('CUS_NAME', ftString, 50, 'Name')]
  [SOFieldEx(2,50)]
  [SODefaultValue('(leer)')]
  property Name : String read sName write SetName; 
end;

procedure TCustomer.SetName(Value : String);
begin
  UpdateValue(sName, Value); // Rufe die Methode in TStorableObject zur Aktualisierung des Wertes der Property "Name"
end;

Attribute:

Die Definition der Klasse TCustomer erfolgt per Ableitung von TStorableObject. Über die Anweisungen in [] bei der jeweiligen Property werden die Eigenschaften der Property beschrieben.

Der Aufbau ist dabei folgender:

[SOField(<Feldname>, <Datentyp>, <Feldlänge>, <Klartextname>, [<Flags>], [Join-Feldname])].

<Feldname>      = Name des Tabellenfeldes in der Notation: Feld oder auch Tabellenname.Feldname.

<Datentyp>      = Datentyp des Feldes <Feldname>. Mögliche Werte siehe unterstützte Datentypen.

<Feldlänge>     = Länge des Feldes. Wird nur beim Typ ftString benötigt. Bei allen anderen Typen kann eine 0 angegeben werden.

<Klartextname>  = Dieser Text wird als Beschriftung in SOView und als Überschrift in SOGridView verwendet.

<Flags>         = Definiert die Verhaltensweise des Feldes. Siehe mögliche Flags bei Felddefinitionen.
<Join-Feldname> = Name des Feldes in der Notation: Fremd-Tabellenname.Feldname für ein Join bzw. Nested SQL Select.

Zusatzattribute (optional):

[SOFieldEx(<MinLength>, <MaxLength>)]

<MinLength> = Min. Länge der Eingabe für das Feld.

<MaxLength> = Max. Länge der Eingabe für das Feld. Darf nicht größer sein als Max. Länge des Datenfeldes in der Datenbank.

Standardwertvorgabe (optional):

[SODefaultValue(<Wert>)]

Wert = Ein Wert vom Typ Integer, String, Boolean, TDateTime oder Real.