Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];
ВнизПолуредактируемый запрос Найти похожие ветки
← →
AngelSaint (2003-12-09 07:31) [0]Мастера!
Есть запрос:
select s.rowid, asi.rowid, asi.znach, s.name, s.ed_izm
from base051.tbl_incedent i, base051.tbl_add_sveden s, base051.tbl_sveden_incedent asi
where asi.id_incedent = i.id and
s.id = asi.id_add_sveden and
i.id = 111
Проблема в следующем: в результирующем наборе данных, полеs.name
можно редактировать, а полеasi.znach
нельзя.
Вопрос: что ето за глюк такой??? вроде обычный запрос, но ведет он себя как-то необычно. Заранее благодарен за умные мысли :)
← →
Кщд (2003-12-09 08:40) [1]ни СУБД, ни компонент доступа.
да и наборы перекрестных данных не должны быть редактируемы, если программно не оговорено обратное.
имхо, это не глюк, а RTFM. :)
← →
Sergey13 (2003-12-09 08:53) [2]2AngelSaint (09.12.03 07:31)
Так это нормально, ИМХО. Ты объединяешь "главную таблицу" с каким то "справочником". Связь наверное 1:М. На стороне 1 редактировать можно, на стороне М нет. Я бы тоже на месте Оракла так поступил. 8-)
← →
DenK_vrtz (2003-12-09 08:55) [3]Если предположить, что СУБД - ORACLE, а ROWID - псевдостолбец, а компоненты доступа к данным - DOA, то в указанном запросе редактирование идет по s.rowid - идентификатору строки таблицы tbl_add_sveden.
При попытке редактированя записей других таблиц запроса, по идее, должна быть получена ошибка о инвалидном столбце.
← →
AngelSaint (2003-12-09 11:16) [4]>>Sergey13
Причиа не в этом. подобные запросы к другим таблицам ведут себя нормально, т.е. все что нужно редактируется
Мож у кого еще есть мнения?
← →
DenK_vrtz (2003-12-09 11:22) [5]>AngelSaint
>все что нужно редактируется
я бы сказал, все что МОЖНО редактируется!
← →
Кщд (2003-12-09 11:30) [6]AngelSaint (09.12.03 11:16) [4]
обычно Sergey13 телепат, но сегодня, видимо, магнитные бури.
Или задай вопрос нормально или можешь погадать на картах. :)
И ещё раз: на изменение набора данных полученного запросом из нескольких таблиц НЕОБХОДИМО прописывать реакцию на эти самые изменения.
← →
Sergey13 (2003-12-09 11:37) [7]2AngelSaint (09.12.03 11:16) [4]
Так может там 1:1 связь. Я не ковырял такую возможность, т.к. считаю ее вредной и небезопасной, но скорее всего там стоит проверка на количество обновляемых строк. Если у тебя в запросе встречается несколько одинаковых rowid "нередактирующейся" таблицы, то соответственно изменение блокируется. Или может проходит там где 1:М, но в наборе данные со стороны М тоже "случайно" оказались уникальными.
Я бы не советовал тебе пользоваться такими методами.
← →
Vlad (2003-12-09 11:49) [8]Не стоит возвращать 2 rowid в одном наборе данных.
Если по ним происходит дальнейший апдейт, то это вобще может быть чревато неприятностями, если записи не блокируются.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.112 c