|
Вопрос # 1 946/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
у меня есть SQL - запрос:
на выходе следующая информация:
VidObr | cou
--------------
знач1 | 4
знач2 | 8
а как теперь допустим в Edit1 занести количество встречаемых записей знач1?? (т.е. чтобы значение Edit1.text = 4 ???)
Приложение: Переключить в обычный режим- SELECT RegistraKartochka.VidObr, Count(*) AS cou
- FROM RegistraKartochka
- GROUP BY RegistraKartochka.VidObr, 1;
 |
Вопрос задала: Танюшка (статус: Посетитель)
Вопрос отправлен: 29 сентября 2008, 14:43
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Танюшка!
Если надо именно знач1, то так и надо написать в запросе
SELECT RegistraKartochka.VidObr, Count(*) AS cou
FROM RegistraKartochka
where VidObr = 'знач1'
GROUP BY RegistraKartochka.VidObr, 1;
теперь у нас в результате ответом будет одна строка. А дальше всё зависит от тех компонентов, которые используете. для многих это будет что то вида
QueryXXX.FieldByName('имя поля')
или
QueryXXX.FieldByName('имя поля').asinteger
пишите, какие компоненты юзаете - напишу реальный кусочек кода.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 29 сентября 2008, 14:54
Оценка за ответ: 5
Комментарий к оценке: За идею ;)
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 30 сентября 2008, 19:21; участников в обсуждении: 3.
|
Танюшка (статус: Посетитель), 29 сентября 2008, 15:00 [#1]:
на самом деле мне нужно и количество записей знач1 и знач 2 (написала просто чтоб сократить текст), и поэтому в самом запросе блок where VidObr = 'знач1' я использовать не хочу ... так как иначе мне придеться создавать 22 ADOQuery а это вы сами понимаете даже не смешно...
так что если есть какие нибудь предложения по моему запросу и как его разобрать так сказать на составляющие то заранее огромное спасибо
|
|
Вадим К (статус: Академик), 29 сентября 2008, 15:14 [#2]:
во первых, 22 ADOQuery создавать не надо. можно пользоваться только одним.
После выполнения запроса можно пройтись по нему. Это где то так
While not Adoquery1.eof do begin
memo1.lines.add(ADOQuery1.FieldByName('VidObr'));
ADOQuery1.next;
end;
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Мережников Андрей (статус: Абитуриент), 30 сентября 2008, 18:47 [#3]:
Если необходимо значение поместить именно в Edit, то воспользуйтесь методом LookUp для ADOQuery. Где-то так:
var lResult:Variant;
begin
....
lResult:=ADOQuery.LookUp('vidobr','знач1','cou');
if vartype(lResult)=varnull
then //значение не найдено
else edit1.text:=IntToStr(lResult);
|
|
Вадим К (статус: Академик), 30 сентября 2008, 19:02 [#4]:
вот как раз этих древностей и не надо. Они очень хорошо тормозят.
Правильней сделать цикл, как я выше написал и распихать по этитам.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Мережников Андрей (статус: Абитуриент), 30 сентября 2008, 19:21 [#5]:
непонятно только зачем именно edit применять - ведь изменение полученного значения смысла не имеет.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|