Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Связь между таблицами делает запрос необновляемым. / 22 сообщений из 22, страница 1 из 1
24.08.2004, 18:07:46
    #32663632
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Таблица Товары, поле Производитель(целое), поле Производится(флажок).
Таблица Фирмы, поле КодФирмы(целое).
Запрос1:
Код: plaintext
1.
SELECT Товары.Производитель, Товары.Производится
FROM Товары;
- запрос изменяемый.
Ввожу в поле Производитель условие равное коду одного из производителей.
Запрос2:
Код: plaintext
1.
2.
SELECT Товары.Производитель, Товары.Производится
FROM Товары
WHERE (((Товары.Производитель)= 220 ));
- запрос изменяемый.
Заношу в табл.Фирма в поле КодФирмы число 220.
Запрос3:
Код: plaintext
1.
SELECT Товары.Производитель, Товары.Производится
FROM Фирмы INNER JOIN Товары ON Фирмы.КодФирмы= Товары.Производитель;
- запрос становится неизменяемым. Почему?!!
...
Рейтинг: 0 / 0
24.08.2004, 18:10:42
    #32663635
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
INNER JOIN
...
Рейтинг: 0 / 0
24.08.2004, 18:39:52
    #32663662
tim2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
И что? Поменял на LEFT JOIN - запрос необновляемый.
Чего надо изменить-то?
...
Рейтинг: 0 / 0
24.08.2004, 18:42:41
    #32663664
tim2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Изменил:
Код: plaintext
...FROM Товары INNER JOIN Фирмы...
- результат не изменился
...
Рейтинг: 0 / 0
24.08.2004, 18:45:32
    #32663671
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
tim2И что? Поменял на LEFT JOIN - запрос необновляемый.
Чего надо изменить-то?
А если так: RIGHT JOIN, и при этом Фирмы.КодФирмы - первичный ключ?
...
Рейтинг: 0 / 0
24.08.2004, 18:45:39
    #32663672
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Код: plaintext
Left, right, inner      join
Делают запрос необновляемым.

Это можно обойти, например, сделав запрос на добавление.

Или иногда можно отказаться от связей для таблиц.
...
Рейтинг: 0 / 0
24.08.2004, 18:48:43
    #32663678
tim2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Вот так, конечно, работает:
Код: plaintext
1.
2.
3.
SELECT Товары.Производитель, Товары.Производится
FROM Товары
WHERE (((Товары.Производитель) In (SELECT Фирмы.КодФирмы
FROM Фирмы;)));
но долго, блин, открывается...
...
Рейтинг: 0 / 0
24.08.2004, 18:54:25
    #32663683
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Benzin
С чего это вдруг он необновляемый? У меня он обновляемый.
SELECT tovar.Name, tovar.firmid, firm.Name
FROM tovar INNER JOIN firm ON tovar.firmid = firm.id
;
...
Рейтинг: 0 / 0
24.08.2004, 19:00:19
    #32663690
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
2 tim2:
Твой способ и у меня работает, но мои таблицы, наверно, еще больше потому что задержка в открытии запроса обалденная.
2 Varan: может у нас в ключах разница?
...
Рейтинг: 0 / 0
24.08.2004, 19:03:49
    #32663693
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
GyslikLeft, right, inner join
Делают запрос необновляемым..
Разве? Тогда 99% запросов - необновляемые.
Агрегатные функции делают запрос необновляемым, насколько мне известно.

Это можно обойти, например, сделав запрос на добавление.

Это как это?
...
Рейтинг: 0 / 0
24.08.2004, 19:05:05
    #32663694
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Benzin ,
А мне кажется ты что-то недоговариваешь. Не может запрос от join-a стать необновляемым.
...
Рейтинг: 0 / 0
24.08.2004, 19:10:49
    #32663701
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Может если это ADP и не прописаны свойства однозначной таблицы и команды синхронизации или например пермишн на апдейт таблицы юзеру не дан
PS чувак же не написал что это MDB поди разбери.
...
Рейтинг: 0 / 0
24.08.2004, 19:13:20
    #32663707
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Benzin ,
У тебя mdb или ADP?
...
Рейтинг: 0 / 0
24.08.2004, 19:17:53
    #32663710
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
>Это как это?
апдейтиш через execute поля какие хочеш по каким хочеш правилам
потом делаеш реквери
например подкладываеш под контрол связанный с необновляемыми данными
несвязанный контрол такого же размера
при получении фокуса необновляемым контролом
копируеш его содержимое в несвязанный и передаеш туды фокус
а на его обновление апдейтиш соотв образом соотв таблицу
потом реквериш необновляемый набор желательно чтобы он оставался
на том же месте на экране
в результате у юзера полная илюзия что он редактирует,
хотя на самом деле набор не редактируемый.
...
Рейтинг: 0 / 0
24.08.2004, 19:20:23
    #32663716
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
>У тебя mdb или ADP?
поди свалил чувак с работы уже
для дальнейшего глумления придется подождать минимум до завтра
...
Рейтинг: 0 / 0
24.08.2004, 19:22:12
    #32663718
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Latuk ,
Хорошо, что я adp не занимаюсь, а то тоже, поди, пришлось бы так извращаться.
...
Рейтинг: 0 / 0
24.08.2004, 19:24:41
    #32663720
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Varan GyslikLeft, right, inner join
Делают запрос необновляемым..
Разве? Тогда 99% запросов - необновляемые.
Агрегатные функции делают запрос необновляемым, насколько мне известно.

Это можно обойти, например, сделав запрос на добавление.

Это как это?
1. Я имел ввиду для данного примера.
2. INSERT INTO.
...
Рейтинг: 0 / 0
24.08.2004, 19:57:03
    #32663747
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Ишо раз...
Владимир СанычФирмы.КодФирмы - первичный ключ?
...
Рейтинг: 0 / 0
25.08.2004, 10:49:43
    #32664229
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Прошу прощения, но вчера я, действительно, "свалил с работы".
-----------------------------------------------------------------
Вообщем так: поле Товары.Производитель - ключевое, если ключ убрать, то запрос становится обновляемым. В чем причина - не пойму, но пока остановился на этом варианте.
...
Рейтинг: 0 / 0
25.08.2004, 10:53:36
    #32664237
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Забыл: поле Фирмы.КодФирмы - ключевое, если и этот ключ убрать - запрос опять необновляется.
...
Рейтинг: 0 / 0
25.08.2004, 11:06:14
    #32664278
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
BenzinЗабыл: поле Фирмы.КодФирмы - ключевое, если и этот ключ убрать - запрос опять необновляется.
О! Ну так вот и ответ. Сочетание ключей обязано быть именно таким. Иначе Аксесс не знает, какие записи обновлять.
...
Рейтинг: 0 / 0
25.08.2004, 12:01:06
    #32664415
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связь между таблицами делает запрос необновляемым.
Непонятки не кончились: на базе описанного запроса делаю запрос на обновление:
Код: plaintext
1.
2.
3.
4.
UPDATE (Товары LEFT JOIN Партия ON
Товары.Модель = Партия.Модель) INNER JOIN Фирмы ON Товары.Производитель = Фирмы.КодФирмы SET
Товары.Производится = False
WHERE (((Товары.Производится)=True) AND ((Партия.Модель) Is Null))
WITH OWNERACCESS OPTION;
, он должен: сбросить флажок Производится у записей табл.Товары, которые не имеют связанной записи в табл.Партия.
Открываю запрос в режиме таблицы - записи доступны для редактирования, т.е прямо в запросе можно сбросить флажки.
Запускаю запрос, получаю сообщение: "Записи не могут быть изменены, отсутствует разрешение на обновление данных для объекта Товары".
Вот тут и не понятно - почему прямо в запросе можно обновлять? Почему прямо в таблице можно обновлять? Наконец, почему спокойно работает запрос в этой же базе, который тоже обновляет записи табл.Товары?
Все мыслимые разрешения я для себя установил.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Связь между таблицами делает запрос необновляемым. / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]