|
|
|
Как узнать сколько строк вернулось?
|
|||
|---|---|---|---|
|
#18+
Пишу на ODBC(язык C++). Для возврата кол-ва колонок есть функция SQLNumResultCols(). Но какой функцией я могу узнать кол-во строк в возвращенном наборе записей? Если нет такой функции, можно ли как то в "холостую" прогнать SQLFetch(), что-бы в цикле сосчитать кол-во строк, а потом снова с первой строки его прогнать, но уже возвращая значения в переменные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 19:30 |
|
||
|
Как узнать сколько строк вернулось?
|
|||
|---|---|---|---|
|
#18+
Нет, нельзя. Единственный способ узнать количество строк в резалт-сете не делая SQLFetch(), это включить на сервере (если сервер это вообще умеет) подсчет строк в резалт-сете и тогда SQLExecute() будет возвращать SQL_SUCCES_WITH_INFO и через SQLDiagRec() уже можно будет прочитать прогнозируемое количество строк. Для ASA например, это можно сделать через SET OPTION ROW_COUNTS='On'; . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 19:37 |
|
||
|
Как узнать сколько строк вернулось?
|
|||
|---|---|---|---|
|
#18+
White OwlНет, нельзя. Единственный способ узнать количество строк в резалт-сете не делая SQLFetch(), это включить на сервере (если сервер это вообще умеет) подсчет строк в резалт-сете и тогда SQLExecute() будет возвращать SQL_SUCCES_WITH_INFO и через SQLDiagRec() уже можно будет прочитать прогнозируемое количество строк. Для ASA например, это можно сделать через SET OPTION ROW_COUNTS='On'; . Тогда как прогнать SQLFetch() в "холостую"? Или просто прогнать дважды по одному и тому же резалт-сету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 19:47 |
|
||
|
Как узнать сколько строк вернулось?
|
|||
|---|---|---|---|
|
#18+
Eugene7Тогда как прогнать SQLFetch() в "холостую"? Или просто прогнать дважды по одному и тому же резалт-сету? Ну теоретически, можно сделать Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 20:44 |
|
||
|
Как узнать сколько строк вернулось?
|
|||
|---|---|---|---|
|
#18+
Eugene7Пишу на ODBC(язык C++). Для возврата кол-ва колонок есть функция SQLNumResultCols(). Но какой функцией я могу узнать кол-во строк в возвращенном наборе записей? ....можно ли как то в "холостую" прогнать SQLFetch(), что-бы в цикле сосчитать кол-во строк, а потом снова с первой строки его прогнать, но уже возвращая значения в переменные? 1) Не знаю, что такое "писать на ODBC" но кол-во строк возвращает оператор count(xxxx) в стандартном SQL... 2) в "холостую прогнать" не получиться. Потому как на Вашу станцию будет перегон ВСЕХ данных которые Вы заказали. Решение наверное крутое, но для клиент-серверных решений очень дилетанское.... удачи Вам (круглый) ЗЫ Рекомендую использовать стандарт SQL и не заморачиваться. Кстати, не плохо ответить на вопрос а нахрена Вам это нуна ? Единственная задача для которой енто было действительно встречалось - это чиссо показ пользователю в всплывающей подсказке (знаете, та что на скролл баре возникает, когда тащишь мышой)...всё остальное от лукавого, как правило... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 14:23 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=380&tid=2032311]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 350ms |

| 0 / 0 |
