Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
[Win32] Не всегда клиентский курсор (и даже серверный) знает, сколько там записей ваще. 05.09.08 09:06 Число просмотров: 1276
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 05.09.08 09:46 Количество правок: 3
|
Ты чего, чистый ODBC API гоняешь? Это путь истинных самураев:-)
Тады вот:
"Return the number of rows affected by an UPDATE, INSERT or
DELETE statement associated with the specified hstmt.
SQLRETURN SQLRowCount(
SQLHSTMT StatementHandle,
SQLINTEGER * RowCountPtr)"
Не смущайся, что в каментах нет селекта. Кое-когда оно выдаёт верную инфу ;-)
|
<programming>
|
[Win32] Существует ли в SQL API функция, которая определяет число записей, которое вернул запрос? 05.09.08 08:29
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Пишу на C++ программу, взаимодействующую с БД через ODBC. Всю логику проработал, осталась только одна проблема – та, что в названии темы.
|
|
Разобрался. Всем огромное спасибо. Тема закрыта 06.09.08 02:56
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
|
|
[Win32] Не всегда клиентский курсор (и даже серверный) знает, сколько там записей ваще. 05.09.08 09:06
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 05.09.08 09:46 Количество правок: 3
|
Ты чего, чистый ODBC API гоняешь? Это путь истинных самураев:-)
Тады вот:
"Return the number of rows affected by an UPDATE, INSERT or
DELETE statement associated with the specified hstmt.
SQLRETURN SQLRowCount(
SQLHSTMT StatementHandle,
SQLINTEGER * RowCountPtr)"
Не смущайся, что в каментах нет селекта. Кое-когда оно выдаёт верную инфу ;-)
|
| |
А когда происходит это «кое-когда»? 05.09.08 13:13
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
А когда происходит это «кое-когда»?
Я исполняю SELECT через SQLPrepare/SQLExecute.
После этого вызываю SQLRowCount . Она возвращает SQL_SUCCESS, но количество выставляет -1… Что делать?
|
| | |
Зачем тебе SQLPrepare? Юзаешь ручное управление транзакциями? 05.09.08 18:05
Автор: Den <Denis> Статус: The Elderman
|
|
| | |
Самый верный (и самый медленный) способ узнать число селектнутых записей - задать запрос вида select count * from (my_select_request) 05.09.08 15:18
Автор: Ustin <Ustin> Статус: Elderman
|
|
| | | |
:)) Если в синхроне, то достаточно всего лишь выполнить подсчет полученных записей. 05.09.08 18:07
Автор: Den <Denis> Статус: The Elderman
|
|
| | | | |
Что есть "синхрон\асинхрон", пояснишь начинающему? 05.09.08 19:03
Автор: Ustin <Ustin> Статус: Elderman
|
|
| | | | | |
Через ODBC API данные можно получать синхронно и асинхронно. 05.09.08 22:30
Автор: Den <Denis> Статус: The Elderman
|
Асинхронные операции передачи данных не приоритезируются и передаются получателю по мере готовности. Почти нигде не используются, разве что при запросе к слабым серверам с туевой кучей клиентов на медленных каналах.
|
| | | |
Уже тоже до такого додумался, но может быть что-то лучше есть? 05.09.08 15:28
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
|
| | | | |
Угу, одна из опций query(и датасетов) называется типа FetchAll - но при этом ты получаешь те же яйца в профиль (по скорости, а по нагрузке на канал - так ещё больше), по крайней мере для Firebird\Interbase-дельфячих компонент 05.09.08 15:35
Автор: Ustin <Ustin> Статус: Elderman
|
|
| |
[Win32] Кажись, еще и в асинхроне... 05.09.08 10:01
Автор: Den <Denis> Статус: The Elderman
|
|
|
Rowcount. 05.09.08 09:04
Автор: [cb] Статус: Member
|
|
|
|