Консультация № 145264
28.09.2008, 07:33
0.00 руб.
0 4 0
hi...

Есть ли более человечный способ обращения к значениям полей dbgrid? Например по имени поля: FieldByName('ID').asInteger; Если делать это так: Fields[0].asInteger, то придется править индекс, если вдруг поле ID поставить на другое место, например 2...
Есть варианты?

Спасибо...

Обсуждение

Неизвестный
28.09.2008, 08:33
общий
Поясните вопрос.
способ обращения к значениям полей dbgrid

и
FieldByName('ID').asInteger; Если делать это так: Fields[0].asInteger

разные вещи. К тому же, "значение" полей берется из источника данных (DataSet - Query, Table и т.д.) а не из компонента отображения данных, который предназначен для отображения и в редких случаях редактирования данных.
Если Вам надо проверять значение записи для, например, изменения цвета строки — это другое.
Неизвестный
28.09.2008, 09:28
общий
Пардон...

Сама суть того, зачем мне обращаться к полям dbgrid:
Я руководствуюсь тем, что будет более производительнее, то есть: обращение к базе FieldByName('ID').asInteger можно избежать, если нужные мне значения загружены в dbgrid. Но dbgrid нет метода FieldByName для удобного обращения к загруженным данным....вот я спрашиваю...

А мож я не тем путем пошел? )
Неизвестный
28.09.2008, 11:50
общий
будет более производительнее, то есть: обращение к базе FieldByName('ID').asInteger можно избежать, если нужные мне значения загружены в dbgrid.

Заблуждение. DBGrid только отображает то, что есть в DataSet уже загружено. Сам по себе он ничего не грузит и не хранит .
Т.е. то, что Вы видите в сетке, это не отдельные данные, это только отображение их, которые «загружены» в DataSet. Именно потому и говорят о целесообразности использования Table и Query — первый компонент загружает все данные с базы, но это позволяет более быстро вести навигацию. Второй компонент грузит только то, что просит SQL запрос, т.е. Значительно сокращая трафик возлагая нагрузку на сервер а не на клиента. Как видите, о компонентах отображения данных нет ни слова.
Потому я и не понял смысла Вашего вопроса.
Нет смысла говорить о более эффективном способе в случае использования DBGrid.
К тому же, проверка, навигация и фильтрация в DBGrid идет по свойствам DataSurce->DataSet
Неизвестный
28.09.2008, 12:57
общий
Спасибо...даже не знаю, почему я так подумал
Форма ответа