Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL запрос в CB6, помогите составить запрос  
:(
    Опции темы
b44
Дата 14.4.2008, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет всем! Задали на практику написать прогу  "информационная система принтеры". 
На отдельной форме должно быть сравнение принтеров. на форме четыре комбобокса и стринггрид.
В первом и во втором Комбо выбирается фирма принтеров которые будут сравниваться.

Код

void __fastcall TfSrav::FormShow(TObject *Sender)
{
    ComboBox1->Clear();
    ComboBox2->Clear();
    dData->qTemp->Close();
    dData->qTemp->SQL->Text="select NAIM from t_naim ORDER BY NAIM";
    dData->qTemp->Open();
    if (!dData->qTemp->IsEmpty())
     {
     dData->qTemp->First();
     while (!dData->qTemp->Eof)
      {
      if (!VarIsNull(dData->qTemp->FieldValues["NAIM"]))
      {
      ComboBox1->Items->Add(dData->qTemp->FieldByName("NAIM")->AsString);
      ComboBox2->Items->Add(dData->qTemp->FieldByName("NAIM")->AsString);
      dData->qTemp->Next();
      }
      }
  }
  dData->qTemp->Close();
}


в 3 и 4 будут записываться модели принтеров.

Помогите кодом, надо сделать чтоб при выборе фирмы в комбо1, автоматически заполнялся комбо 3 моделями принтеров выбраной фирмы в комбо1.

DData это датамодуль
qTemp это AdoQuery
поле Naim это название фирмы.
t_naim состоит из поля счетчика и фирмы
t_opis состоит из числового поля, модели, и тд. Связано все через счетчик и числовое поле, тип связи "один ко многим"
PM MAIL   Вверх
orthrus
Дата 14.4.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

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



Код

ComboBox3->Clear();
dData->qTemp->Close();
dData->qTemp->SQL->Text="SELECT t_opis.naim FROM t_naim,t_opis WHERE t_naim.id = t_opis.id_naim ORDER BY t_opis.naim";
dData->qTemp->Open();
if (!dData->qTemp->IsEmpty())
  {
     dData->qTemp->First();
     while (!dData->qTemp->Eof)
      {
         if (!VarIsNull(dData->qTemp->FieldValues["NAIM"]))
           {
             ComboBox3->Items->Add(dData->qTemp->FieldByName("NAIM")->AsString);
             dData->qTemp->Next();
           }
      }
  }
dData->qTemp->Close();


Вот примерно так, все это вставляешь в ComboBox1::OnChange()

P.S. Вообще то надо было привести структуру таблиц.

Это сообщение отредактировал(а) orthrus - 14.4.2008, 16:07


--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
b44
Дата 14.4.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Что то не понял по полям, пожалуйста сделайте с этими полями!

таблица t_name
Nname - счетчик ключевое поле
Name - фирма принтера

Таблица t_opis
Nname - числовой
Model - модель принтера 
.....
PM MAIL   Вверх
dix75
Дата 14.4.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(b44 @ 14.4.2008,  14:13)
Что то не понял по полям, пожалуйста сделайте с этими полями!

таблица t_name
Nname - счетчик ключевое поле
Name - фирма принтера

Таблица t_opis
Nname - числовой
Model - модель принтера 
.....

 smile  smile  smile 

а какже ты тогда пишешь если не можешь сам перевести  smile 


--------------------
save your mind
PM MAIL   Вверх
b44
Дата 14.4.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сделан запрос на подобии но он выводит не все модели. Пожалуйста добейте этот запрос!
все находится на форме fsrav. При выборе фирмы, должны забиваться модели.
в стринггриде должны отображаться значения двух выбраных моделей принтеров.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  xxx.rar 48,16 Kb
PM MAIL   Вверх
orthrus
Дата 15.4.2008, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

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



Код

void __fastcall TfSrav::ComboBox1Change(TObject *Sender) {
    ComboBox3->Clear();
    dData->qTemp->Close();
    dData->qTemp->SQL->Text = "SELECT * FROM (SELECT NNaim FROM t_naim WHERE Naim ='" +
                              ComboBox1->Text +"') AS a, t_opis WHERE t_opis.NNaim = a.NNaim \
                              ORDER BY t_opis.NNaim";
    dData->qTemp->Open();
    if (!dData->qTemp->IsEmpty())
      {
         dData->qTemp->First();
         while (!dData->qTemp->Eof)
          {
             if (!VarIsNull(dData->qTemp->FieldValues["Model"]))
               {
                 ComboBox3->Items->Add(dData->qTemp->FieldByName("Model")->AsString);
                 dData->qTemp->Next();
               }
          }
      }
    dData->qTemp->Close();
}


Это код для ComboBox1, для второго сам сделаешь.


--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
b44
Дата 15.4.2008, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



orthrus  огромное спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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