In dem folgenden Programmbeispiel wird erläutert wie man die Klasse TStorableObjectList verwendet.
program ListTest; interface uses SOUnit, SOStorageProviderADOUnit; type // Klassendefinition für Customer [SOTable('CUSTOMER')] TCustomer = class(TStorableObject) private sName : String; sSurname : String; sZip : String; sStreet : String; sPlace : String; procedure SetName(Value : String); procedure SetSurname(Value : String); procedure SetZip(Value : String); procedure SetStreet(Value : String); procedure SetPlace(Value : String); public [SOField('CUS_ID', ftAutoInc, 0, [sflPrimaryKey])] property ID; [SOField('CUS_NAME', ftString, 50, [sflSort])] property Name : String read sName write SetName; [SOField('CUS_SURNAME', ftString, 50, [sflSort])] property Surname : String read sSurname write SetSurname; [SOField('CUS_ZIP', ftString, 10)] property Zip : String read sZip write SetZip; [SOField('CUS_STREET', ftString, 255)] property Street : String read sStreet write SetStreet; [SOField('CUS_PLACE', ftString, 100)] property Place : String read sPlace write SetPlace; end; // Liste für Customer definieren TCustomerList = class(TStorableObjectList<TCustomer>); implementation { TSOCustomer } procedure TCustomer.SetName(Value : String); begin UpdateValue(sName,Value); end; procedure TCustomer.SetSurname(Value : String); begin UpdateValue(sSurname,Value); end; procedure TCustomer.SetZip(Value : String); begin UpdateValue(sZip,Value); end; procedure TCustomer.SetStreet(Value : String); begin UpdateValue(sStreet,Value); end; procedure TCustomer.SetPlace(Value : String); begin UpdateValue(sPlace,Value); end; // Testroutine var sp : TStorageProviderADODB; procedure LoadCustomers; var cus : TCustomer; cl : TCustomerList; begin // Liste für Customer erzeugen cl := TCustomerList.Create(TCustomer, sp); // Lade alle Customer cl.Load; // Customer ausgeben for cus in cl do writeln(cus.Name,' ',cus.SurName); cl.Free; end; begin sp := TStorageProviderADODB.Create(sodbtAccess, 0, adoConn); TCustomer.InitTable(sp); end.