![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOQuery Подсчет кол-ва значений [D5, Access]
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-ом и проверь может ты туда ничего не записал.