Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADOQuery и извлечение результатов запроса 
:(
    Опции темы
freshAngel
  Дата 28.1.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Привет.
Есть две таблицы, например, mytable1 и mytable2.
Таблица mytable1 содержит в себе поле: name
Таблица mytable2 так - же содержит в себе одно поле: surname
Делаю SQL запрос через ADOQuery, на выборку этих двух полей из разных таблиц в одном запросе с помощью UNION

Код

SELECT name FROM mytable1 UNION SELECT surname FROM mytable2;


Теперь самое интересное  smile 

Вывожу количество найденных записей.

Код

ShowMessage(ADOQuery->RecordCount);


Как и ожидалось показывает: 2

Пробую вывести, каждую по отдельности:

Код

ShowMessage(ADOQuery->Fields->Fields[0]->AsString);
ShowMessage(ADOQuery->Fields->Fields[1]->AsString);


Первый ShowMessage срабатывает и выводится значение поле name
Второй ShowMessage вызывает ошибку: Out of bounds(1)
Что как я понимаю свидетельствует о том, что второго параметра в запросе просто нет.

Хотя если сделать так:

Код

while(!ADOQuery->Eof)
{
ShowMessage(ADOQuery->Fields->Fields[0]->AsString);
ADOQuery->Next();
}


Выводит значения name и surname - все работает как нужно.
Я понимаю, что при использовании while там всегда: Fields[0]
Но как обратиться ко второму значению, если ADOQuery->Fields->Fields[1]->AsString не работает!?

PM MAIL   Вверх
Rodman
Дата 28.1.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



результат твоего запроса один столбик и две строки
Цитата(freshAngel @  28.1.2009,  15:57 Найти цитируемый пост)
ShowMessage(ADOQuery->Fields->Fields[0]->AsString);
ShowMessage(ADOQuery->Fields->Fields[1]->AsString);

а тут ты пытаешься ко второму столбцу обратится... сам понимаешь - бок...

как я понял ты не совсем корректно связал их.. эти две таблицы должны быть связаны связями.. и запрос должен быть через INNER JOIN... вот тогда к столбцам и обращайся

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Alca
Дата 28.1.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Код

ADOQuery->FieldByName("field_name")->Value;


Это сообщение отредактировал(а) Alca - 28.1.2009, 16:13


--------------------
PM WWW ICQ Skype Jabber   Вверх
freshAngel
Дата 28.1.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Цитата(Rodman @ 28.1.2009,  16:10)
результат твоего запроса один столбик и две строки
Цитата(freshAngel @  28.1.2009,  15:57 Найти цитируемый пост)
ShowMessage(ADOQuery->Fields->Fields[0]->AsString);
ShowMessage(ADOQuery->Fields->Fields[1]->AsString);

а тут ты пытаешься ко второму столбцу обратится... сам понимаешь - бок...

как я понял ты не совсем корректно связал их.. эти две таблицы должны быть связаны связями.. и запрос должен быть через INNER JOIN... вот тогда к столбцам и обращайся


Пасиб.
А в этом есть рациональное зерно.
Я ведь на самом деле получаю массив записей.  smile 
Нужно будет попробовать этот запрос в консоли MySQL, интересно выведет в два столба или в один  smile

Добавлено через 2 минуты и 33 секунды
Цитата(Alca @ 28.1.2009,  16:13)
Код

ADOQuery->FieldByName("field_name")->Value;

Спасибо!
Попробую!

Это сообщение отредактировал(а) freshAngel - 28.1.2009, 16:17
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0699 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.