} //Формат документооборота public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference23136( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld23880RRef ,_Fld23881RRef ,_Fld23882 ,_Fld23884RRef ,_Fld23886 ,_Fld23887 ,_Fld23888 ,_Fld23890 ,_Fld23891 ,_Fld23892 ,_Fld23893RRef ,_Fld23894RRef ,_Fld23895 ,_Fld23896RRef ,_Fld23897RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@УчетнаяЗапись ,@Тип ,@Идентификатор ,@Организация ,@ДатаСоздания ,@ДатаЗакрытия ,@ДатаПоследнегоСообщения ,@ДатаНачалаПериода ,@ДатаОкончанияПериода ,@ВидДокумента ,@ВидУслуги ,@ФорматОтвета ,@Период ,@Вид ,@ФорматДокументооборота)" ; } else { Команда.CommandText = @" Update _Reference23136 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld23880RRef = @УчетнаяЗапись ,_Fld23881RRef = @Тип ,_Fld23882 = @Идентификатор ,_Fld23884RRef = @Организация ,_Fld23886 = @ДатаСоздания ,_Fld23887 = @ДатаЗакрытия ,_Fld23888 = @ДатаПоследнегоСообщения ,_Fld23890 = @ДатаНачалаПериода ,_Fld23891 = @ДатаОкончанияПериода ,_Fld23892 = @ВидДокумента ,_Fld23893RRef = @ВидУслуги ,_Fld23894RRef = @ФорматОтвета ,_Fld23895 = @Период ,_Fld23896RRef = @Вид ,_Fld23897RRef = @ФорматДокументооборота Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Код", Код); Команда.Parameters.AddWithValue("Наименование", Наименование); Команда.Parameters.AddWithValue("УчетнаяЗапись", УчетнаяЗапись.Ссылка); Команда.Parameters.AddWithValue("Тип", Тип.Ключ()); Команда.Parameters.AddWithValue("Идентификатор", Идентификатор); Команда.Parameters.AddWithValue("Организация", Организация.Ссылка); Команда.Parameters.AddWithValue("ДатаСоздания", ДатаСоздания); Команда.Parameters.AddWithValue("ДатаЗакрытия", ДатаЗакрытия); Команда.Parameters.AddWithValue("ДатаПоследнегоСообщения", ДатаПоследнегоСообщения); Команда.Parameters.AddWithValue("ДатаНачалаПериода", ДатаНачалаПериода); Команда.Parameters.AddWithValue("ДатаОкончанияПериода", ДатаОкончанияПериода); Команда.Parameters.AddWithValue("ВидДокумента", ВидДокумента); Команда.Parameters.AddWithValue("ВидУслуги", ВидУслуги.Ключ()); Команда.Parameters.AddWithValue("ФорматОтвета", ФорматОтвета.Ключ()); Команда.Parameters.AddWithValue("Период", Период); Команда.Parameters.AddWithValue("Вид", Вид.Ключ()); Команда.Parameters.AddWithValue("ФорматДокументооборота", ФорматДокументооборота.Ключ()); Команда.ExecuteNonQuery(); } } }
} //Протокол с ошибкой public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document23176( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Fld25582RRef ,_Fld25583RRef ,_Fld25586RRef ,_Fld25587RRef ,_Fld25588 ,_Fld25589 ,_Fld25590 ,_Fld25591 ,_Fld25592 ,_Fld25593 ,_Fld25594 ,_Fld25595 ,_Fld25596RRef ,_Fld25597) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@ЦиклОбмена ,@Тип ,@УчетнаяЗапись ,@Статус ,@Тема ,@ТекстПисьма ,@ИдентификаторСообщения ,@ДатаТранспорта ,@Важность ,@Кодировка ,@ОтКогоАдрес ,@ОтКогоПредставление ,@Основание ,@ПротоколСОшибкой)" ; } else { Команда.CommandText = @" Update _Document23176 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Fld25582RRef = @ЦиклОбмена ,_Fld25583RRef = @Тип ,_Fld25586RRef = @УчетнаяЗапись ,_Fld25587RRef = @Статус ,_Fld25588 = @Тема ,_Fld25589 = @ТекстПисьма ,_Fld25590 = @ИдентификаторСообщения ,_Fld25591 = @ДатаТранспорта ,_Fld25592 = @Важность ,_Fld25593 = @Кодировка ,_Fld25594 = @ОтКогоАдрес ,_Fld25595 = @ОтКогоПредставление ,_Fld25596RRef = @Основание ,_Fld25597 = @ПротоколСОшибкой Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Тип", Тип.Ключ()); Команда.Parameters.AddWithValue("Статус", Статус.Ключ()); Команда.Parameters.AddWithValue("Тема", Тема); Команда.Parameters.AddWithValue("ТекстПисьма", ТекстПисьма); Команда.Parameters.AddWithValue("ИдентификаторСообщения", ИдентификаторСообщения); Команда.Parameters.AddWithValue("ДатаТранспорта", ДатаТранспорта); Команда.Parameters.AddWithValue("Важность", Важность); Команда.Parameters.AddWithValue("Кодировка", Кодировка); Команда.Parameters.AddWithValue("ОтКогоАдрес", ОтКогоАдрес); Команда.Parameters.AddWithValue("ОтКогоПредставление", ОтКогоПредставление); Команда.Parameters.AddWithValue("Основание", Основание.Ссылка); Команда.Parameters.AddWithValue("ПротоколСОшибкой", ПротоколСОшибкой); Команда.ExecuteNonQuery(); } } }
} //Вид объекта контактной информации public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference17( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld926RRef ,_Fld927RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@Тип ,@ВидОбъектаКонтактнойИнформации)" ; } else { Команда.CommandText = @" Update _Reference17 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld926RRef = @Тип ,_Fld927RRef = @ВидОбъектаКонтактнойИнформации Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Код", Код); Команда.Parameters.AddWithValue("Наименование", Наименование); Команда.Parameters.AddWithValue("Тип", Тип.Ключ()); Команда.Parameters.AddWithValue("ВидОбъектаКонтактнойИнформации", ВидОбъектаКонтактнойИнформации.Ключ()); Команда.ExecuteNonQuery(); } } }