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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 15:39   #21
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

не понимаю, что означает рисунок..

продолжаем попытки.

Цитата:
Мне нужно не количество записей, а значение каждой отдельной строки.
так?
Код:
Form1.ADOQuery1.Open; {выполнили открытие датасета == получил набор данных}

i:=0;
while NOT Form1.ADOQuery1.EOF do
   MyVarX := Form1.ADOQuery1.FieldByName('x').AsFloat;
   inc(i);
   ShowMessage('Значение переменной в строке '+IntToStr(i)+' равно : '+FloatToStr(MyVarX));
   Form1.ADOQuery1.Next; {перешли на следующую строчку в наборе данных}
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2013, 15:45   #22
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
Мне нужно не количество записей, а значение каждой отдельной строки. Например:
вернитесь к #15
eval вне форума Ответить с цитированием
Старый 03.04.2013, 16:39   #23
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не понимаю, что означает рисунок..

продолжаем попытки.


так?
Код:
Form1.ADOQuery1.Open; {выполнили открытие датасета == получил набор данных}

i:=0;
while NOT Form1.ADOQuery1.EOF do
   MyVarX := Form1.ADOQuery1.FieldByName('x').AsFloat;
   inc(i);
   ShowMessage('Значение переменной в строке '+IntToStr(i)+' равно : '+FloatToStr(MyVarX));
   Form1.ADOQuery1.Next; {перешли на следующую строчку в наборе данных}
end;
DbGrid выводит х1=2(1-ая строка); x2=0,75(2-ая строка) (SQL-запрос), а в ShowMessage x=0 (Ваш код). Потом, когда закрываю мэссэдж, выходит:
Cannot perform this operation on a closed dataset. Но данные же открыты!
Код:
...
ADOQuery1.Open;
...
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 16:43   #24
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
вернитесь к #15
чтобы прочитать конкретное данное надо дойти до нужной строки и взять из нужного поля
Понимаю только теоретически о чем речь. Пошел "рыться" в литературе
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 16:48   #25
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Начинает получаться:
Код:
Edit1.Text:=DBGrid1.Fields[0].Value;
Но здесь только значение первой строки, а как получить остальных существующих строк?
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 16:58   #26
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

я ж говорил уже, что в гриде нету данных, данные только в датасете, из датасета надо брать
eval вне форума Ответить с цитированием
Старый 03.04.2013, 17:06   #27
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
я ж говорил уже, что в гриде нету данных, данные только в датасете, из датасета надо брать
Да, я понял. Просто первое значение я уже вытащил, то что отображает DbGrid, попробую с ним поработать. Если не получится буду изучать датасет
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 17:07   #28
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

датасет это ваш ADOQuery1
eval вне форума Ответить с цитированием
Старый 03.04.2013, 17:21   #29
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
датасет это ваш ADOQuery1
все-все. уже изучаю. спасибо
helpkz вне форума Ответить с цитированием
Старый 04.04.2013, 09:28   #30
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Вопрос решил. Когда сделал выборку и деление полей score1/score2, получил результат:


Так вот. Мне нужно было сложить все иксы (в данном случае х1+х2). И получить на выходе судя из рисунка 2+0.75=2.75

Код:
procedure TForm6.Button4Click(Sender: TObject);
var i:integer;
n:Real;
begin
n:=0;
for i:=1 to DataSource1.DataSet.RecordCount do begin
n:=n+StrToFloat(DataSource1.DataSet.FieldValues['x']);
DataSource1.DataSet.Next;
end;
Memo1.Clear;
Memo1.Lines.Add(FloatToStr(n));
end;
helpkz вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как составить SQL запрос(запутался совсем) Messir_Leonard SQL, базы данных 2 17.03.2013 15:22
Как составить SQL запрос на удаление записей Dux БД в Delphi 2 19.02.2013 23:36
Не могу составить запрос SeRhy PHP 5 04.04.2011 16:33
Не могу составить запрос bullvinkle SQL, базы данных 2 04.10.2009 22:55
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12