EDBEngineError 'таблица только для чтения' - PullRequest
2 голосов
/ 06 декабря 2011

У меня есть 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.

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

1 Ответ

1 голос
/ 06 декабря 2011

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

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

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

...