![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос знатокам DOA [D5, Oracle]
Тормоз © (2002-09-16 12:43:00)Низкий поклон знатокам
Я вот не могу понять вот чего: Есть у меня в базе вьюшка с instead of триггерами. Все прекрасно работает в SQL Plus, но DOA для своей работы требует rowid. При этом в документации сказано, что этот rowid можно прекрасно заменить любым другим полем, достаточно лишь вставить его название в UniqueFields.
Ну я сделал вроде все как надо, а при попытке вставить запись все равно выдается ошибка, что датасет рид-онли.
Почему так, может кто знает.
Заранее спасибо
Внук (2002-09-17 09:18:00) [1]Это не коряво :)
Назначение события OnApplyRecord означает, что команды DML будут обрабатываться особым образом для этой таблицы. Applied:=false сообщает, что этим особым образом их должен обрабатывать сам DOA, а не клиентская программа. Исходники помогут Вам разобраться.
Тормоз (2002-09-17 06:10:00) [2]Спасибо, я поставил Applied:=False, вроде коряво, но заработало; буду разбираться дальше:)
Внук (2002-09-16 15:19:00) [3]Ситуация действительно имеет место :)
Если поле (поля через точку с запятой), перечисленные в UniqueFields, действительно однозначно идентифицируют каждую запись (то есть являются, по сути, первичным ключом), то достаточно еще оперделить событие TOracleDataset.OnApplyRecord и прописать там единственную строку
Applied:=false;
Все должно работать.
Black Cat (2002-09-16 15:12:00) [4]А на вьюшку глянуть можно?
Юрий Жуков (2002-09-16 15:09:00) [5]Честно говря с вьюшками никогда не работал через DOA.
Попробуй в дизайне указать явно датасету, что он не реад-онли