Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

выборка из dbgrid   Найти похожие ветки 

 
shake   (2006-08-28 11:11) [0]

Доброго времени суток !
Подскажите пожалуйста как обратиться к ячейке в dbgrid или записать содержимое в переменную ?
(есть что-то аналогичное как в stringgrid ...cells[2,3] ?)
Буду очень признателен за пример


 
Sergey13 ©   (2006-08-28 11:13) [1]

> [0] shake   (28.08.06 11:11)

Работай не с ячейками, а с записям и полями датасета, отображаемого в гриде.


 
Ega23 ©   (2006-08-28 11:23) [2]

ВИПкшвюВфефЫщгксуюВфефЫуеюАшудвИнТфьу
блин...
DBGrid.dataSource.DataSet.FieldByName(FieldName).As....


 
Fay ©   (2006-08-28 11:29) [3]

Мне кажется, нет ничего зазорного в том, что начинающий читает какую-нибудь книжку по Delphi. Судя по всему, афтар читать умеет. Но стесняется?


 
shake   (2006-08-28 12:01) [4]

спасибо, Ega23 !!! Пример работает.

А можно вместо fieldname как-нибудь указать индекс в dbgrid ? То есть чтобы не было необходимости обрашаться по символьному полю, а была возможность организовать цикл


 
MBo ©   (2006-08-28 12:06) [5]

>shake
Ответь на вопрос - содержит ли DBGrid в себе данные?


 
shake   (2006-08-29 05:19) [6]

dbgrid не содержит в себе данные, он отображает их из источника через datasource.

Но всёже, как обратиться к данным по числовым индексам? Может быть у кого-то есть примеры


 
Sergey13 ©   (2006-08-29 08:00) [7]

> [6] shake   (29.08.06 05:19)

В хелпе смотрел?
Индкс колонки грида вовсе необязательно совпадает с индексом поля датасета.


 
Virgo_Style ©   (2006-08-29 08:09) [8]

shake   (29.08.06 5:19) [6]
После DataSet поставь точку, чуть подожди и полистай... "Там столько всего вкусного!" (с) %-) Кажется, Fields тебе нужен.


 
shake   (2006-08-29 12:43) [9]

Спасибо !!!
я сделал так:
showmessage(dbgrid1.DataSource.DataSet.Fields.FieldByNumber(1).asstring);
- работает

но, только как быть, если у меня таблица типа

|---------------------|
|   x1   |   x2   |   x3   |
|---------------------|
|    1   |   2    |   3    |
|---------------------|
|    4   |   5    |   6    |
|__________________|

через FieldByNumber я могу перемещаться по числам "1" "2" "3" ,
а как быть если я хочу обратиться к числам которые в "нижнем ряду" (4,5,6)?
как сменить "текущую строку" из которой идёт выбор ?


 
Ega23 ©   (2006-08-29 12:49) [10]

см. справку по методам TDataSet:
First, Next, Prior, Last.


 
shake   (2006-08-30 06:04) [11]

И ещё раз башое башое спасибо !!!
У меня все полулучилось, я сделал примерно так

   dbgrid1.DataSource.DataSet.First;
   while not dbgrid1.DataSource.DataSet.Eof do
        begin
        for a:= 1 to dbgrid1.DataSource.DataSet.FieldCount do
        .....................................................................
        showmessage(dbgrid1.DataSource.DataSet.Fields.FieldByNumber(a).asstring);
        .....................................................................
        dbgrid1.DataSource.DataSet.Next;
        end;


 
MsGuns ©   (2006-08-30 15:51) [12]

>shake   (30.08.06 06:04) [11]

а теперь перепиши вот так:

var
 bm: TBookMark;

 with dbgrid1.DataSource.DataSet do
   begin
    DisableControls;
    bm := GetBookMark;
    First;
    while not Eof do
       begin
        for a:= 0 to Fields.Count-1 do
        ... := Fields[a].asstring;
        Next;
       end;
    GoToBookMark(bm);
    FreeBookMark(bm);
    EnableControls;
   end;

и твой код будет не противно читать, он не будет тормозить и дергать грид и, кроме того, вернет после сканирования курсор в исходное положение


 
Ega23 ©   (2006-08-30 16:47) [13]


> MsGuns ©   (30.08.06 15:51) [12]


Только я бы добавил ещё
var
bm: TBookMark;

with dbgrid1.DataSource.DataSet do
  begin
   try
    DisableControls;
    bm := GetBookMark;
    First;
    while not Eof do
       begin
        for a:= 0 to Fields.Count-1 do
         ... := Fields[a].asstring;
        Next;
       end;
    GoToBookMark(bm);
    FreeBookMark(bm);
   finally
    EnableControls;
   end;
  end;


Чтобы уж точно EnableControls прошёл.



Страницы: 1 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
1-1155043600
Konstantin555
2006-08-08 17:26
2006.09.17
Ошибка при конвертации....


15-1156432552
bopmy
2006-08-24 19:15
2006.09.17
Стоимость исходных кодов - правовая защита


15-1156191530
Piter
2006-08-22 00:18
2006.09.17
Как запрятать алгоритм шифрования в программе?


15-1156046543
PSPF2003
2006-08-20 08:02
2006.09.17
Альтернатива Adobe Reader


2-1156596558
angelika
2006-08-26 16:49
2006.09.17
горячие клавиши (ctrl+key)