|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Проблема с 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; |
#2
|
||||
|
||||
Если я правильно понял, то проблема в корректном формировании ограничения к запросу. Предположу так-же, что выбор нескольких чекбоксов даст нам ограничение в несколько условий. Тогда можно так:
Код:
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
|
|||
|
|||
или же через:
Код:
[Название вуза] IN (1,2,3 и т.д.) взялся из неоткуда, ничего не прошу, помогаю просто так ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя |