FireDAC: общая блокировка таблицы с помощью Firebird

Я использую Delphi 10.1 с FireDAC для подключения к Firebird.

Я хотел бы открыть таблицу в эксклюзивном режиме в Firebird с помощью FireDAC? Как бы это было?


person Edu Mendonça    schedule 08.11.2017    source источник


Ответы (1)


Firebird не обрабатывает блокировки таблиц или строк. Таким образом, вы не сможете заставить это работать с FireDAC... никакие параметры соединения не могут сделать это волшебство.

Что вы можете сделать с Firebird, так это использовать всю базу данных в однопользовательском режиме. Для этого вы должны закрыть его, запустить GFIX, чтобы пометить его как базу данных с одним пользователем, а затем повторно подключиться к базе данных. Дополнительную информацию можно найти в Часто задаваемые вопросы о Firebird How-To. Но я сомневаюсь, что это то, что вы ищете.

Вы должны лучше объяснить, что вы пытаетесь сделать. С реальными SQL-серверами вам не нужно блокировать таблицы или строки. Транзакций и изоляции транзакций должно быть достаточно для обработки большинства ситуаций. Если нет, то вам, вероятно, следует начать думать о блокировках на уровне приложений, то есть, если у вас есть только одно приложение, которое использует базу данных.

person Frazz    schedule 10.11.2017
comment
FireDAC не поддерживает использование резервирования таблиц (см. " rel="nofollow noreferrer">SET TRANSACTION)? - person Mark Rotteveel; 10.11.2017
comment
@Mark, не изначально (в настоящее время; для объявленного постоянного массива параметров исправлен дополнительный способ управления транзакциями через коллекцию TxOptions.Params). - person Victoria; 10.11.2017