|  14.02.2007, 14:24 | #1 | 
| Участник | 
			
			Для учетных таблиц, но не для одновременного учета (а для репликации) реализвано следующая схема каждому складу выделен свой диапазон в 32, 5802 и прочих учт. таблицах. Допустим Склад А 0 - 100000000 Склад B 100000000-200000000 и т.д. Тогда в Sql-базе при одновременном учете по разным складам не будет взаимной блокировки | 
|  | 
|  14.02.2007, 14:57 | #2 | 
| Участник | 
			
			А с эскалацией блокировок проблем не наблюдалось?
		 | 
|  | 
|  14.02.2007, 15:06 | #3 | 
| Участник | 
			
			нет возможности проверить - распределенная база с репликацией пока...
		 | 
|  | 
|  14.02.2007, 15:56 | #4 | 
| Участник | 
			
			А вопрос какой?
		 | 
|  | 
|  16.02.2007, 15:16 | #5 | 
| Участник | 
			
			вопрос в том что будет ли происходить одновременный учет при такой схеме по разным складам если 5-10 юзеров одновременко кнопку учета нажмут.
		 | 
|  | 
|  16.02.2007, 15:34 | #6 | 
| Участник | 
			
			Так учётные таблицы же залочены всё равно. Чтобы получалось одновременно учитывать нужно будет всё это по учётынм кодам перелопатить
		 | 
|  | 
|  16.02.2007, 16:16 | #7 | 
| Участник | 
			
			в SQL - базе залочена не вся таблица...
		 | 
|  | 
|  02.03.2007, 12:10 | #8 | 
| Участник | 
			
			dmites, а каким образом реализовано разделение по диапазонам?
		 | 
|  | 
|  02.03.2007, 12:29 | #9 | 
| Участник | 
			
			Интересно а как по этой схеме межскладские перемещения проводятся? К какому диапазону отнесется запись в 339 таблице например  . Имхо, по этой схеме проще либо раздать диапазоны пользователям, либо создать некий пул диапазонов (Диапазон, Признак Блокировки) - при учете искать первый свободный, взводить признак блокировки, после учета признак блокировки снимать. Все равно остается проблема одновременной модификации данных (поле Остаток в 32, Последняя Прямая Себестоимость в 27... список можно продолжить). Так что подумайте, стоит ли овчинка выделки? | 
|  | 
|  02.03.2007, 22:15 | #10 | 
| Участник | 
			
			Таблица "серия номеров" блокирована Лечил так CU 396 NoSeriesManagement GetNextNo(NoSeriesCode : Code[10];SeriesDate : Date;ModifySeries : Boolean) : Code[20] Код: IF ModifySeries THEN IF NOT NoSeries.NoLock THEN //Storkich 17.02.07 пользователи блокируют друг друга NoSeriesLine.LOCKTABLE; Код: //+Storkich
//нужно просто обеспечить уникальность номера, не блокируя таблицу
//к номеру, в конце прибавляю id сессии пользователя
IF NoSeries.NoLock THEN BEGIN
  IF SessionID='' THEN BEGIN
	Session.SETRANGE(Session."Моя сессия",TRUE);
	Session.FIND('-');
	IF STRLEN(FORMAT(Session."Соединение ID"))>2 THEN
	  ERROR('Закройте Navision и заново запустите');
	SessionID:=CONVERTSTR(FORMAT(Session."Соединение ID",2,2),' ','0');
  END;
END;
//-Storkich
EXIT(NoSeriesLine."Last No. Used"+SessionID); | 
|  | 
|  03.03.2007, 12:48 | #11 | 
| Участник | 
			
			Может реплицировать строки журнала? А ответной репликации отправлять результат.
		 | 
|  |