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.