|
|
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Господа, гляньте пожалуйста моё решение по поводу частого использования recordset. Я сделал пару функций и всегда использую только их: посоветуйте, может это уже каменный век? может что можно улучшить? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 12:30:08 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
а если одновременно два рекордсета понадобится, тогда что? IMHO: вообщем я особого смысла в этих ф-иях не вижу -------------- crazy about... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 12:36:13 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Ну если уж хочется такие обёртки писать - нужно классы делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 12:42:00 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Только в данном случае, классы можно и не писать, это достаточно тривиально и не объёмно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 13:12:45 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Обертывать в классы имеет смысл адошные рекордсеты. Из их вызивентс можно много полезного использовать. А даошные - по-моему ненада! Потом еще вопрос - эта обертка для чего ? Как использоваться будет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:41:49 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
AnTT Код: plaintext 1. 2. 3. 4. 5. То есть открывается таблица, чтобы удалить в ней одну запись? Оригинальный подход к повышению производительности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:14:47 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Так и я о том же!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:42:27 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
AlexJuice AnTT Код: plaintext 1. 2. 3. 4. 5. То есть открывается таблица, чтобы удалить в ней одну запись? Оригинальный подход к повышению производительности... а что не производительне разве будет кинуть строку с условием на сервак..........он же все быстрее удалить....если условие.............. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:51:20 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
RST.FindFirst - помоему сначала сортирует, а потом находит нужную запись...... быстрее выполнить поиск по индексу и удаление таким образом потом ---------------------------------------- 1. Если через Recordset тогда использование индексов....... 2. А так разве не производительнее будет кинуть строку с условием на сервак..........он же все быстрее удалить....если условие..............если касается только Update или delete С ув. к участникам форума, Руслан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:59:53 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Во извращенцы, вам что заняться нечем, Currentproject.Connection.Execute "Delete блаблаблабла", вот и всё. Я просто фигею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 18:02:31 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
ProgaВо извращенцы, вам что заняться нечем, Currentproject.Connection.Execute "Delete блаблаблабла", вот и всё. Я просто фигею. Человек же спрашивает пути оптимизации его процедур? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 18:20:48 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Я напрмер поиск по индеску в Рекордсетах использую только где база не на Sql ...........в программах под моб устройства.........знаете индексы здоровая штука поверте......только вот индексы на текстовые поля иногда могут быть больше самой таблички :) А в Аксесе досточно передать строку на сиквел и все в его случае, что ту извращенестого................ С ув. к участникам форума, Руслан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 18:24:41 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Прямой поиск по индексу (seek) и в аксессе (mdb) даёт неплохие результаты, в частности при работе с деревьями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 20:03:24 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
AnTTRST.FindFirst Condition RST.Delete А если не найдено, то сотрется произвольная запись? Не хотел бы я быть этой записью... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 20:13:24 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
1. Неплохо бы привыкнуть явно указывать библиотеку Public RST As DAO.Recordset А заодно и Set RST = CurrentDb.OpenRecordset(TargetTable, DAO.dbopendynaset) 2. -/- указывать тип аргументов Public Function SelectRST(TargetTable As String, Condition As String) 3. Код: plaintext Указан недопустимый объект, или объект более не задан. 4. Использование глобальных переменных - плохой стиль программирования т.к. череват трудноуловимыми ошибками (особенно в случае объектов с динамическим выделением памяти (как рекордсет)) и ухудшает читабельность кода программы. Но бывает оправдан в некоторых ситуациях (например, увеличение производительности или отсутствие возможности сделать иначе). 5. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 10:52:25 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
N_A1. Неплохо бы привыкнуть явно указывать библиотеку Public RST As DAO.Recordset А заодно и Set RST = CurrentDb.OpenRecordset(TargetTable, DAO.dbopendynaset) 2. -/- указывать тип аргументов Public Function SelectRST(TargetTable As String, Condition As String) 3. Код: plaintext Указан недопустимый объект, или объект более не задан. 4. Использование глобальных переменных - плохой стиль программирования т.к. череват трудноуловимыми ошибками (особенно в случае объектов с динамическим выделением памяти (как рекордсет)) и ухудшает читабельность кода программы. Но бывает оправдан в некоторых ситуациях (например, увеличение производительности или отсутствие возможности сделать иначе). 5. Код: plaintext Я везде по коду ставил всегда DAO.Recordset , но сейчас сделал .....чтобы можно было выборку данных делать, как через Адо так и через ДАО поэтому сдеал как object...........иногда если рекордсет по каким-то причинам не был инициаллизирован метод close и не было проверки rs.REcordCount > 0 может выдать ошибку.......я переделал вчера все на set rs = nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 11:01:22 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Для ADO вообще желательно использовать NEW при инициализации. Позднее связывание отрицательно сказывается на производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 11:11:46 |
|
||
|
Работа с Recordset быстро
|
|||
|---|---|---|---|
|
#18+
у меня тоже была как-то идея такой беды намутить, но поразмыслив - я от нее отказался :) Открыть/закрыть рекордсет все-таки удобнее на месте использования. К томуже, для операций вставки и удаления рекордсет и вовсе не нужен - обьект command значительно лучше. кстати, если не уверены что рекордсет открыт или закрыт (хотя лучше писать программу так, чтобы такого вопроса не возникало :) удобно использовать такую штуку: If rstW.State = adStateOpen Then rstW.Close ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 06:35:13 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32873106&tid=1669145]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 327ms |

| 0 / 0 |
