Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос SQL 
V
    Опции темы
jorka
Дата 4.10.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



MS Access, ADO. 
Есть две таблицы(поля):
1)   DType ( Key(число), TypeName(строка))
2)   DName (Key(число), DetailName(строка), DetailType(число))

DType.Key и DName.DetailType связаны 1кМ

Помогите с запросом: выбрать все DetailName из DName так, чтоб они относились к одному типу.
Код

AdoQuery2.SQL.Text:='Select DetailName from DName where DetailType="'+ IntToStr(AdoQuery1.FieldByName('key').asInteger) +'" ';

Набросал код, но при выполнении ошибка "Несоответствие типов данных в выражении условия отбора"

ЗЫ 

AdoQuery1 выглядит так:
Код

AdoQuery1.SQL.Text:='Select * from DType';


Это сообщение отредактировал(а) jorka - 4.10.2009, 17:41
PM MAIL   Вверх
Данкинг
Дата 4.10.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



smile 
Код

AdoQuery2.SQL.Text:='Select DetailName from DName where DetailType='+ IntToStr(AdoQuery1.FieldByName('key').asInteger)';


Добавлено через 43 секунды
Цитата(jorka @  4.10.2009,  18:41 Найти цитируемый пост)
AdoQuery1 выглядит так:

А к чему здесь AdoQuery1 ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
jorka
Дата 4.10.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Данкинг @ 4.10.2009,  18:20)
А к чему здесь AdoQuery1 ?

он дает мне список всех названий типов (DType.TypeName)
после чего я делаю While not AdoQuery1.Eof do и заношу в дерево все названия деталей

Это сообщение отредактировал(а) jorka - 4.10.2009, 19:10
PM MAIL   Вверх
Данкинг
Дата 4.10.2009, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Главная проблема-то решена?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
jorka
Дата 4.10.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Данкинг @ 4.10.2009,  19:16)
Главная проблема-то решена?

Да, правильный ответ звучи так:
Код

AdoQuery2.SQL.Text:='Select DetailName from DName where DetailType='+ IntToStr(AdoQuery1.FieldByName('key').asInteger) +' ';

Спасибо
PM MAIL   Вверх
Данкинг
Дата 4.10.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Ну да, у меня последняя кавычка лишняя, и пробела в конце никакого тоже не нужно:
Код

AdoQuery2.SQL.Text:='Select DetailName from DName where DetailType='+ IntToStr(AdoQuery1.FieldByName('key').asInteger);

Если вопрос закрыт - отмечай тему решённой. smile 

ЗЫ: а вообще зачем столько преобразований-то - вот так же проще:
Код

AdoQuery2.SQL.Text:='Select DetailName from DName where DetailType='+AdoQuery1.FieldByName('key').asString;


Это сообщение отредактировал(а) Данкинг - 4.10.2009, 19:52


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


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

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


 




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


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

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