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.