Страница 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 с соответсвующим хинтом как описано в пред письме, НО это надо делать в транзакции, держать транзакцию открытой на время работы твоей программы несерьёзно, тут надо проще - навесить триггер на таблицу и давать отлуп при удалении в определённых ситуациях.