|
|
|
есть ли метод/свойство
|
|||
|---|---|---|---|
|
#18+
Господа (товарищи), есть ли метод программной очистки некоего объекта (черт, не знаю, как его обозвать), в котором аксес хранит историю редактирования модулей? (В ворде такая фенька - для программной очистки истории изменений была). Т.е. ту самую бяку, которая позволяет делать откаты изменений в модулях? - Делаю программное редактирование проекта. Если периодически не сжимать базу (что приводить к сбросу истории), происходит переполнение памяти. Акс97. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2003, 18:09 |
|
||
|
есть ли метод/свойство
|
|||
|---|---|---|---|
|
#18+
Честно скажу - не знаю. Зашел на огонек потамушта просто стало интересно: А почему бы не делать переодическое сжатие? Или всё это дело выполняется "под пальцами" юзверя в рабочем режиме, "на лету"? И в качестве "танца с бубном": Может быть попробовать копировать код модуля в обычный файл, редактировать его сколь угодно "много" без всякого сохранения истории, после чего копировать обратно в модуль? Может прокатит... //Просто так: как-то копался в памяти процесса с Аксес. Сканировал всю память в попытках кое-что найти. Так вот лично у меня (A2000) весь измененный в модулях код продолжал весеть в памяти процесса даже после сжатия БД! Исчезал только после закрытия и повторного открытия Акса (то есть, после уничтожения старого и создания нового процесса)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2003, 20:43 |
|
||
|
есть ли метод/свойство
|
|||
|---|---|---|---|
|
#18+
Привет Нуф-Еуф, давно не был А как ты отслеживал, что код оставался висеть в памяти? Мне что-то кроме диспечера задач - ничего в голову не приходит - но это не то. Так как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2003, 22:25 |
|
||
|
есть ли метод/свойство
|
|||
|---|---|---|---|
|
#18+
Честно сказать, не уверен, что проблема в "копилке изменений" (или как её там) просто сработала ассоциация - когда-то занимался массированной редакцией вордовых документов, там не то у аппликейшена, не то еще где была редко упоминаемая (в хелпе) возможность сбросить эту штуку (копилку). Ибо при многократной массовой замене по документу, размером с книжку создавался временный файл, выжирающий любые доступные дисковые ресурсы. А вот периодическая очистка этой "корзинки откатов" упрощала дело (правда если команда "изменить по всему документу" относилась к часто всречаемой в тексте комбинации, то кирдык мог наступить и внутри отработки этой единственной команды). Я, подстраховываясь, поменял на: If (Forms(aDoc.Name).HasModule) = True Then конструкции вида If Forms(aDoc.Name).HasModule Then подумывал изменить на подобное даже проверку простых булевых переменных, но видимо дело не в этом. Редактирую пока из отладчика (задача: - просто перевожу синтаксис с совместимого с DAO2.5/3.5 на DAO3.5(3.6)). Не слишком заморачиваюсь об оптимальности процедуры. Просто запускаю компилятор, нахожу очередную порцию несовместимого синтаксиса. И запускаю ф-ю, меняющую все вхождения данного вида во все модули (за исключением текста - который скорее всего может оказаться текстом SQL конструкции, и замены там не нужны - именно поэтому и не пользуюсь просто массовой заменой в редакторе модулей) на новый синтаксис. 2-3 запуска замены по всей базе (если замены еще и случились в массовых количествах) приводят к переполнению памяти. В этом случае выгрузка в текст ничего не дает - в один прогон меняется не весь синтаксис модуля. В конце прогона тексты модулей все равно нужно обновлять - чтобы найти следующую порцию для правки. Конечно можно пойти другим путем - составить максимально подробный перечень изменений (или правила) и пройтись по всем модулям один раз, а остатки уже выгребать руками. Но тогда и выгрузка в текст может не понадобиться. А в модуле уже реализованы методы Find и ReplaceLine. (Конечно в тексте это сделать несложно, и будет работать шустрее, но зачем? операции то эпизодические). Честно сказать, текущую задачку я уже прогнал описанным способом. Вот когда потребуется в следущий раз - подумаю как написать правила :0) Просто интересный факт. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 11:15 |
|
||
|
есть ли метод/свойство
|
|||
|---|---|---|---|
|
#18+
Драсте! Для Senin Viktor: Да, Виктор, не всегда получается делать то, что тебе нравится :( Жисть она такая... //на счет "давно не был"... А отслеживал через создание дампа памяти исследуемого процесса (в данном случае процесса с Аксом) и затем исследованием уже самого дампа... Дамп запихивал в таблицу, после чего изголялся над ним стандартными методами работы с БД. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Можно конечно полазить по памяти процесса и с помощью стандартных отладчиков, но у меня просто задача стояла такая - реализовать исследование памяти процесса собственными силами. Правда в итоге пришлось писать С++ ДЛЛьку (не дописал... "проект" пока заморожен:) - уж больно VBA тормозит :( Вот такие пироги... Для assa: Ну тогда (в этом случае) возможно проще выполнять сжатие после каждого редактирования... Хотя, конечно, досадно, что в Аксе опять что-то работает не так как должно бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 15:57 |
|
||
|
есть ли метод/свойство
|
|||
|---|---|---|---|
|
#18+
2Нуф-Нуф Прикольные ты задачки решаешь. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2003, 16:03 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1717&tid=1678104]: |
0ms |
get settings: |
7ms |
get forum list: |
30ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 361ms |

| 0 / 0 |
