Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2012, 19:52   #1
Mihay
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 1
По умолчанию Как получить доступ к ячейкам DBGrid после SQL-запроса ADOQuery

Здравствуйте!
Я на C++ Builder-е программирую давно но с Базами данных столкнулся впервые, т.к. решаю моделирую математические модели.
На этот надо было вытащить некоторые числа заложенные в БД, которые в ней динамически меняются. В принципе подключение к БД было выполнено по ADO-технологии. Послав SQL-запросы при помощи ADOQuery, я получил сетку чисел в DBGRid-е. Дальше я не знаю или недопонимаю как получить доступ к этим числам, чтоб я ими мог в дальнейшем оперировать уже отдельно от DBGrid. Перечитал много форумов, но там сказано вроде бы, что доступ к ячейкам ощуществляется при поомощи метода ADOQuery: Parameters, т.е.
ADOQueryDB->Parameters->ParamByName("Numb")->Value или другие модификации Parameters.
Но тут начинается непонятки: При запуске программы - она говорит что такого стобца "Numb" - не существует (хотя он есть), а в модификациях не существует такого элемента массива.
Помогите мне пожалуйста, ведь осталось только получить доступ к этим ячейкам DBGrid
Mihay вне форума Ответить с цитированием
Старый 21.03.2012, 22:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что за ерунда?...
ADOQuery.FieldByName('Numb').asТипП оля - дадут тебе значения из текущей записи.
Перемещаться по записям можно так:
first - первая запись
next - следующая за той, на которой стоишь
prior - предидущая перед той, на которой стоишь
last - последняя.
moveby(n) - перейти на n записей вверх (если с минусом укажешь) или вниз.

К примеру:
Проход по базе:
Код:
with ADOQuery do begin
 first; //Стали в начало
 while not eof do begin // Пока не конец таблицы
  // Считали из поля значение, допустим там вещественное, и чето с ним сделали
 // в данном случае просуммировали
  sum:=sum+ADOQuery.FieldByName('Numb').asFloat;
  next; //Перешли на следующую запись
 end;
end;
Или: Переход на запись по ее номеру в Гриде:
Код:
with ADOQuery do begin
 first; //Стали в начало
 moveby(16); // Перешли на 16-ю запись 
end;
Яснышко?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.03.2012, 09:02   #3
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Из DBGrid
Код:
DBGrid1.Fields[1].Value;
по номеру поля в наборе данных
Код:
DataSet1.Fields[1].Value;
по имени поля
Код:
DataSet1.FieldByName('Numb').Value;
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 22.03.2012, 10:41   #4
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Цитата:
ADOQueryDB->Parameters->ParamByName("Numb")->Value
ParamByName используется, если нужно передать параметр. А если взять значение FieldByName.
Drugnir вне форума Ответить с цитированием
Старый 22.03.2012, 22:50   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ADOQueryDB->FieldByName('Numb')->AsFloat;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получения данных типа String после запроса ADOquery _PROGRAMM_ БД в Delphi 5 15.03.2011 14:17
Не стыковка SQL запроса и раскраски DBGrid artemavd БД в Delphi 2 12.03.2011 16:10
Доступ к ячейкам запроса/таблицы. Kliron Microsoft Office Access 1 23.03.2010 19:17
Как получить текущую дату из SQL запроса? _ozzy_ SQL, базы данных 2 09.09.2008 21:15
Как получить доступ к ячейке DBGrid RatMir БД в Delphi 1 16.06.2008 22:35