{"id":265,"date":"2018-03-26T09:23:04","date_gmt":"2018-03-26T09:23:04","guid":{"rendered":"http:\/\/hahne-software.de\/?p=265"},"modified":"2018-03-26T10:18:07","modified_gmt":"2018-03-26T10:18:07","slug":"verwendung-von-tstorableobjectlist","status":"publish","type":"post","link":"https:\/\/hahne-software.de\/?p=265","title":{"rendered":"Verwendung von TStorableObjectList"},"content":{"rendered":"<p>In dem folgenden Programmbeispiel wird erl\u00e4utert wie man die Klasse TStorableObjectList verwendet.<\/p>\n<pre>program ListTest;\r\n\r\ninterface\r\n\r\nuses SOUnit, SOStorageProviderADOUnit; \r\n\r\ntype \r\n  \/\/ Klassendefinition f\u00fcr Customer\r\n  \r\n  [SOTable('CUSTOMER')]\r\n  TCustomer = class(TStorableObject)\r\n  private\r\n    sName : String;\r\n    sSurname : String;\r\n    sZip : String;\r\n    sStreet : String;\r\n    sPlace : String;\r\n\r\n    procedure SetName(Value : String);\r\n    procedure SetSurname(Value : String);\r\n    procedure SetZip(Value : String);\r\n    procedure SetStreet(Value : String);\r\n    procedure SetPlace(Value : String);\r\n  public\r\n    [SOField('CUS_ID', ftAutoInc, 0, [sflPrimaryKey])]\r\n    property ID;\r\n\r\n    [SOField('CUS_NAME', ftString, 50, [sflSort])]\r\n    property Name : String read sName write SetName;\r\n\r\n    [SOField('CUS_SURNAME', ftString, 50, [sflSort])]\r\n    property Surname : String read sSurname write SetSurname;\r\n\r\n    [SOField('CUS_ZIP', ftString, 10)]\r\n    property Zip : String read sZip write SetZip;\r\n\r\n    [SOField('CUS_STREET', ftString, 255)]\r\n    property Street : String read sStreet write SetStreet;\r\n\r\n    [SOField('CUS_PLACE', ftString, 100)]\r\n    property Place : String read sPlace write SetPlace;\r\n  end;\r\n\r\n  \/\/ Liste f\u00fcr Customer definieren\r\n  TCustomerList = class(TStorableObjectList&lt;TCustomer&gt;);\r\n\r\nimplementation\r\n\r\n{ TSOCustomer }\r\n\r\nprocedure TCustomer.SetName(Value : String);\r\nbegin\r\n UpdateValue(sName,Value);\r\nend;\r\n\r\nprocedure TCustomer.SetSurname(Value : String);\r\nbegin\r\n UpdateValue(sSurname,Value);\r\nend;\r\n\r\nprocedure TCustomer.SetZip(Value : String);\r\nbegin\r\n UpdateValue(sZip,Value);\r\nend;\r\n\r\nprocedure TCustomer.SetStreet(Value : String);\r\nbegin\r\n UpdateValue(sStreet,Value);\r\nend;\r\n\r\nprocedure TCustomer.SetPlace(Value : String);\r\nbegin\r\n UpdateValue(sPlace,Value);\r\nend;\r\n\r\n\/\/ Testroutine\r\nvar \r\n sp : TStorageProviderADODB;\r\n\r\nprocedure LoadCustomers;\r\n\r\nvar cus : TCustomer;\r\n    cl : TCustomerList;\r\n\r\nbegin\r\n  \/\/ Liste f\u00fcr Customer erzeugen\r\n  \r\n  cl := TCustomerList.Create(TCustomer, sp);\r\n\r\n  \/\/ Lade alle Customer\r\n  cl.Load;\r\n\r\n  \/\/ Customer ausgeben\r\n  for cus in cl do \r\n    writeln(cus.Name,' ',cus.SurName);\r\n\r\n  cl.Free;\r\nend;\r\n\r\nbegin\r\n  sp := TStorageProviderADODB.Create(sodbtAccess, 0, adoConn);\r\n  TCustomer.InitTable(sp);\r\nend.\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In dem folgenden Programmbeispiel wird erl\u00e4utert wie man die Klasse TStorableObjectList verwendet. program ListTest; interface uses SOUnit, SOStorageProviderADOUnit; type \/\/ Klassendefinition f\u00fcr Customer [SOTable(&#8218;CUSTOMER&#8216;)] 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); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,3],"tags":[],"class_list":["post-265","post","type-post","status-publish","format-standard","hentry","category-delphi","category-storableobjects"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=265"}],"version-history":[{"count":7,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions"}],"predecessor-version":[{"id":272,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions\/272"}],"wp:attachment":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}