Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2008, 20:39   #1
Dissonance
Пользователь
 
Регистрация: 19.05.2008
Сообщений: 36
По умолчанию SQL-запрос

Добрый день. Необходимо сделать следующий запрос. У меня имеется combobox(он подключен к таблице Компьютеры(тоесть сам считывает всё что есть в поле "№ ПК")) мне нужно сделать так чтобы при выборе интересующего меня ПК(в combobox) запрос переходил на вторую таблицу(В ней есть поля № ПК и № установленной программы) Там сравнивал № ПК который я выбрал и все программы которые я к нему присвоил. После чего переходил к третей таблице(Список программ) и выбирал из неё те программы которые запомнил из второй таблицы(Есть поля № программы, Название, Системные требования). Конечным результатом должен быть вывод этой информации в dbgrid. Помогите всю голову сломал с этим запросом.
Изображения
Тип файла: jpg Схема данныхггг.JPG (26.3 Кб, 145 просмотров)

Последний раз редактировалось Dissonance; 16.06.2008 в 21:12.
Dissonance вне форума Ответить с цитированием
Старый 16.06.2008, 21:03   #2
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
Лампочка

Запрос такой:
Код:
SELECT *
FROM СписокПрограм, ВтораяТаблица
WHERE (ВтораяТаблица.Номер_компа = :PcNum) and
(СписокПрограм.НомерПроги = ВтораяТаблица.НомерПроги)
В обработчике события TDBComboBox-а OnChange пишы следующие:

Код:
...
begin
  Query1.ParamByName('pcnum').asInteger:=Table1.FieldByName('Номер_компа');
end;
Не знаю работает ли не проверял.
Разбирайся.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 16.06.2008, 21:10   #3
Dissonance
Пользователь
 
Регистрация: 19.05.2008
Сообщений: 36
По умолчанию

блин может ещё кто нибуть знает
Dissonance вне форума Ответить с цитированием
Старый 16.06.2008, 22:01   #4
Dissonance
Пользователь
 
Регистрация: 19.05.2008
Сообщений: 36
По умолчанию

Очень срочно надо диплом горит помогите плиз
Dissonance вне форума Ответить с цитированием
Старый 17.06.2008, 06:58   #5
Dissonance
Пользователь
 
Регистрация: 19.05.2008
Сообщений: 36
По умолчанию

Вот я код примерный получил
После выбора в comboBox1 заполнить ComboBox2 значениями поля "№ установленной программы" из второй таблицы.
В событии ComboBox2 OnEnter прописать
Код:

With Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Numbprogr');
SQL.Add('FROM CatalogProgram');
SQL.Add('WHERE NumbComp = ' + quotedstr(ComboBox1.Text);
SQL.Add('ORDER BY Numbprogr');
Open;
First;
ComboBox2.Items.Clear;
for i:=0 to RecordCount-1 do
begin
If Fields[0].AsString <> '' then
ComboBox2.Items.Add(Fields[0].AsString);
Next;
end;
end;

Теперь выбираем из списка ComboBox2 нужный номер и нажимаем на button, где прописываем.
Код:

With Query2 do begin
Close;
SQL.Clear;
SQL.Add('SELECT SpisokProgram.Numbprogr, name, SystTreb');
SQL.Add('FROM CatalogProgram, SpisokProgram');
SQL.Add('WHERE SpisokProgram.Numbprogr = CatalogProgram.Numbprogr');
SQL.Add('AND NumbComp = ' + quotedstr(ComboBox1.Text);
SQL.Add('AND Numbprogr = ' + quotedstr(ComboBox2.Text);
Open;

end;

Query2 должен быть подключен к DBGrid.
Dissonance вне форума Ответить с цитированием
Старый 17.06.2008, 07:11   #6
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Можно и одним запросом:

Код:
SELECT Компьютеры.*, Список_программ.*
FROM Список_программ INNER JOIN (Компьютеры INNER JOIN Каталог_установленных_программ ON Компьютеры.№ПК = Каталог_установленных_программ.№ПК) ON Список_программ.№Программы = Каталог_установленных_программ.[№ Установленой программы]
WHERE Компьютеры.№ПК='здесь подставляете значение из комбобокса';
edgy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
SQL запрос Uomo БД в Delphi 17 23.04.2008 14:12
SQL запрос SERG1980 БД в Delphi 6 19.10.2007 23:03
SQL-запрос Alexey_vyb БД в Delphi 4 22.05.2007 18:52
SQL-запрос Elena БД в Delphi 3 17.05.2007 15:13