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.

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

1 ответ

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

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

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

Другие вопросы по тегам