Datensätze anlegen

Dieser Abschnitt beschreibt wie am schnellsten unter Verwendung des Ruthardt-cobra-Frameworks neue Datensätze angelegt werden können.

Der hier genannte Code verwendet Kurzschreibweisen, sodass auch bei einem cobra-Update der Code bestehen bleiben kann.

Ideen

  • Die Klasse AdoAccess repräsentiert die Datenbank und erlaubt Abfragen auf die Datenbank.

  • Die Klasse DataAdapterTable repräsentiert eine Tabelle, in die Datensätze eingefügt werden können und die das Zurückspeichern in die Datenbank erlaubt. (Es handelt sich dabei um eine erweiterte System.Data.DataTable)

  • Die Klasse System.Data.DataRow repräsentiert eine Zeile innerhalb der Datenbank. Auf dieser Ebene müsste mit den wirklichen Datenbanknamen (LogicalNames) gearbeitet werden.

  • Die Klasse AdoView kann über die DataRow angewendet werden, sodass mit den Oberflächennamen (Userlevel-Names) gearbeitet werden kann.

Skript-Ausschnitt

// Tabelle von der Datenbank abfragen und sicherstellen, dass keine Werte enthalten sind.
// [#TABELLE#] ist eine Schreibweise um hier direkt Oberflächennamen zu verwenden
var belegtable = printContext.AdoAccess.GetAdapterTable("select * from [#Belege#] where 1=2");

// Neue Row anlegen
var belegrow = belegtable.NewRow();

// AdoView über die Row stülpen, sodass mit Userlevelnames gearbeitet werden kann
// Es muss hier nochmals der Tabellenname mitgegeben werden, sodass die Feldauflösung funktioniert
var belegview = new AdoView(belegrow, "Belege", printContext.AdoAccess);

// Werte festlegen
belegview.SetValue("SuperID", 42);
belegview.SetValue("Text", "42");

// Row wieder in die Tabelle stopfen
belegtable.Rows.Add(belegrow);

// Tabelle aktualisieren
belegtable.Update();

Neue Schreibweise ab PRINT+PLUS 6

// Tabelle von der Datenbank abfragen und sicherstellen, dass keine Werte enthalten sind.
// [#TABELLE#] ist eine Schreibweise um hier direkt Oberflächennamen zu verwenden
var belegtable = printContext.AdoAccess.GetEmptyAdapterTable("Belege");

// neue AdoView erzeugen, die direkt an die Tabelle angefügt wurde
var belegview = belegtable.CreateAdoViewWithNewRow(printContext.AdoAccess);

// Werte festlegen
belegview.SetValue("SuperID", 42);
belegview.SetValue("Text", "42");

// Tabelle aktualisieren
belegtable.Update();

Last updated