1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

А как в восьмерке отлаживают запросы?

Тема в разделе "Базы данных и администрирование", создана пользователем -, 2 апр 2008.

  1. Гость

    Репутация:
    0
    Вопрос 1
    Конструктор запроса создал текст запроса.
    А как-то увидеть результат его выполнения (т е выборку данных в табличном виде) можно ?

    Вопрос 2
    Запрос состоит из большого количества вложенных запросов.
    Конструктор запроса показывает мне состав только самого наружного запроса
    Я вижу вложенные поля, а не весь вложенный запрос как целое


    Как профи отлаживают такие сложные конструкции - только силой мысли ?
     
  2. Гость

    Репутация:
    0
    1. Запрос.Выполнить().Выгрузить() - возвращает переменную типа ТаблицаЗначений. Если написать Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам) То получим ДеревоЗначений. Ставим точку останова после этой строчки и смотрим то вышло.
    Альтернативный вариант- если умеешь работать с обработкой КонсольОтчетов, то бросаешь туда запрос и смотришь что получилось. Если не умеешь- советую научиться. Обработка запускается в предприятии.

    2. Вложенный запрос можно в тексте запроса найти по ключевому слову "Выбрать". Если, к примеру, у тебя присоединяется таблица вложенного запроса, то ты увидешь примерно такое
    ЛЕВОЕ СОЕДИНЕНИЕ ( Выбрать <Вложенный запрос>) ПО <Связи>

    МОгу сказхать про себя. Если нужно добавить доп поле или условие- чаще делаю руками, потому что большие запросы либо составляются из нескольких текстов(получить напрямую текст запроса нелья) либо в отчетах. А там верняк есть строчки для категорий. Конструктов сотрет "// Категории" и подобное.
     
  3. Гость

    Репутация:
    0
    Спасибо, Найлло!
    Этот вариант сработал: Результат.Строки - [Показать значение в отдельном поле] и
    дал мне искомую таблицу

    С консолью отчетов тоже нормально, хотя в моем случае там в запросе очень
    много параметров и заполнять их руками утомительно.

    По вложенным запросам - в моем запросе много вложений с левым либо внутренним соединением и какое-то из них ,вероятно, гадит, задваивая результат.
    Я и искал, можно ли каждое вложение выделить отдельно и протестировать результат
    его выборки. Сейчас приходится кромсать текст программы, последовательно исключая
    каждое вложение.
     
  4. Гость

    Репутация:
    0
    попробуй поймать итоговый текст запроса, если он сразу не открывается конструктором. Это можно сделать просто определив значение ЗАпрос.Текст перед выполнением.
    Если запрос таки открвается конструктором, то открой каждый вложенный запрос и там слева внизу буит кнопка "Запрос"- там копируешь текст и в консоль. Посмотри сколько строк возвращает этот запрос. Если возвращает только одну, а у тебя в итоге задваивает- удали из полей все, кроме тех по которым идет объединение таблиц.
    Хотя метод исключения чем то хорошь =)
     
  5. Гость

    Репутация:
    0
    Спасибо, Найлло!
    Метод возьму на вооружение
    Ошибку нашел и она естественно оказалась не в запросе, а в предыдущем коде
    Хотя до этого все куски запроса пришлось прогнать через консоль.
     
  6. Гость

    Репутация:
    0
    рад что смог помочь. =)
     
Загрузка...

Поделиться этой страницей