![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, уважаемые обитатели форума. Выручите подсказкой.
Есть : 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
|
||||
|
||||
![]() Цитата:
Цитата:
определяйся! и еще Цитата:
Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 05.03.2013 в 12:55. |
#3
|
|||
|
|||
![]() Неактуально.
Делфи умерла, похоронив с собой проект, и 3 месяца трудов. Блджад ![]() Как так то - всю жизнь комп выключал, на кнопку на фильтре, и выдергивал небезопасно флэшки, а стоило сохранть проект в делфи, выключить на сетефом фильтре - и песец. Большой пушистый песец. Не открывается проект теперь ![]() ![]() ![]() Последний раз редактировалось Budjaka, 05.03.2013 в 14:40. |
#4
|
||||
|
||||
![]() Цитата:
![]() Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Budjaka (05.03.2013)
|
#5
|
|||
|
|||
![]() Цитата:
В папке с проектом есть _history. В проекте убито родительское окно (было MDI приложение) - при попытке открыть файл проекта, выдает, что то типа ошибка в начале файла. Если смотреть блокнотом, файлы Main.dpr - то видно одни нули. Просто куча '0'. В нескольких файлах тож самое. Если создать новый проект и добавлять юниты (дочерние окна), начинает верещать об ошибках, 16ти битах, мучится, корячится, и итоге видно только листинг - форма не создается. Так в 4х файлах из 12ти. Само родительское окно померло, main.pas - пустой. Вытаскивал из history предыдущие файлы - тоже самое |
#6
|
||||
|
||||
![]() А что в main.~dpr and main.~pas?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Budjaka (05.03.2013)
|
#7
|
|||
|
|||
![]() Цитата:
Восстановил - запустилось , состояние кода - как с утра ). Ура товарищи! А я чуть с горя не нажрался на работе :-) P.s. А как все таки тогда в выведенном целиком DBGRID (SELECT * FROM dbo.TUSER), раскрасить ячейки, таким образом - 1. Если 2 ячейка больше 4й - раскрасить красным вторую 2. Если 3 ячейка больше 5й - раскрасить третью :-) Читал много мануалось, по раскраске ДБГрида - везде все советуют по разному. Пробовал пару советов, не получалось. |
#8
|
||||
|
||||
![]() Цитата:
Код:
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
|
|||
|
|||
![]() Спасибо огромное - рабоает! Можно еще 1 последний момент?
Я хочу кликнуть по ячейке, и чтобы имя столбца по чьей ячейке я кликнул положилось в переменную + значение первой ячейки. Так можно? :-) P.s. - все, разобрался. Код:
RowID := DBGrid1.SelectedIndex; // номер выбранного столбца ParamOfSelected := DBGrid.Fields[0].AsString //Значение из 1й ячейки выбранного столбца Последний раз редактировалось Budjaka, 06.03.2013 в 15:39. |