Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.05.2011, 18:20
crash040 crash040 вне форума
Прохожий
 
Регистрация: 29.05.2011
Сообщения: 1
Репутация: 10
Восклицание Проблема с sql запросом

Здраствуйте! помогите пожалуйста сделать запрос.

Есть 4 CheckListBox по клику мыши в них появляется информация из разных таблиц по нажатию на кнопку надо вывести выбранную информацию на форму в dbgrid. Запрос должен быть как во вложении.

Есть код который выбирает по одному CheckListBox и одной таблице:
Код:
var
s:STRING;
i,k:integer;
begin
with Form1.ADOQuery2 do begin close;
k:=0;
SQL.Clear;
SQL.Add ('SELECT Вуз.№, Вуз.[Название вуза], Вуз.[Название специальности], Вуз.[Форма обучения], Вуз.[Вид обучения], Вуз.[Конкурс прошлого года], Вуз.[Плата за обучение]');
SQL.Add (' FROM Вуз ');
s:='';
for i:=0 to CheckListBox1.Items.Count - 1 do
if CheckListBox1.Checked[i] then
begin
if k=0 then
s:=s+(' [Название вуза] ="'+CheckListBox1.Items[i]+'"')
ELSE
s:=s+(' OR [Название вуза] ="'+CheckListBox1.Items[i]+'"');
k:=1;
END;
if s<>'' then
SQL.Add(' where '+s+';');
Open;
Datasource1.dataset:=AdoQuery2;
Вложения
Тип файла: txt запрос.txt (571 байт, 6 просмотров)
Ответить с цитированием
  #2  
Старый 30.05.2011, 12:54
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Если я правильно понял, то проблема в корректном формировании ограничения к запросу. Предположу так-же, что выбор нескольких чекбоксов даст нам ограничение в несколько условий. Тогда можно так:
Код:
Var i: Integer;
    S: String;
begin
 S := '';
 for i := 0 to CheckListBox1.Count - 1
 do if CheckListBox1.Checked[i]
    then if S <> ''
         then S := S + ' or [Название вуза]=''' + CheckListBox1.Items[i] + ''''
         else S := S + '[Название вуза]=''' + CheckListBox1.Items[i] + '''';
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 30.05.2011, 13:03
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

или же через:
Код:
[Название вуза] IN (1,2,3 и т.д.)
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter