private static int InsertRecord(UPCRMRecord record, string recordId, int requestNr, int recordnr, DatabaseStatement statement, out string recordIdBuffer) { recordIdBuffer = null; var ret = 0; var sql = "INSERT INTO records (requestnr, recordnr, infoareaid, recordid, mode, options) VALUES (?,?,?,?,?,?)"; if (statement.Prepare(sql)) { string mode = record.Mode; if (string.IsNullOrWhiteSpace(recordId) || recordId.StartsWith("newid:") || recordId == "new") { if (!string.IsNullOrWhiteSpace(mode) && mode.StartsWith("Sync")) { if (!string.IsNullOrWhiteSpace(recordId)) { recordIdBuffer = recordId; } } else { recordIdBuffer = $"new{requestNr:X8}{recordnr:X4}"; record.OfflineRecordNumber = ((requestNr & 65535) << 16) + recordnr; record.OfflineStationNumber = Convert.ToInt32(ConfigurationUnitStore.DefaultStore.ConfigValueDefaultValue("System.OfflineStationNumber", "0")); if (string.IsNullOrWhiteSpace(mode) || !mode.StartsWith("New")) { mode = "New"; } } } else { recordIdBuffer = recordId; } statement.Bind(1, requestNr); statement.Bind(2, recordnr); statement.Bind(3, record.InfoAreaId); statement.Bind(4, recordIdBuffer); statement.Bind(5, mode); var optionArray = record.OptionArray(); if (optionArray == null) { statement.Bind(6, null); } else { var optionArrayString = StringExtensions.StringFromObject(optionArray); statement.Bind(6, optionArrayString); } ret = statement.Execute(); } return(ret); }