|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Есть SQL выражение сформированное в VBA типа "SELECT DISTINCT ... FROM ... WHERE ... ;" надо проверить пустой этот запрос или нет. Просто проверить я могу, но хотелось бы узнать мнение специалистов по поводу - какой из методов самый быстрый применительно к Access97. Таблицы могут быть прилинкованы, линкуются dbf, MS Access и MS SQL 2000 таблицы, а также используется свои родные, не то чтобы всё зараз, но вариации бывают. Заранее благодарен, Sfagnum. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2002, 17:02 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Я делаю так: Msgbox CurrentDB.OpenRecordset("SELECT DISTINCT ... FROM ... WHERE ... ;").RecordCount ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 08:55 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
через рекордсет. пример: Set rst=openrecordset("SQL_STRING") if rst.eof then end if ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 09:01 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
для собственных быстрее и проще будет dcount() или dlookup() для прилинкованных if not(rst.eof and rst.bof) then здесь есть хоть одна запись end if хотя можете проверить сами, что будет быстрее. RecordCount работает правильно только в однопользовательской среде. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 09:44 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Протестил оба варианта с помощью способа показанного здесь вариант Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 09:55 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Пардон, я все время забываю про DAO. То, что я написал, относилось к ADO. Еще раз повторюсь: надо все проверять, т.к. время выполнения разными способами у всех было разное. У одних работало одно быстрее, у других - другое. тоже в свое время делал замеры выбирал, что быстрее. через какое-то время опять проводил эксперименты и почему-то все было по-другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 10:11 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
То ДиД Насколько я в курсе dcount() & dlookup() не работает непосредственно с SQL строкой, если я плохо осведомлён покажите пожалуста как это сделать. и ещё вопросик, я в теории слабоват в коленках, я пишу клиента для конкретного человека, на серваке все таблички, которыми пользуется разный народ, какая у меня среда - однопользовательская или как? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 10:16 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
dcount("[Код]","Таблица","[Таблица]![Название]=Forms!Форма1!Поле1") то же самое и для dlookup. Условия могут быть более сложными, но все точно такое же как и в запросе. По второму вопросу у Вас многопользовательская. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 13:47 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Насчёт dcount, получается так: Код: plaintext
потом считаем DCount'ом Код: plaintext
Я Вас правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 15:35 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
последний вопрос вообще не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 15:51 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Дело в том, что где то там в начале я упоминал, что мне надо узнать есть ли записи в запросе (здесь начинается путанное объяснения), но самого запроса ещё в природе не существует есть только SQL строка сгенерированная непосредственно в VBA коде, т.е. насколько я понял для того чтобы посчитать кол-во записей с помощь DCount'а надо сперва создать запрос на основе данной SQL строки. Просто оветьте прав или нет, если я не прав то покажите как это делается на основе SQL выражения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 17:04 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Что такое запрос? Это то, что Вы хотите выбрать из таблицы. dcount() Вам может выбрать. если он что-то нашел, то значение будет >0. если нет - null. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 17:25 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
А SELECT Count(*) FROM Tbl не поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 17:51 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
Я пользуюсь таким куском: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Жрет все без всяких проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2002, 17:56 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
To Дмитрий Басовский: Спасибо, обязательно попробую То ДиД: Согласен в простейшем случае оно так, но мне чаще надо использовать несколько таблиц/запросов в качестве ресурса, отсюда и проистекает мой назойливый не совсем понятный вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2002, 09:32 |
|
Кол-во записей в запросе, как быстрее?
|
|||
---|---|---|---|
#18+
протестил 4 варианта\r 1 место с подовляющим отрывом знимает метод от "Дмитрия Басовского", с одним нюансом CurrentProject я заменил на CurrentDB, т.к. CurrentProject у меня не распознавался возможно из-за того что у меня MS ActiveX Data Objects Library v. 2.5 и ниже\r \r 2-4 места с небольшой разницей занимают методы в следующе порядке\r \r 2: \r Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
3: \r Код: plaintext 1. 2. 3. 4. 5. 6.
4: \r Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
\r Всем спасибо за оказанную помощь.\r \r С уважением\r Sfagnum ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2002, 10:55 |
|
|
start [/forum/topic.php?fid=45&msg=32065178&tid=1682989]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
18ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 179ms |
0 / 0 |