{"id":221,"date":"2017-09-11T12:23:22","date_gmt":"2017-09-11T12:23:22","guid":{"rendered":"http:\/\/hahne-software.de\/?p=221"},"modified":"2018-03-26T12:19:51","modified_gmt":"2018-03-26T12:19:51","slug":"tstorableobject-registerlinkedclass","status":"publish","type":"post","link":"https:\/\/hahne-software.de\/?p=221","title":{"rendered":"TStorableObject.RegisterLinkedClass"},"content":{"rendered":"<p>\u00dcber die Methode\u00a0RegisterLinkedClass kann eine TStorableObject-Klasse \u00a0mit einer weiteren von TStorableObject abgeleiteten Klassen verbunden werden.<\/p>\n<p>Dies ist z.B. n\u00fctzlich wenn Klassen Statuswerte enthalten und diese in einer weiteren Klasse gespeichert sind. Wird die Methode <strong>Load <\/strong>der Klasse aufgerufen, so werden automatisch alle verkn\u00fcpften Klassen mit geladen. Dies bedeutet, dass die im unten aufgef\u00fchrten Beispiel verkn\u00fcpfte Klasse\u00a0TCustomerStates in der Property State die aktuellen Statuswerte enth\u00e4lt.<\/p>\n<p>Beispiel:<\/p>\n<p>Die Klasse TCustomer enth\u00e4lt einen Statuswerte. Diese werden in einer Klasse TCustomerStates gespeichert.<\/p>\n<p>\/\/ Definition der Klasse <strong>TCustomerStates<\/strong> :<\/p>\n<pre>[SOTable('CUSTOMER_STATES')]\r\nTCustomerStates = <strong>class<\/strong>(TStorableObject)\r\n<strong>private<\/strong>\r\n  iNo : Integer;\r\n  sName: String;\r\n<strong>public<\/strong>\r\n  [SOFieldAttribute('CS_ID', ftAutoInc, 0, [sflPrimaryKey])]\r\n  <strong>property <\/strong>ID;<\/pre>\n<pre>\u00a0 [SOFieldAttribute('CS_NO', ftInteger, 0)]\u00a0\r\n <strong>\u00a0property <\/strong>No: Integer <strong>read <\/strong>iNo <strong>write <\/strong>iNo;\r\n\r\n\u00a0 [SOFieldAttribute('CS_NAME', ftString, 50)]\r\n <strong>\u00a0property <\/strong>Name: <strong>String read <\/strong>sName <strong>write <\/strong>sName;\r\n<strong>end<\/strong>;<\/pre>\n<p>\/\/ Definition der Klasse <strong>TCustomer<\/strong> :<\/p>\n<pre>TCustomer = <strong>class<\/strong>(TStorableObject)\r\n<strong>private<\/strong>\r\n csState : TCustomerStates; \r\n\u00a0.\r\n\u00a0.\r\n<strong>public<\/strong>\r\n\u00a0 <strong>property<\/strong> State : TCustomerStates <strong>read<\/strong> csState <strong>write<\/strong> csState;\r\n<strong>end<\/strong>;\r\n\r\n<strong>begin\r\n<\/strong>  \/\/ Verkn\u00fcpfe die Klasse TCustomer mit der Klasse TCustomerStates \u00fcber das Feld aus der Tabelle \"CUSTOMER_STATES\" \"CUS_STATE_NO\"\r\n\u00a0 TCustomer.RegisterLinkedClass(TCustomerStates, StorageProvider, 'CUS_STATE_NO','CS_NO');\r\n<strong>end<\/strong>.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u00dcber die Methode\u00a0RegisterLinkedClass kann eine TStorableObject-Klasse \u00a0mit einer weiteren von TStorableObject abgeleiteten Klassen verbunden werden. Dies ist z.B. n\u00fctzlich wenn Klassen Statuswerte enthalten und diese in einer weiteren Klasse gespeichert sind. Wird die Methode Load der Klasse aufgerufen, so werden automatisch alle verkn\u00fcpften Klassen mit geladen. Dies bedeutet, dass die im unten aufgef\u00fchrten Beispiel verkn\u00fcpfte [&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-221","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\/221","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=221"}],"version-history":[{"count":4,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/221\/revisions"}],"predecessor-version":[{"id":276,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/221\/revisions\/276"}],"wp:attachment":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}