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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.03.2013, 12:47
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию Как вывести в DBGRID значения выше 100

Здравствуйте, уважаемые обитатели форума. Выручите подсказкой.
Есть : DBGRID ->DataSource-> ADOQuery-> ADOConnection -> база MSSQL.
В ДБГрид оборажаются ровно 5 столбцов :
1. - Имя
2. - Рост
3. - Возраст
4. - Максимальный рост
5. -Максимальный возраст
В ADOQuery стоит SELECT * FROM dbo.USER
Суть задачи : нужно выводить только те строки в которых :
1. Поле 3 < поле 5. То есть у кого возраст не превышает максимальный
2. Поле 2 < поле 4. Т.е. у кого рост не превышает максимальный.
Причем (!), если мы имеем скажем записи :
1. Вася 170 25 180 30
2. Петя 130 42 180 40
3. Маша 155 33 110 38
То я хочу увидеть в гриде следующее :
1. Вася 170 25 180 30
2. Петя 130 .....180 30
3. Маша .... ......110 38
Можно подобное реализовать средствами SQL?
P.s. Turbo Delphi 2006
Ответить с цитированием
  #2  
Старый 05.03.2013, 12:50
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Цитата:
нужно выводить только те строки в которых :
противоречит
Цитата:
То я хочу увидеть в гриде следующее :
чем-то одним прийдется жертвовать. ты хочешь одновременно и не выводить записи и тут же выводить частично.
определяйся!

и еще
Цитата:
вывести в DBGRID значения выше 100
выше 100 чего ???
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз

Последний раз редактировалось Yurk@, 05.03.2013 в 12:55.
Ответить с цитированием
  #3  
Старый 05.03.2013, 13:02
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию

Неактуально.
Делфи умерла, похоронив с собой проект, и 3 месяца трудов.
Блджад
Как так то - всю жизнь комп выключал, на кнопку на фильтре, и выдергивал небезопасно флэшки, а стоило сохранть проект в делфи, выключить на сетефом фильтре - и песец. Большой пушистый песец. Не открывается проект теперь

Последний раз редактировалось Budjaka, 05.03.2013 в 14:40.
Ответить с цитированием
  #4  
Старый 05.03.2013, 15:06
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Budjaka
...Не открывается проект теперь
А что, за три месяца бэкапов не было совсем? Спасти ещё можно - сохранить папку проджекта на всякий пожарный, потом удалить все файлы, совпадающие с теми, у которых в расширении есть ~, напр. Project1.~dpr удалить Project1.dpr, ну и затем удалить этот знак из расширений оставшихся. Не будет лишь самых последних изменений.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Budjaka (05.03.2013)
  #5  
Старый 05.03.2013, 16:10
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А что, за три месяца бэкапов не было совсем? Спасти ещё можно - сохранить папку проджекта на всякий пожарный, потом удалить все файлы, совпадающие с теми, у которых в расширении есть ~, напр. Project1.~dpr удалить Project1.dpr, ну и затем удалить этот знак из расширений оставшихся. Не будет лишь самых последних изменений.
Не, не бэкапил, не думал, что так произойдет.
В папке с проектом есть _history.
В проекте убито родительское окно (было MDI приложение) - при попытке открыть файл проекта, выдает, что то типа ошибка в начале файла.
Если смотреть блокнотом, файлы Main.dpr - то видно одни нули. Просто куча '0'. В нескольких файлах тож самое. Если создать новый проект и добавлять юниты (дочерние окна), начинает верещать об ошибках, 16ти битах, мучится, корячится, и итоге видно только листинг - форма не создается. Так в 4х файлах из 12ти. Само родительское окно померло, main.pas - пустой.
Вытаскивал из history предыдущие файлы - тоже самое
Ответить с цитированием
  #6  
Старый 05.03.2013, 16:15
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

А что в main.~dpr and main.~pas?
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Budjaka (05.03.2013)
  #7  
Старый 05.03.2013, 16:37
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А что в main.~dpr and main.~pas?
Точно!
Восстановил - запустилось , состояние кода - как с утра ). Ура товарищи!
А я чуть с горя не нажрался на работе :-)
P.s.
А как все таки тогда в выведенном целиком DBGRID (SELECT * FROM dbo.TUSER), раскрасить ячейки, таким образом -
1. Если 2 ячейка больше 4й - раскрасить красным вторую
2. Если 3 ячейка больше 5й - раскрасить третью :-)
Читал много мануалось, по раскраске ДБГрида - везде все советуют по разному. Пробовал пару советов, не получалось.
Ответить с цитированием
  #8  
Старый 05.03.2013, 21:41
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Budjaka
...раскрасить ячейки...
Не знаю, как там насчёт отношений, SQL не моё, когда и кого нужно, но вот этот совет из ©Drkb::00595 раскрашивает ячейки или столбцы точно, в св.зелёный цвет, проверил
Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn;State: TGridDrawState);
const
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);
begin
if Column.FieldName = 'Status' then //Удалите эту линию, если хотете закрасить целую линию
   if Column.Field.Dataset.FieldbyName('Status').AsString <> 'a' then
     if (gdFocused in State) {//имеет ли ячейка фокус? } then
       dbgrid1.canvas.brush.color := clBlack //имеет фокус
     else
       dbgrid1.canvas.brush.color := clPaleGreen; //не имеет фокуса
//Теперь давайте закрасим ячейку используя стандартный метод:
dbgrid1.DefaultDrawColumnCell(rect, DataCol, Column, State)
end;
Подставить лишь свои названия полей
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Budjaka (06.03.2013)
  #9  
Старый 06.03.2013, 15:11
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию

Спасибо огромное - рабоает! Можно еще 1 последний момент?
Я хочу кликнуть по ячейке, и чтобы имя столбца по чьей ячейке я кликнул положилось в переменную + значение первой ячейки.
Так можно? :-)
P.s. - все, разобрался.
Код:
RowID := DBGrid1.SelectedIndex;     // номер выбранного столбца 
ParamOfSelected := DBGrid.Fields[0].AsString //Значение из 1й ячейки выбранного столбца
Спасибо вам люди, что помогли, дай Вам Бог здоровья.

Последний раз редактировалось Budjaka, 06.03.2013 в 15:39.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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