Текущий архив: 2005.12.25;
Скачать: CL | DM;
Вниз
DBGrid Найти похожие ветки
← →
VIB (2005-12-07 12:44) [0]Как мне получить значение ячейки сабжа, если у меня есть
индекс колонки и столбца
← →
Плохиш © (2005-12-07 13:19) [1]
> VIB (07.12.05 12:44)
1. сабж не имеет значений
2. у сабжа свойства "колонка" и "столбец" скрыты от начинающих, поэтому откуда ты их взял совершенно не понятно
← →
msguns © (2005-12-07 13:29) [2]В обработчике
procedure TForm1.DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
// Координаты текущей ячейки записать в переменную
if gdSelected in State then <Переменная типа TRect> := Rect;
end;
← →
Плохиш © (2005-12-07 13:57) [3]
> msguns © (07.12.05 13:29) [2]
Индекс и координаты, ИМХО, разные вещи.
← →
VIB (2005-12-07 13:59) [4]Конкретезирую вопрос.
У меня есть DBGrid.
Как мне из него получить значение 2-й колонки 6-го столбца
← →
Плохиш © (2005-12-07 14:01) [5]
> VIB (07.12.05 13:59) [4]
> Конкретезирую вопрос.
У DBGrid нет такого понятия как "2-й колонки 6-го столбца", а про значение я уже говорил
← →
Sergey13 © (2005-12-07 14:01) [6]2[4] VIB (07.12.05 13:59)
Зачем тебе это?
← →
VIB (2005-12-07 14:05) [7]Когда на сервере большая таблица данных.
Я хочу считывать с сервера данные по кускам (например по 100 штук).
И мне надо знать значение поля ID которое находится во второй строке грида
← →
Sergey13 © (2005-12-07 14:59) [8]2[7] VIB (07.12.05 14:05)
У тебя неправильный подход. Разберись сначала с нужностью видеть в гриде всю "большую таблицу данных".
ИМХО.
← →
VIB (2005-12-07 15:15) [9]Ну вот для этого я и хочу считывать по 100 записей.
Но что - бы мне это реализовать мне надополучить значение поля ID
второй строки.
Пример
Если значение поля ID второй строки =10 и мы к конце DataSet и нажата клавиши вниз, то пишем запрос
Select top 100 * from table_name where id>=10
Аналогично с прокруткой вверх
← →
Sergey13 © (2005-12-07 15:28) [10]2[9] VIB (07.12.05 15:15)
А если сделать секцию Where более насыщеной (и осмысленной!) и вернуть на клиента только то, что действительно надо?
← →
VIB (2005-12-07 15:39) [11]Как в таком случае организовать скролинг грида вверх и вниз по всей таблице.
Если мне надо выбрать данные между датами 01.01.2005 и 01.12.2005 а их там 3000000.
← →
Sergey13 © (2005-12-07 15:46) [12]2[11] VIB (07.12.05 15:39)
>Если мне надо выбрать данные между датами 01.01.2005 и 01.12.2005 а их там 3000000.
И в грид? Наверное их кто-то смотреть будет? Наверное все 3000000 сразу? И все запомнит и проанализирует в уме?
← →
alex_*** © (2005-12-07 17:22) [13]скроллинг по таблице организуется с помощью Next(), Prior()
← →
VIB (2005-12-07 17:39) [14]Я вижу меня не понимают уважаемые мастера.
Еще раз попробую объяснить ситуацию которую хочу сделать.
Например я считываю 50 первых позиций из таблицы.
Грид показывает мне их. Я начинаю двигатся по таблице например вниз.
Когда доходжу до последней записи мне надо подчитать следующих 50 записей но я должен также и вывысти записи которые в данный момент видно на экране. Значение поля последней активной позиции у меня есть.
Поэтому мне надо знать значение поля второй строки сетки, чтобы от него запросить еще 50 записей и.т.д.
← →
stone © (2005-12-07 17:44) [15]
> Значение поля последней активной позиции у меня есть.
> Поэтому мне надо знать значение поля второй строки сетки,
> чтобы от него запросить еще 50 записей и.т.д.
А если набор данных отсортирован не по ID, как ты в этом случае собираешься строить запрос?
← →
Плохиш © (2005-12-07 17:45) [16]
> VIB (07.12.05 17:39) [14]
> Например я считываю 50 первых позиций из таблицы.
> Грид показывает мне их. Я начинаю двигатся по таблице например
> вниз
Используя кнопки PgDn/PgUp, перетаскиванием ползунка в вертикальном ScrollBar.
← →
msguns © (2005-12-07 17:53) [17]>VIB (07.12.05 17:39) [14]
То, что ты описал, и делает TDataSource вместе с нисходящими TDataSet. Если все это работает медленно из-за большого кол-ва записей, то либо принципиально неверно построена концепция интерфейса с БД (например, тянутся все документо-строки всех документов БД вместо того, чтобы извлекать только заголовки документов за определенный период и все строки только по одному документу), либо надо отказаться от стандартных методов доступа, заменив их более мобильными своими. Например, перейти на трехзвенку и ограничивать "порции" на апп-сервере.
← →
ЮЮ © (2005-12-08 03:33) [18]У DBGrid-а есть DataLink, который обеспечивает доступ ко всем записям, отображенных в гриде. Посмотри его использование в исходниках TDBGrid.DrawCell
Страницы: 1 вся ветка
Текущий архив: 2005.12.25;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.059 c