![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
У вас записей в таблице [Дополнительная информация] видимо 3, а поскольку условие связи между таблицами [Вуз] и [Дополнительная информация] не задано, то и записи троятся. Условие задать во WHERE, а потом, если условие на вид обучения есть, то AND и в скобках условие на вид обучения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Записей может и по одной, но всего их три и все они цепляются к каждой записи вуза
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
![]()
Напищи пожалуйста хоть примерно как это там прописать,а то я с запросами не очень разбираюсь!
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Я не знаю как у вас связка осуществляется. Предположим это поле [Название вуза]. Поле с таким содержанием и, как правило для удобства пользования, с таким же названием должно быть и в таблице [Дополнительная информация]. Тогда запрос будет примерно такой
Код:
PS Если в [Дополнительная информация] по одной записи, зачем вообще в отдельную таблицу выносить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 31.05.2011 в 21:29. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
![]()
Теперь такая фигня в этом месте и в select пишет пропущен оператор
WHERE Вуз.[Название вуза]=[Дополнительная информация].[Название вуза] в этом месте Последний раз редактировалось CRASH040; 31.05.2011 в 22:01. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 24.05.2011
Сообщений: 12
|
![]()
Здраствуйте! с этим всем я разобрался подскажите пожалуйста как сделать следующее: при запросе вывожу информацию из поля таблицы в checklistbox в items там у меня выводит одинаковые названия как сделать чтоб было по одному и не было повторений.
Вот код: Код:
________ Пора бы уже научиться, что код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 01.06.2011 в 22:02. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) подобная задача на форуме решалась.. думаю, что поиском найдёте её.
2) вкратце, есть два подхода. 1-й - простой, правильный, понятный, эффективный - использовать в запросе группировку, чтобы устранить повторы (кстати, там же и сортировку можно приладить, в случае необходимости...) это так: Код:
примерно так: Код:
|
![]() |
![]() |
![]() |
#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 |