Страница 1 из 1
					
				Монопольное открытие файла
				Добавлено: 03 Апрель 2006, 14:27
				 ru_alex
				Всем привет!
Подскажите, плиз, как в MSSQL на Сlarion6 организовать монопольное открытие файла. В справке вроде поддерживается.
С TPS у меня проблем не было, открываешь с соответствующим флажком нужный файл, и можно отслеживать сколько копий приложения запущено, ограничивать и т.д.
В SQL у меня тот же прием не проходит, ошибку на открытие одной и той же таблицы не выдает при запуске двух копий приложения. 
Если так и должно быть, тогда какие приемы можно еще применить?
			 
			
					
				Re: Монопольное открытие файла
				Добавлено: 03 Апрель 2006, 16:54
				 Andrew™
				ru_alex писал(а):
Подскажите, плиз, как в MSSQL на Сlarion6 организовать монопольное открытие файла. В справке вроде поддерживается.
С TPS у меня проблем не было, открываешь с соответствующим флажком нужный файл, и можно отслеживать сколько копий приложения запущено, ограничивать и т.д.
В SQL у меня тот же прием не проходит, ошибку на открытие одной и той же таблицы не выдает при запуске двух копий приложения. 
Если так и должно быть, тогда какие приемы можно еще применить?
сам то понял что сказал 

 в SQL нету файлов 

OPEN поряждает следующий SQL запрос:
залочить таблицу - это значит захватить ВСЕ записи таковой, делаешь
это ты залочишь существующие записи, с другой станции смогут добавить
а по хорошему - такая возможность для SQL бесполезна, енто моё мнение
 
			 
			
					
				
				Добавлено: 03 Апрель 2006, 17:06
				 ru_alex
				Понятно.
Тогда вопрос такой:
Можно ли так залочить определенную запись определенной таблицы, что бы ее нельзя было удалить во время работы приложения штатными средствами, и была возможность проверить залочена она или нет с другой станции?
			 
			
					
				
				Добавлено: 04 Апрель 2006, 9:46
				 Andrew™
				ru_alex писал(а):Понятно.
Тогда вопрос такой:
Можно ли так залочить определенную запись определенной таблицы, что бы ее нельзя было удалить во время работы приложения штатными средствами, и была возможность проверить залочена она или нет с другой станции?
захватить - это сделать SELECT с соответсвующим хинтом как описано в пред письме, НО это надо делать в транзакции, держать транзакцию открытой на время работы твоей программы несерьёзно, тут надо проще - навесить триггер на таблицу и давать отлуп при удалении в определённых ситуациях.