Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADOQuery Подсчет кол-ва значений [D5, Access]


Страницы:   1 2 3

My ©   (2003-12-16 14:44:00) 

Работаю с ADO. У меня есть пустая таблица. Начинаю ее заполнять, и между єтим подсчитываю число записей с определенным значением поля. С пом-ю другого запроса:
select Count (поле1) as Рез-т
from Табл
where поле2=:поле2
and Поле3="значение"

св-во DataSource заполнено и имеются совпадающие значения, но все время, до окончания работы, в рез-те запроса возвращается 0.


sniknik   (2003-12-16 16:29:00) [41]

а как тогда обьяснить что в конце цикла все видно?
> Значение появляется только после окончания цикла, когда записей допустим 5...


Reindeer Moss Eater   (2003-12-16 16:25:00) [42]

sniknik © (16.12.03 15:02) [1]
where поле2=:поле2 and Поле3="значение"
если совпадающие значения в условии (по обоим и одновременно т.к. and) есть то результат должен быть не 0, однозначно .
открой базу access-ом и проверь может ты туда ничего не записал.


Ничего подобного.
Даже если есть записи, удовлетворяющие where поле2=:поле2 and Поле3="значение".
У автора вопроса COUNT( поле1), а не count(*).

Если в поле1 лежит NULL, то count(поле1) вернет 0.


KSergey   (2003-12-16 16:22:00) [43]

А [6] Reindeer Moss Eater © (16.12.03 16:15) - молодец! Про null я не подумал. Может на звездочку поменять? Для эксперимента хотя бы?
Впрочем, похоже - отладка, отладка и еще раз отладка. Врятли по этому куску что-то скажешь.


sniknik   (2003-12-16 16:21:00) [44]

My (16.12.03 16:15) [5]
покажи как ложиш (полностью а не только запрос на количество) и что ложиш, 5 записей особенно значения что попадают в поле2=:поле2 and Поле3. .


Reindeer Moss Eater   (2003-12-16 16:15:00) [45]

либо условию WHERE не удовлетворяет ни одна запись, либо в тех записях, что удовлетворяют условию WHERE в поле "поле1" содержится NULL


My   (2003-12-16 16:15:00) [46]

Без транзакций, обычный запрос, запись в таблице заполнена полностью - все поля как нужно.
Вставка как-раз через Insert Into, привязка одинакова,
RecordCount до окончания цикла=1, а в конце, при переходе на нужную запись =5.
У меня нет ключевого поля, не может быть из-за этого проблем?


sniknik   (2003-12-16 16:01:00) [47]

My (16.12.03 15:35) [2]
понятно, раз они всетаки появляются то дело ясное. ложиш небось так ADOTable1/ADOQuery1.Append/Insert ? нет?
если так то переходи на запросы. (insert into ...), или проверяй у ADOTable1.RecordCount... без доп. запроса. (записи просто кешируются)

и также проверь что у тебя все ADO компоненты к одному конекту привязаны а не к разным.


KSergey   (2003-12-16 15:53:00) [48]

А БД какая?
А то может это все в транзакции делается, а уровень изоляции высоковатым выбран (св-ство IsolationLevel).
Да и внимательно бы надо еще раз посмотреть что там формируется, не забываем ли заполнять параметры, тем ли они заполняются (внутри цикла).


My   (2003-12-16 15:35:00) [49]

Таблицу проверяю, прохожу пошагово, в таблице при прохождении записи появляются, но результат запроса все-равно 0, может табл нужно как-то обновлять? Значение появляется только после окончания цикла, когда записей допустим 5, а мне нужно тормозить после 3.


sniknik   (2003-12-16 15:02:00) [50]

where поле2=:поле2 and Поле3="значение"
если совпадающие значения в условии (по обоим и одновременно т.к. and) есть то результат должен быть не 0, однозначно .
открой базу access-ом и проверь может ты туда ничего не записал.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо