|
|
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Требуеся очистить рекордсет (отвязанный). Поясняю - заполняем -выбрасываем на лист Excel, чистим и так 15 раз на лист. (Дело в Акцессе, и не надо топик в Офис тянуть!) Порывшись в хелпе, пришел к выводу, что кроме тупого перебора записей с rst.Delete, сособов сделать сие махом нет. Если кто-нибуть разуверит в этом, буду рад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 15:46:21 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
на первый взгляд - если в лоб - то как будто, действительно нет. Однако 1) если рекордсет достаточно "длинный", то быстрее будет закрыть текущий и пересоздать его с использованием кешированной коллекции Fields. 2)Думаю, что в широком диапазоне количества передаваемых строк двумерный массив суммарно выиграет ( скорость добавления выше, скорость присвоения та же или выше, - некотрые потери на передаче значения, которые почти всегда перекроются прочими плюсами) (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 15:58:14 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
кажется - это только на первый взгляд. щаз попробую очки протереть... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 16:19:43 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
1. Короткий - 4 записи 2. Думаю, проиграю. По моим наблюдениям, CopyFromRecordset в екселе быстрее заполнения ячеек из массива. Да и при возне с переменным числом полей (а дело обстоит именно так), массив мне жизнь не облегчит, скорее усложнит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 16:21:10 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
очки не помогли - нельзя, в обчем. 4 строк? - если не затруднит - показал бы код рекордсетный - а я бы положил массивный - а ты бы померял... думаю, длинного цикла не потребуется, стобы рекордсет обогнать... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 16:38:11 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
2 Alexander G предложение с извинениями снято. Однако, если рекордсет набирается локально через AddNew - почти всегда готов вернуться к теме. Разное количество полей - Все равно ведь Close появляется (?) - так стоит ли Delete того ? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 17:43:37 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
делаем массив 100х100 и аналогичный рекордсет (скорость их создания неинтересна) и выкладываем на лист екселя (а вот скорость этого и интересует) Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 17:45:59 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Прошу извинить, пока набирал, актуальность пропала :) дело в том, что нужно 4 набора с разными полями выкинуть по 4 раза... ну в общем проще, конечно написать за пару минут процедурку for i=1 to 4 rst.delete ........ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 17:54:28 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
я щаз гляну - ничаво не пропало... вот только это почему скорость формирования не интересна - с этим я никак согласиться не могу - это нечестно. я вот за опчее время волну - юсь (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 18:22:35 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
2 Alexander G на предложенном тобой тесте, после модификации, у меня получилось, что присвоение из массива не менее чем в 17 раз быстрее копирования из рекордсета. Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 18:52:27 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
соврал, конечно, второпях - разница всего втрое для сассива диапазон неправильно у меня был сформирован д.б. Код: plaintext 1. массив - 19-22 (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 18:58:15 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
если же считать по "полным накладным расходам" - порядок все-таки набегает. 15 для массива и 150 для рекордсета Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2004, 20:27:46 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Убедил, массив быстрее. :) 1.почему меня данном случае не волнует скорость формирования - время получения данных для заполнения (открытие рекордсетов, dcount'ы и dsum'ы) у меня на порядки больше времени формирования (секунды и миллисекунды) а уж учитывая размерность ~ 4x30, тем более можно пренебречь 2. Все же предпочитаю удобство работы с рекордсетом возне с массивом. или дать rst.AddNew rst!SumЛяляля=Dsum(........) rst!SumЛяляляВтомЧисле=.... .............. или держать в уме позицию в массиве этого Ляляля и усложнять код, делая его малочитаемым, тут каждый выбирает сам, я в конкретной ситуации предпочитаю проиграть 50 миллисекунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 06:38:50 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
2 Alexander G И все-таки, ответ на исходный вопрос я дал неверный... вот код по удалению группы записей... Код: 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. 26. 27. 28. 29. ключ к ответу найден на http://www.able-consulting.com PS если увидишь это сообщение - поставь метку. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 18:09:28 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Спасибо, сделал так. Код стал короче и красивее - сократился на 4 строки. :). Ну не нравилось мне эстетическое ощущение, возникавшее при взгляде на процедуру с циклом, хоть и 4 записи. :) Это из единственной мысли оставшейся после прослушивания курса марксистско-ленинской эстетики (был такой в институте)- "При восприятии объекта субъектом возникает эстетическое ощущение" :) Конечно, на скорости мало сказалось - отчет формируется 3-6 минут (из-за выдирки данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 03:37:02 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Может, чего-то не понял. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 05:44:46 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Евгений1234-5Может, чего-то не понял. Код: plaintext ошибка 3219 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 05:53:19 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Евгений1234-5 авторМожет, чего-то не понял. Rst.Requery ошибка 3219 Справку почитай. Там надо новый запрос, а тебе надо ставить старый вместо нового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 06:35:03 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Евгений1234-5 Справку почитай. Там надо новый запрос, а тебе надо ставить старый вместо нового. Первая строка топика: Требуеся очистить рекордсет ( отвязанный ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 06:40:41 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
то Alexander G Ты будешь матерится, но я не знаю что такое рекордсет отвязанный. ЗЫ. ADOB ? наверное, но никогда с этой моделью не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 08:41:47 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
то Alexander G Ты будешь матерится, но я не знаю что такое рекордсет отвязанный. ЗЫ. ADOB ? наверное, но никогда с этой моделью не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 08:47:31 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Вторая секция в моем посте от 7 ноя 04, 17:45 - формируется на голом месте рекордсет без источника и заполняется данными. Т.е. в данном случае он используется как массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 08:51:45 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
А если ёксель, TransferSpreadsheet не покатит? он то быстрее, как ни крути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 08:54:15 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
Нет, я вбрасываю на готовый шаблон отчета (Excel шаблон заказчика, как всегда, мало поддающийся логике программиста, с закидонами) в определенные места мои рекордсеты. На шаблоне еще сотни ячеек с формулами, суммирующими вброшенные данные. Если еще буду вычислять все эти суммы и средние в акцессе, получится еще медленнее (и весьма), пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 09:12:23 |
|
||
|
Удаление всех записей из recordset'а
|
|||
|---|---|---|---|
|
#18+
я увидел, что ты увидел. а снять фильтр формально правильнее Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 14:34:29 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1523&tid=1670350]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
101ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 394ms |

| 0 / 0 |
