Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
| RE: Child-Datensatz automatisch mitspeichen |
 |
Hallo Ralf,
das, was Du da ansprichst, ist wirklich nicht so einfach mit einem Satz zu beantworten. Denn es gibt hierzu mehrere Möglichkeiten, dieses Problem zu lösen.
Die erste Frage, die Du Dir stellen musst, ist, ob dieser Kinddatensatz (ausnahmslos) immer bei einer Neuanlage des Elterndatensatzes mit angelegt werden soll. Wenn ja, dann musst Du Deine Programmierung in via DataBaseBuilder in die zentrale dd-Klasse ablegen. Wenn dies nur für diese eine View gelten soll, dann musst Du den Code in das DD-Objekt der View einbinden.
Die Sache mit den Locking-Fehlermeldungen hängt damit zusammen, dass Du die falschen Befehle an der falschen Stelle einsetzt. Ich beschreibe nun mal den Weg der immer geltenden Speicherung über die DD-Klasse (DataBaseBuilder). Erweitere Deine Prozedur Update um die gewünschten Speicherbefehle. Da Du in der Update-Prozedur Dich bereits in gelocktem Zustand befindest, musst Du mit den Befehlen clear, move, saverecord arbeiten. Request_Clear... funktionieren in diesem Fall nicht. Dann musst Du noch auf der Tab-Page "Structures" die KindDatei als externally updated File hinzufügen. (Ich bin mir nicht mehr ganz sicher, ob der letzte Schritt wirklich nötig ist, also probiere es ruhig einmal ohne aus. Im schlimmsten Fall bekommst Du einen Deadlock und musst das Programm manuell abbrechen)
Thema Deadlock und Debuggen in diversen Prozeduren (z.B. Update, Backout):
Bitte bedenke, dass bei der eingebauten VDF-Datenbank das Sperren eines Datensatzes alle geöffneten Datendateien des Programmes betrifft. Solltest Du also an einem Echtdatenbestand arbeiten, kann in diesem Moment niemand mehr einen DS speichern, löschen oder ändern.
Falls noch etwas unklar ist, melde Dich einfach.
LG
Roman
|
|