EDBEngineError 'таблица доступна только для чтения'

У меня есть 3 TQueries: qy_master, qy_detail, qy_detail2, мастер qy_detail2 - это qy_detail, мастер qy_detail - это qy_Master, все запросы имеют соответствующие источники данных, я разместил запросы в модуле данных, при создании модуля данных я активирую эти запросы.

В другой форме я использовал эти запросы, при попытке 'qy_detail.open' он говорит 'EDbengine error : Tables is read-only', но нет проблем при открытии qy_detail, я не изменяю операторы SQL, но я не знаю, почему возникает эта ошибка.

Я также пробовал с qy_detail.Active := True; это утверждение также вызывает ошибку,

Я использовал SQL Server 2005, подключенный через источники данных BDE и ODBC.

Пожалуйста, помогите мне исправить это.


person bejarun    schedule 06.12.2011    source источник


Ответы (1)


Вы установили TQuery.RequestLive = true? RequestLive имеет значение False по умолчанию, заставляя запрос всегда возвращать набор результатов только для чтения.

Из документации:

TQuery может возвращать два типа наборов результатов: «живой», как с компонентом TTable (пользователи могут редактировать данные с помощью элементов управления данными, и когда происходит вызов Post, изменения отправляются в базу данных), «только для чтения» только для отображения. Чтобы запросить динамический набор результатов, установите для свойства RequestLive компонента запроса значение True...

person Nathan Skerl    schedule 06.12.2011