
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.10.2003, 11:07
|
|||
|---|---|---|---|
Как подсчитать колличество записей...... |
|||
|
#18+
Работаю в С++ Builder и БД Oracle. Подсоединяюсь к БД через компоненты ODAC. Сделал фильтрацию, и теперь нужно мне подсчитать колл-во записей и вывести число в сообщении пользователю. Пробую зделать так: int chisl; for(T_full->First(); !T_full->Eof; T_full->Next()) { chisl++; } ShowMessage("Записей: " +chisl); Но чтот в переменной "chisl" всякая чушь, не числового формата. Как можно это реализовать по другому? Если можно примером, новичёк я еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 11:29
|
|||
|---|---|---|---|
|
|||
Как подсчитать колличество записей...... |
|||
|
#18+
или int chisl=0; -Обнулить счетчик перед циклом или например: chisl = T_full->GetRecordCount(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 11:43
|
|||
|---|---|---|---|
Как подсчитать колличество записей...... |
|||
|
#18+
RecordCount не всегда хорошо использовать. Если будет выдавать неправилное значение, то пошли запрос select count(*) from table1 where <условия выборки> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 11:59
|
|||
|---|---|---|---|
Как подсчитать колличество записей...... |
|||
|
#18+
>Cauchy То есть, используя так: chisl = T_full->GetRecordCount(); может иногда выдавать не ту цифру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 12:08
|
|||
|---|---|---|---|
Как подсчитать колличество записей...... |
|||
|
#18+
>>ShowMessage("Записей: " +chisl); Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 12:28
|
|||
|---|---|---|---|
Как подсчитать колличество записей...... |
|||
|
#18+
<<может иногда выдавать не ту цифру? Да, это зависит от типа курсора. Может выдать -1. По-моему (точно не помню) когда односторонний курсор (только вперед). Курсор нужно всегда проверять, потому что при открытии коннекта тип курсора может измениться из-за настроек сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 12:35
|
|||
|---|---|---|---|
|
|||
Как подсчитать колличество записей...... |
|||
|
#18+
Не оспаривая все что здесь сказано замечу что когда пишешь ShowMessage("Записей: " +chisl); ты складываешь строку с числом, вполне возможно что при этом число переводится в символ по АСКИ коду и его ты и видишь. проверь что так ShowMessage("Записей: " +IntToStr(chisl)); плучится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.10.2003, 13:39
|
|||
|---|---|---|---|
Как подсчитать колличество записей...... |
|||
|
#18+
Спасибо! ВСЕМ ответившим. Я вернулся к старому варианту у себя: int chisl =0; for(T_full->First(); !T_full->Eof; T_full->Next()) { chisl++; } ShowMessage("Записей: " +IntToStr(chisl)); Так как "T_full" -это не "OraTable", а "SmartQuery". Следовательно как я понял у него нет "GetRecordCount()", а писать запросом не знаю как у себя сделать. Переписывать заново запрос не хочеться. А в "T_full" - уже сделана выборка как нужно, и я просто в цикле просчитываю и все. Неудобство в том что таблица пересчитываеться еще раз. Изменил свой прежний код по совету "LAlex" и нормальнго все отображается. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2035942]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 316ms |

| 0 / 0 |
