|
|
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Выполняю SQLExecDirect(..., "SELECT * FROM table",...). Как мне узнать количество записей, которые вернулись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 16:33 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Например выполнить еще один запрос SELECT Count(*) FROM table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 16:46 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Плохо, еще раз к базе обращаться... Я сделал один раз селект и хочу узнать количество записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 16:50 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOПлохо, еще раз к базе обращаться... Я сделал один раз селект и хочу узнать количество записейтогда читай все записи с сервера и считай в процессе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 17:01 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 17:52 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOЭто как?в цикле Next и counter++ до конца набора данных; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 17:53 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
А понял, но это не подходит - мне прийдется перелапатить все записи, а если их 1.000.000, мне нужно предупредить пользователя о масштабе трагедии:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 18:01 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOА понял, но это не подходит - мне прийдется перелапатить все записи, а если их 1.000.000, мне нужно предупредить пользователя о масштабе трагедии:) Когда час пройдет, сообщи ему, чтобы пошел покурить пока. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 18:02 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
ХП как вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 18:05 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Что такое ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 18:14 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOЧто такое ХП? Хранимая процедура. Тебе данные не надо будет переганять. Только число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 18:27 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Не очень понимаю, как она поможет... объясните по подробнее пжлста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 18:40 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOА понял, но это не подходит - мне прийдется перелапатить все записи, а если их 1.000.000, мне нужно предупредить пользователя о масштабе трагедии:)тогда SnowMan2Например выполнить еще один запрос SELECT Count(*) FROM table Либо считает сервер, либо клиент, третьего не дано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 19:00 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
Нет, я в упор не понимаю, неужели никто не думал как это по-людски сделать? То, что вы предлагаете, и на стороне клиента, и на стороне сервера перелапачивает уже полученный набор еще раз. Должно ведь куда-то попадать результирующее количество записей. В СУДБ есть переменная @@ROWCUNT, просто у меня не получается прилепить ее к результирующему множеству. Наверняка должен быть способ, получить количество записей, не перебирая их в тупую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 19:16 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOНаверняка должен быть способ, получить количество записей, не перебирая их в тупую.Строго говоря, не должен. Более того, возможны ситуации, когда это в принципе невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 19:23 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
В любом случае набор записей сервер вернул клиенту, почему не должно быть способа получить количество записей этого набора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 19:36 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOВ любом случае набор записей сервер вернул клиенту, почему не должно быть способа получить количество записей этого набора?Сервер возвращает клиенту не весь набор записей, а ровно то количество, которое клиент запросил. Остальные записи сервер может даже не вычислять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 19:37 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIOНет, я в упор не понимаю, неужели никто не думал как это по-людски сделать? То, что вы предлагаете, и на стороне клиента, и на стороне сервера перелапачивает уже полученный набор еще раз. Должно ведь куда-то попадать результирующее количество записей. В СУДБ есть переменная @@ROWCUNT, просто у меня не получается прилепить ее к результирующему множеству. Наверняка должен быть способ, получить количество записей, не перебирая их в тупую. Думаю этот вопрос лучше задать в профильный форум по вашему серверу. И посмотреть еще раз на API, которым пользуетесь для доступа к базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 19:42 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
для ODBC посмотрите на SQLGetDiagRec и SQLGetDiagField, они предоставляют диагностичискую информацию для дескриптора. может, и количество записей там будет, а мож и ответ сервера типа "xxx rows selected" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 20:38 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
SnowMan2 пишет: > Например выполнить еще один запрос > SELECT Count(*) FROM table Это бесполезно. Два запроса никак не связаны между собой. Не факт что потом ТОТ запрос вернет именно ЭТО количество строк. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 21:16 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
miksoft пишет: > Плохо, еще раз к базе обращаться... Я сделал один раз селект и хочу > узнать количество записей > > тогда читай все записи с сервера и считай в процессе Правильно, это единстенно правильный вариант. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 21:16 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > А понял, но это не подходит - мне прийдется перелапатить все записи, а > если их 1.000.000, мне нужно предупредить пользователя о масштабе трагедии:) Другого варианта все равно нет. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 21:17 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > Не очень понимаю, как она поможет... объясните по подробнее пжлста. Да никак она не поможет. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 21:18 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > попадать результирующее количество записей. В СУДБ есть переменная > @@ROWCUNT, просто у меня не получается прилепить ее к результирующему > множеству. Наверняка должен быть способ, получить количество записей, не > перебирая их в тупую. Да ты можешь его прилепить, для этого достаточно после этого SELECT-а сделать еще один, SELECT @@rowcount. Но смысла это делать нет никакого, потому что ты получишь его только ПОСЛЕ выборки основного набора данных. А если ты уже выберишь его, то ты уже будешь знать количество строк. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 21:20 |
|
||
|
Количество записей SELECT
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > Выполняю SQLExecDirect(..., "SELECT * FROM table",...). > Как мне узнать количество записей, которые вернулись? Короче, резюмирую. Чтобы узнать количество записей , которые вернулись, есть два способа. 1) Профетчить все записи и посчитать их. (SQLFetch() ... ) 2) Вызвать SQLRowCount() --- не торопитесь радоваться. SQLRowCount() не гарантирует возвращение количества записей до того, как вы не профетчите все записи. И даже больше - в последних редакциях ODBC он для SELECT-а вообще ничего не гарантирует (и это правильно!). Так что фактически при наличии двух способов способ этот на самом деле только один. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 21:34 |
|
||
|
|

start [/forum/topic.php?fid=57&startmsg=34316605&tid=2029418]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
65ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 394ms |

| 0 / 0 |
