powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / подсчет строк в таблице DBF
10 сообщений из 35, страница 2 из 2
подсчет строк в таблице DBF
    #35680215
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Евгений_Анатольевич
> Вот такие пироги с котятами :) драйвера тут не при чем :)

Драйвера здесь причем в первую очередь, потому что они транслируют и в данном случае выполняют ваш запрос и если они
старые, то они могут не понимать новый синтаксис языка.


> А зачем? Не очень понял..

предлагают посчитать количество записей уже на клиенте, что на мой взгляд неправильно изначально, но как вариант, можно
использовать

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680222
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Евгений_Анатольевич
> SELECT COUNT(*) FROM (SELECT DISTINCT NAME1 FROM DB) TMP
> Теперь можно вернуться к первоначальному вопросу:
> так какой же из алгоритмов все-таки оптимальнее и быстрее???


А здесь, я не понял, запрос всего один, и алтернативы я не вижу. Какие алгоритмы вы имели в виду?

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680250
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
With objRecordset

SELECT CASE .EOF

     CASE IS = TRUE 
          MsgBox "Рекордсет не содержит записей", vbInformation: Exit Sub
     
    CASE IS = FALSE
           .MoveLast
           .MoveFirst
           MsgBox "Количество записей = " .RecordCount
END SELECT

End With

А что касается того что быстрее то можно используя Time или GetTickCount посчитать сколько времени тратится на каждый из способов
С уважением, Николай.
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680266
Евгений_Анатольевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносА здесь, я не понял, запрос всего один, и алтернативы я не вижу. Какие алгоритмы вы имели в виду?

текст взят из 1го сообщенияЕсть два алгоритма:
1. посчитать количество строк средствами SQL языка, т.е. таким запросом:
Код: plaintext
SELECT COUNT(*) FROM (SELECT DISTINCT NAME1 FROM DB) TMP
используя эти данные выделяем массив под строки
затем вторым запросом
Код: plaintext
SELECT DISTINCT NAME1 FROM DB ORDER BY NAME1
вытаскиваются сами строки и записываются в массив.
для каждого из запросов открывается рекордсет(!)


2. вытаскиваем данные запросом:
SELECT DISTINCT NAME1 FROM DB ORDER BY NAME1
затем курсором пробегаем все записи пересчитывая их.. используется конструкция
Код: plaintext
1.
2.
3.
While Not Recordset.EOF
    i = i +  1 
    Recordset.MoveNext 
Wend
после этого встаю снова на первую запись
Код: plaintext
Recordset.MoveFirst
и заполняю массив..
при этом рекордсет открывается один раз..
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680272
Евгений_Анатольевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gjghjc,

я считаю не общее количество записей :) за идею использовать таймер - спасибо.. совсем забыл про такую фичу.. %)
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680285
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял что не всех, я имел ввиду что вместо конструкции

Код: plaintext
1.
2.
3.
4.
While Not Recordset.EOF
    i = i +  1 
    Recordset.MoveNext 
Wend
Recordset.MoveFirst

я использую
Код: plaintext
1.
2.
.MoveLast
 .MoveFirst
 MsgBox "Количество записей = " .RecordCount
С уважением, Николай.
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680291
Евгений_Анатольевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gjghjc,

теперь понял! ведь во втором случаей действительно количество записей ограничено уже самой формой запроса.. хм.. получается, что сделать уже итоговую выборку эффективнее будет, потому что сам рекордсет всегда содержит количество полученных запросом записей(!)
спасибо!!! :)
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680324
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Евгений_Анатольевич
> Recordset.MoveFirstи заполняю массив..
> при этом рекордсет открывается один раз..


Ах, вот в чем дело :)
тогда предлагаю пересмотреть подход, например, на такой:
Код: plaintext
1.
2.
3.
4.
Dim v As Variant
strSqlString = "SELECT DISTINCT NMOVE1 AS CNT FROM DB"
    rstRset.Open strSqlString
    v = rstRset.GetRows
    rstRset.Close



--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680345
Евгений_Анатольевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

спасибо, приду домой - потестирую :)
...
Рейтинг: 0 / 0
подсчет строк в таблице DBF
    #35680865
piterblinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий.Единственное, что могу предложить - использовать VFP OLEDB Provider. Он такой синтаксис точно поддерживает. Во всех остальных случаях вопрос явно не в тот форум.
Да, да версию 9.0, все остальное ни черта как надо не работает, а ставишь 9.0 все работает нормально. Ну а что быстрее, ну сам протестируй.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / подсчет строк в таблице DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]