Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

выборка из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.062 c
1-1154430550
Redline
2006-08-01 15:09
2006.09.17
игнорирование ошибок


3-1153105965
just
2006-07-17 07:12
2006.09.17
Добавление ключевых полей в MS Access


1-1154507212
elena_pp
2006-08-02 12:26
2006.09.17
Как в Excel задавать формулу ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;F2:F10)


1-1154624425
ISK(CMEPTb)
2006-08-03 21:00
2006.09.17
Вставка объектов в текстовый редактор


2-1156628488
vain
2006-08-27 01:41
2006.09.17
column в ListView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский