Es gibt keinen Unterschied zwischen den Methoden Insert und AddNew/Update. Bei Insert wird immer eine Zeile und bei AddNew/Update immer ein Datensatz zurückgegeben. Die Informationen des neu erstellten Eintrags können stets gelesen und weiterverwendet werden.
So können die Guids des neu erstellten Eintrags gelesen werden.
1. Insert-Methode:
var newRow = database[DBObjectName].Insert(iDictionary<string,object>, session);
var newRowGuid = newRow.Dataset[cFieldName.GUID].ValueGuid
2. AddNew-Methode: Ein neuer Datensatz wird erstellt, aber erst nach Aufruf der Update-Methode in die Datenbank geschrieben. Ohne den Aufruf von Update wird der Datensatz nicht gespeichert.
var newDataset = new cDataSet(session,database[DBObjectName]))
newDataset.AddNew()
newDataset["field1"].Value = "Value", etc
newDataset.Update()
Die Guid des neuen Datensatzes kann dann so abgerufen werden:
var newDatasetGuid = newDataset [cFieldName.GUID].ValueGuid
Die Insert-Methode ist lediglich eine neuere, schlankere Version von AddNew.
Es existiert übrigns auch eine Funktion InsertOrUpdate.
Beispiel:
var values = new Dictionary<string, object>
{
{"Code", "ABC"},
{"Name", "All best changes are here!"},
}
Database[DBObjectName].Where(cFieldName.Code, "ABC").InsertOrUpdate(values, session);
Hier wird über das Where erst gesucht, ob es bereits einen Eintrag mit Code "ABC" gibt. Man kann auch weiter filter addieren. Falls ein Eintrag gefunden wird, wird dort das Feld Name auf "All best changes are here!" gesetzt. Falls es noch keinen Eintrag gibt, wird ein Eintrag mit Code "ABC" und Name "All best changes are here!" erstellt.