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...