![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Цитата:
Цитата:
определяйся! и еще Цитата:
Последний раз редактировалось Yurk@, 05.03.2013 в 12:55. |
|
#3
|
|||
|
|||
|
Неактуально.
Делфи умерла, похоронив с собой проект, и 3 месяца трудов. Блджад ![]() Как так то - всю жизнь комп выключал, на кнопку на фильтре, и выдергивал небезопасно флэшки, а стоило сохранть проект в делфи, выключить на сетефом фильтре - и песец. Большой пушистый песец. Не открывается проект теперь ![]() Последний раз редактировалось Budjaka, 05.03.2013 в 14:40. |
|
#4
|
||||
|
||||
|
Цитата:
Спасти ещё можно - сохранить папку проджекта на всякий пожарный, потом удалить все файлы, совпадающие с теми, у которых в расширении есть ~, напр. Project1.~dpr удалить Project1.dpr, ну и затем удалить этот знак из расширений оставшихся. Не будет лишь самых последних изменений. |
| Этот пользователь сказал Спасибо 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. |