![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
c00per |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
Пишу прогу на Delphi, использую БД access'а. Не могу выполнить запрос на обновление. есть одна главная таблица и 6 дочерних. Связь везде один ко многим. Другими словами главная таблица и 6 справочников.
В запросе на обновление присутствие SELECT не возможно. Использую INNER JOIN. Никак не могу разобраться в синтаксисе. ![]() Подскажите как правильно связать эти таблицы? вот пример как пишу запрос из двух таблиц
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Запустите Аксесс. Создайте или откройте базу данных. Перейдите на вкладку Запросы. Выберите создание запроса в режиме конструктора. Переведите вид в режим SQL. Наберите слово UPDATE. Нажмите F1. Читайте. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
За совет спасибо конечно, но я уже облазил справку вдоль и поперек. Делаю вот такой запрос
в таблице sistembloki существует запись с индексом 222, но почему то он ее не обновляет. Пишет "Будет обновлено 0 записей" Это сообщение отредактировал(а) c00per - 3.2.2011, 10:30 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Отлично... в MS Access запрос на обновление можно открывать в режиме запроса на выборку - и соответственно смотреть. какие записибудут обновлены. Вот и проделайте это. Если показывается "запись с индексом 222", но не обновляется - это и правда косяк. А если не показывается - значит, она отсекается условиями связывания. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
Может стоить изменить в запросе?
на это
|
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
c00per, переделайте запрос полностью. Замените все джойны на декартово произведение и условия отбора.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
Это что то типа этого:
Я не очень то силен в sql. Разъясни, пожалуйста Это сообщение отредактировал(а) c00per - 4.2.2011, 11:46 |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
C другой стороны запрос - бредовый... Смотри. У тебя условие отбора (ну или в исходном запросе - свяывания) WHERE cpu.id_cpu = sistembloki.id_cpu Т.е. УЖЕ равно. В то же время ты обновляешь SET sistembloki.id_cpu = cpu.id_cpu Т.е. пишешь что-то типа If 10=X Then X=10... Поневоле хочется спросить - нахрена??? Это сообщение отредактировал(а) Akina - 4.2.2011, 12:15 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
в первом посте пример из двух таблиц работает без проблем. я по нему же делаю с несколькими таблицами.
Ваш этот тоже отвечает "Будет обновлено 0 записей" я уже совсем запутался ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Несомненно... я тебе сказал выше - у тебя ХРЕНЬ. И отсутствие логики. Ты намерен изменить поля записей, в которых УЖЕ лежит то значение, кторое ты намерен туда поместить - неудивительно, что ноль записей, ибо ты ЕЩЁ ПОКА значения туда НЕ ПОМЕСТИЛ... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
Видимо до вас не дошли фразы
и
Вы мне мой же пример выдаете и осуждаете! ![]() |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Ваш пример приведён в каноническую форму - просто в качестве образца. Что же до осуждения - я, кажется, внятно говорю, что ВЫ пока что просто НЕ ПОНИМАЕТЕ того, что хотите сделать. Я тем более не понимаю. Более того - я не смогу понять - потому что не знаю ни предметной области, в которой происходит действо, ни постановки задачи, ни имеющихся уже структур и наполнений... по бутылке бензина я не смогу сказать, почему машина, которую я в глаза не видел и про которую ничего не слышал, не едет, и тут то же самое. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
ну уж если это не машина что не едет, тогда вот... в приложенном файле расположены таблицы, поля и связи; и форма на которой происходит редактирование. Данные в комбобоксах берутся из справочников. эдиты заполняются из главной таблицы. Вот я и не могу создать запрос на обновление исходя из этих данных и таблиц Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
c00per |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.1.2009 Репутация: нет Всего: нет |
прикройте тему, судя по всему здесь только модераторы отвечают на вопросы, а хотелось бы и услышать тех пользователей кто сталкивался с такой же проблемой как и у меня... за рекоммендации спасибо
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |