|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.05.2011, 20:36 | #1 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
Как убрать ненужные строки в запросе!
Здраствуйте проблема такая при запросе выводит каждую строку почему то аж по два раза! Как это исправить?
Код: Procedure TForm1.CheckListBox5Click(Sender: TObject); 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 CheckListBox5.Items.Count - 1 do if CheckListBox5.Checked[i] then begin if k=0 then s:=s+(' [вид обучения] ="'+CheckListBox5.Items[i]+'"') ELSE s:=s+(' OR [вид обучения] ="'+CheckListBox5.Items[i]+'"'); k:=1; END; if s<>'' then SQL.Add(' where '+s+';'); Open; Datasource1.dataset:=AdoQuery2; end; end; Последний раз редактировалось CRASH040; 31.05.2011 в 20:41. |
31.05.2011, 20:43 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
У вас записей в таблице [Дополнительная информация] видимо 3, а поскольку условие связи между таблицами [Вуз] и [Дополнительная информация] не задано, то и записи троятся. Условие задать во WHERE, а потом, если условие на вид обучения есть, то AND и в скобках условие на вид обучения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.05.2011, 20:54 | #3 | |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
Цитата:
|
|
31.05.2011, 21:00 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Записей может и по одной, но всего их три и все они цепляются к каждой записи вуза
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.05.2011, 21:13 | #5 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
Напищи пожалуйста хоть примерно как это там прописать,а то я с запросами не очень разбираюсь!
|
31.05.2011, 21:22 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я не знаю как у вас связка осуществляется. Предположим это поле [Название вуза]. Поле с таким содержанием и, как правило для удобства пользования, с таким же названием должно быть и в таблице [Дополнительная информация]. Тогда запрос будет примерно такой
Код:
PS Если в [Дополнительная информация] по одной записи, зачем вообще в отдельную таблицу выносить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 31.05.2011 в 21:29. |
31.05.2011, 21:48 | #7 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
Теперь такая фигня в этом месте и в select пишет пропущен оператор
WHERE Вуз.[Название вуза]=[Дополнительная информация].[Название вуза] в этом месте Последний раз редактировалось CRASH040; 31.05.2011 в 22:01. |
01.06.2011, 21:27 | #8 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
Checklistbox как убрать повторяющиеся строки
Здраствуйте! с этим всем я разобрался подскажите пожалуйста как сделать следующее: при запросе вывожу информацию из поля таблицы в checklistbox в items там у меня выводит одинаковые названия как сделать чтоб было по одному и не было повторений.
Вот код: Код:
________ Пора бы уже научиться, что код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 01.06.2011 в 22:02. |
01.06.2011, 22:08 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) подобная задача на форуме решалась.. думаю, что поиском найдёте её.
2) вкратце, есть два подхода. 1-й - простой, правильный, понятный, эффективный - использовать в запросе группировку, чтобы устранить повторы (кстати, там же и сортировку можно приладить, в случае необходимости...) это так: Код:
примерно так: Код:
|
01.06.2011, 22:29 | #10 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
Serge_Bliznykov
Благодарю за помощь)) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как в комбобоксе скрыть ненужные строки. | voverrr | Общие вопросы Delphi | 8 | 08.03.2011 18:03 |
Как убрать мусор до строки | Alyonka_v | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 13.09.2009 13:28 |
как из строки ТМемо удалить ненужные символы | MixanMM | Общие вопросы Delphi | 3 | 10.06.2009 13:49 |
Как убрать перевод строки? | Biowulf86 | Помощь студентам | 2 | 25.03.2008 11:05 |