4D v14.3Get subrecord key |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Get subrecord key
Get subrecord key
Die Funktion Get subrecord key vereinfacht die Migration von 4D Code für konvertierte Untertabellen in Standardcode zum Arbeiten mit Tabellen. Zur Erinnerung: Ab 4D Version 11 werden Untertabellen nicht mehr unterstützt. Wird eine ältere Datenbank konvertiert, werden alle vorhandenen Untertabellen in Standardtabellen umgewandelt, die mit den Originaltabellen über eine automatische Verknüpfung verbunden sind. Die frühere Untertabelle wird die Viele-Tabelle, die Originaltabelle wird die Eine-Tabelle. In der Eine-Tabelle wird das frühere Untertabellenfeld in ein spezielles Feld vom Typ "Untertabelle Verknüpfung" umgewandelt. Im Viele-Feld wird ein spezielles Feld vom Typ "Untertabelle Verknüpfung" mit Namen “id_added_by_converter” hinzugefügt. Auf diese Weise können konvertierte Datenbanken weiter funktionieren. Wir empfehlen jedoch dringend, in Ihren konvertierten Datenbanken alle Funktionalitäten mit Untertabellen durch Funktionalitäten für Standardtabellen zu ersetzen. Im ersten Schritt löschen Sie die spezifischen automatischen Verknüpfungen, was die von Untertabellen geerbten Mechanismen dauerhaft deaktiviert. Danach müssen Sie den zugeordneten Code umschreiben. Hier unterstützt die Funktion Get subrecord key durch Zurückgeben der internen ID solcher Verknüpfungen. Diese interne ID macht die aktuelle Verknüpfung überflüssig und Sie können dann mit der Auswahl der bisherigen Untertabelle sogar arbeiten, wenn die Verknüpfung nicht mehr existiert. Werfen wir z.B. einen Blick auf folgende konvertierte Struktur: In 4D funktioniert der folgende Code noch, er muss aber aktualisiert werden: ALL SUBRECORDS([Employees]Children) Sie können diesen Code ersetzen durch: QUERY([Employees_Children];[Employees_Children]id_added_by_converter=Get subrecord key([Employees]Children)) Hinweis: Get subrecord key gibt 0 zurück, wenn bei der Ausführung kein aktueller Datensatz geladen wird. Der zweite Teil des Code hat den Vorteil, dass er standardmäßige 4D Befehle verwendet und auf dieselbe Weise funktioniert, egal ob die Verknüpfung besteht oder nicht. Entfernen Sie die Verknüpfung, gibt die Funktion nur den Schlüsselwert zurück, der im Feld Lange Ganzzahl gespeichert wird. Im Parameter IDFeld akzeptiert die Funktion entweder ein Feld vom Typ Untertabelle Verknüpfung (wenn die Verknüpfung noch existiert) oder vom Typ Lange Ganzzahl (wenn die Verknüpfung entfernt wurde). In allen anderen Fällen wird ein Fehler erzeugt. Auf diese Weise können Sie Übergangscode schreiben. Im letzten Stadium der Aktualisierung der Anwendung können Sie die Aufrufe dieser Funktion entfernen. |
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
Erstellt: 4D v12.1 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v12.4) Gesplittet : Get subrecord key ( 4D v14 R3) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||