Перейти к содержанию
Fire Monkey от А до Я
  • 0

два select'а в одной процедуре


walexw

Вопрос

Вопрос наполовину по SQL наполовину по Delphi:
Есть БД в ней процедура такого вида:
SELECT DISTINCT FAM FROM TURNIR WHERE FAM=@par;
SELECT DATE, PLAY, SCORE FROM TURNIR WHERE FAM=@par;
В отчете (FastReport) первый запрос используется как "шапка"
второй - это собственно сам набор данных, игры и счет выбранного человека.
Мне необходимо на форме (проект виндовый) увидеть в гриде второй SELECT
Если грид через DataSource подключаю к процедуре, то приходит первый.
Не могу понять как обратиться к второму. При входе в FastReport там предлагается
на выбор ADOQuery1 и соответственно ADOQuery2. И нет проблем.
Кто знает как это повторить на форме, подскажите plz.
(Да еще, БД не моя, править запрос, разбивать на два или писать новый у меня нет прав.)
Спасибо.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
47 минут назад, walexw сказал:

Не могу понять как обратиться к второму.

ADO?

Работаем с первым. Потом:

myADOStoredProc.Recordset := myADOStoredProc.NextRecordset(i); // здесь i - фейковая Integer переменная, она не понадобится далее

И продолжаем работать с первым, но теперь там уже сидит второй :)


Возможно, прокатит и такой финт ушами:
 

myADOStoredProc.open;

tmpQuery.Recordset:=myADOStoredProc.NextRecordset(i);

// и пробуем использовать StoredProc как первый набор данных, а tmpQuery - как второй. Но не факт, что такое получится,

// возможно - для правильного подтягивания рекордсета в сторонний квери потребуется сперва открыть его фейковым запросом, например

/// `Select 1`

 

Ссылка на комментарий
  • 0
Только что, krapotkin сказал:

кошмар. в АДО несколько датасетов ? O_O

Да. И иногда очень удобно.

Сразу получаешь полный набор консистентных данных (главных и зависимых), выполнив всего один запрос к базе.

Ссылка на комментарий
  • 0

Всем большое спасибо за помощь!
Сам разобрался. Помогло применение двух ДатаСетов
Обратиться ко второму селекту смог через

ADODataSet2.Recordset := ADODataSet1.Recordset.NextRecordset(RecCount);

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...