На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Запрос к базе данных, SQL и Access
    Добрый день.

    Есть база данных на SQL сервере, крутится вертится, но не устраивает мобильность. Хочется иметь файл с базой данных, без всяких поднятий SQL. Решил попробовать поработать с Access 2016 через ADO. Создал базу, перенес с базы SQL необходимые таблицы. Подключился к ней вроде все ок.

    Теперь не могу разобраться с запросами.
    В SQL спокойной отправляю запрос типа:
    ExpandedWrap disabled
      SELECT DISTINCT VKEY, MODELYEAR_ID, TYPE_ID, KIND_ID
      FROM VEHICLE_EXT JOIN MODELYEAR_MAS ON MODELYEAR_ID = ID
      JOIN TYPE_MAS ON TYPE_ID = TYPE_ID
      JOIN KIND_MAS KIND ON KIND_ID = KIND.ID
      WHERE MODELYEAR = 2016 AND TYPE = 'GF3W' AND KIND = 'XTHHZL6Z'

    И получаю ответ.

    Попробовал точно такой же код в Access, ругается на JOIN. Как я понимаю нет связи в таблицах или как ?
    Попробовал разложить на более простые запросы:
    ExpandedWrap disabled
      SELECT ID FROM MODELYEAR_MAS WHERE MODELYEAR = 2016
      SELECT ID FROM TYPE_MAS WHERE TYPE = 'GF3W'
      SELECT ID FROM KIND_MAS WHERE KIND = 'XTHHZL6Z'
      SELECT VKEY FROM VEHICLE_EXT WHERE TYPE_ID = 332 AND KIND_ID = 1414 AND MODELYEAR_ID = 13

    Ответ получил верный.
    Сообщение отредактировано: Bas -
      Может кто подсказать ?
        В аксессе каждый JOIN надо обертывать в скобки. Попробyй использовать построитель запросов (query builder).
        Мои религиозные убеждения не позволяют мне комментировать код.
        Моё мировоззренье таково: в программе комментария ни одного!
          Спасибо, попробую разобраться.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script Execution time: 0,0898 ]   [ 18 queries used ]   [ Generated: 16.07.18, 10:01 GMT ]