Editierten Datensatz zurückspeichern

Previous  Next

 

 

 

01.11.2009

Editierten Datensatz zurückspeichern

Für dieses Beispiel benötigen Sie die Beispiel-Datenbank FAHRZEUGE und das Projekt fahrzeuge.xdev

 

Editierte Datensätze, welche bereits in der Datenbank existieren, müssen Sie mit der Methode hmtoggle_plus1 update ( ) | XDEV NLS: überschreiben ( ) speichern. Die Methode überschreibt einen bereits existierenden Datensatz in einer Datenbank-Tabelle, während die Methode hmtoggle_plus1 save ( ) | XDEV NLS: speichern ( ) immer einen neuen Datensatz anlegt.

 

Die Methode hmtoggle_plus1 update ( ) | XDEV NLS: überschreiben ( ) kann jedoch nur dann ausgeführt werden, wenn das Formular vorher mit einem Datensatz gefüllt wurde, der bereits in der Datenbank existiert. Dies müssen Sie vor dem Aufruf von hmtoggle_plus1 update ( ) | XDEV NLS: überschreiben ( ) prüfen, was jedoch recht einfach ist. Denn beim Füllen des Formulars wird automatisch die ID des Datensatzes im Formular hinterlegt, genauer gesagt in den Formular-Zusatzdaten gespeichert.

 

» Zusatzdaten (TagData) «

Die Zusatzdaten sind eine Art kleiner Zusatzspeicher den jede GUI-Komponente besitzt, um bei Bedarf Werte darin zwischenspeichern zu können. Leere Formular-Zusatzdaten sind ein Beleg dafür, dass die aktuellen Formular-Einträge noch nicht in der Datenbank existieren. Die Formular-Zusatzdaten können Sie mit Hilfe der Formular-Methode hmtoggle_plus1 getTagData ( ) | XDEV NLS: holeZusätzlicheDaten ( ) auslesen und mit Hilfe einer hmtoggle_plus1 if ( ) | XDEV NLS: Wenn ( ) Anweisung ganz leicht abfragen.

 

» 1 Button für Anlegen und Ändern «

In der Praxis können Sie für das Speichern neuer und das Überschreiben editierter Datensätze wahlweise zwei separate Buttons anbieten, z.B. Neu und Ändern, oder beide Funktionen mit einem einzigen Button  Speichern zusammenfassen.

 

 

Code für einen separaten Ändern-Button:

 

hmtoggle_plus1XDEV Object Language

1

2

3

4

5

6

7

ACTION_PERFORMED ( )

{

  if (Formular.getTagData()!="")

  {

    Formular.update();

  }

}

If-Block:

Die if Anweisung prüft anschließend, ob der Rückgabewert der Methode Formular.getTagData( ) nicht "" - sprich nicht leer ist.  Der Operator != bedeutet nicht gleich. Die Zeichenfolge "" steht für eine leere Zeichenkette (Leer-String).

Wenn die Formular-Zusatzdaten nicht leer sind, also eine Datensatz-ID enthalten, wird die Anweisung Formular.update( ) im if Block aufgerufen, welche den bereits existierenden Datensatz in der Datenbank-Tabelle mit den Formular-Daten überschreibt.

hmtoggle_plus1XDEV Basic

1

2

3

4

ACTION_PERFORMED ( )

  If Formular.getTagData()!="" Then

      Formular.update()

  End IF

If-Block:

Die if Anweisung prüft anschließend, ob der Rückgabewert der Methode Formular.getTagData( ) nicht "" - sprich nicht leer ist.  Der Operator != bedeutet nicht gleich. Die Zeichenfolge "" steht für eine leere Zeichenkette (Leer-String).

Wenn die Formular-Zusatzdaten nicht leer sind, also eine Datensatz-ID enthalten, wird die Anweisung Formular.update( ) im if Block aufgerufen, welche den bereits existierenden Datensatz in der Datenbank-Tabelle mit den Formular-Daten überschreibt.

hmtoggle_plus1XDEV NLS

1

2

3

Bei Mausklick ( )

  Wenn (Formular\holeZusätzicheDaten()!="")

      Formular\überschreiben()

Wenn-Block:

Die Wenn Anweisung prüft anschließend, ob der Rückgabewert der Methode Formular.holeZusätzlicheDaten( ) nicht "" - sprich nicht leer ist.  Der Operator != bedeutet nicht gleich.  Die Zeichenfolge "" steht für eine leere Zeichenkette (Leer-String).

Wenn die Formular-Zusatzdaten nicht leer sind, also eine Datensatz-ID enthalten, wird die Anweisung Formular.überschreiben( ) im Wenn Block aufgerufen, welche den bereits existierenden Datensatz in der Datenbank-Tabelle mit den Formular-Daten überschreibt.

 

 

Code für nur einen Speichern-Button:

 

hmtoggle_plus1XDEV Object Language

1

2

3

4

5

6

7

8

9

10

11

ACTION_PERFORMED ( )

{

  if (Formular.getTagData()!="")

  {

    Formular.update();

  }

  else

  {

    Formular.save();

  }

}

If-Block:

Die if Anweisung prüft anschließend, ob der Rückgabewert der Methode Formular.getTagData( ) nicht "" - sprich nicht leer ist.  Der Operator != bedeutet nicht gleich. Die Zeichenfolge "" steht für eine leere Zeichenkette (Leer-String).

Wenn die Formular-Zusatzdaten nicht leer sind, also eine Datensatz-ID enthalten, wird die Anweisung Formular.update( ) im if Block aufgerufen, welche den bereits existierenden Datensatz in der Datenbank-Tabelle mit den Formular-Daten überschreibt.

 

Else-Block:

Wenn die Formular-Zusatzdaten jedoch leer sind, also keine Datensatz-ID enthalten, wird automatisch der else Block ausgeführt, d.h. es wird dann die Methode Formular.save( ) aufgerufen, welche die Formular-Daten als neuen Datensatz in der Datenbank-Tabelle abspeichert (Insert).

hmtoggle_plus1XDEV Basic

1

2

3

4

5

6

ACTION_PERFORMED ( )

  If Formular.getTagData()!="" Then

      Formular.update()

  Else

      Formular.save()

  End IF

If-Block:

Die if Anweisung prüft anschließend, ob der Rückgabewert der Methode Formular.getTagData( ) nicht "" - sprich nicht leer ist.  Der Operator != bedeutet nicht gleich. Die Zeichenfolge "" steht für eine leere Zeichenkette (Leer-String).

Wenn die Formular-Zusatzdaten nicht leer sind, also eine Datensatz-ID enthalten, wird die Anweisung Formular.update( ) im if Block aufgerufen, welche den bereits existierenden Datensatz in der Datenbank-Tabelle mit den Formular-Daten überschreibt.

 

Else-Block:

Wenn die Formular-Zusatzdaten jedoch leer sind, also keine Datensatz-ID enthalten, wird automatisch der else Block ausgeführt, d.h. es wird dann die Methode Formular.save( ) aufgerufen, welche die Formular-Daten als neuen Datensatz in der Datenbank-Tabelle abspeichert (Insert).

hmtoggle_plus1XDEV NLS

1

2

3

4

5

Bei Mausklick ( )

  Wenn (Formular\holeZusätzicheDaten()!="")

      Formular\überschreiben()

  Sonst

      Formular\speichern()

Wenn-Block:

Die Wenn Anweisung prüft anschließend, ob der Rückgabewert der Methode Formular.holeZusätzlicheDaten( ) nicht "" - sprich nicht leer ist.  Der Operator != bedeutet nicht gleich.  Die Zeichenfolge "" steht für eine leere Zeichenkette (Leer-String).

Wenn die Formular-Zusatzdaten nicht leer sind, also eine Datensatz-ID enthalten, wird die Anweisung Formular.überschreiben( ) im Wenn Block aufgerufen, welche den bereits existierenden Datensatz in der Datenbank-Tabelle mit den Formular-Daten überschreibt.

 

 

d.h. es wird dann die Methode Formular.speichern( ) aufgerufen, welche die Formular-Daten als neuen Datensatz in der Datenbank-Tabelle abspeichert.

 

Sonst-Block:

Wenn die Formular-Zusatzdaten jedoch leer sind, also keine Datensatz-ID enthalten, wird automatisch der Sonst Block ausgeführt, d.h. es wird dann die Methode Formular.überschreiben( ) aufgerufen, welche die Formular-Daten als neuen Datensatz in der Datenbank-Tabelle abspeichert (Insert).